{"id":323989,"date":"2021-05-30T09:00:08","date_gmt":"2021-05-30T09:00:08","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=323989"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=323989","title":{"rendered":"\u041a\u0430\u043a \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u0446\u0435\u043d\u044b Unity-\u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u043e\u0434\u0438\u043d \u043a\u043b\u0438\u043a"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/120\/c5c\/e3d\/120c5ce3d7f26bf06dd56efe99a63d39.png\" alt=\"\u0422\u0430\u043d\u044e\u0448\u043a\u0430 - \u0430\u0432\u0442\u043e\u0440 \u043a\u0430\u043d\u0430\u043b\u0430 IT DIVA \u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043a\u043e\u0444\u0435\u0433\u043e\u043b\u0438\u043a \u0438 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u0443\" title=\"\u0422\u0430\u043d\u044e\u0448\u043a\u0430 - \u0430\u0432\u0442\u043e\u0440 \u043a\u0430\u043d\u0430\u043b\u0430 IT DIVA \u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043a\u043e\u0444\u0435\u0433\u043e\u043b\u0438\u043a \u0438 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u0443\" width=\"1280\" height=\"720\"><figcaption>\u0422\u0430\u043d\u044e\u0448\u043a\u0430 &#8212; \u0430\u0432\u0442\u043e\u0440 \u043a\u0430\u043d\u0430\u043b\u0430 IT DIVA \u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043a\u043e\u0444\u0435\u0433\u043e\u043b\u0438\u043a \u0438 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u0443<\/figcaption><\/figure>\n<p>Unity &#8212; \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0435\u0439\u0448\u0438\u0445 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0438\u043d\u0434\u0438-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u0433\u0440 \u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0442\u0430\u043a \u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c\u0438, \u0447\u044c\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435, \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0435\u0433\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438, \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0441 \u043a\u0443\u0447\u0435\u0439 \u0441\u0446\u0435\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u043e \u043c\u0435\u0440\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0418 \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u044d\u0442\u0438\u0445 \u0441\u0446\u0435\u043d, \u0442\u0435\u043c \u0434\u043e\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c\u0438 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043c\u043d\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0430 \u0441\u0446\u0435\u043d\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435. <\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0446\u0435\u043d \u0432 \u0432\u0430\u0448\u0438\u0445 Unity-\u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0438 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432 \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0447\u0430\u0441\u043e\u0432 \u0440\u0443\u0447\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<p>\u0410 \u0434\u0430\u043b\u0435\u0435 \u0432\u044b \u0443\u0436\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u0434 \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u043d\u0443\u0436\u0434\u044b.<\/p>\n<h2>\u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d \u0442\u0430\u043a\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442<\/h2>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c 3 \u0443\u0440\u043e\u0432\u043d\u044f \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u0412\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 3D-\u043c\u043e\u0434\u0435\u043b\u0438. \u041d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 \u0441\u0446\u0435\u043d\u044b.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435, \u0432\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u0432\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0446\u0435\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 3 \u0441\u0446\u0435\u043d\u044b &#8212; \u044d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e.<\/p>\n<p>\u041d\u043e \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 \u0438\u0445 \u0441\u0442\u0430\u043d\u0435\u0442 10? 20? 50?<\/p>\n<p>\u0423\u0432\u0435\u0440\u0435\u043d\u0430, \u0432\u044b \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u0440\u0443\u0433\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u0435\u0442\u0435. \u0414\u0430 \u0435\u0449\u0451 \u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0438\u0437 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432\u0441\u0435 \u0441\u0446\u0435\u043d\u044b \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043d\u0443\u0436\u043d\u044b\u0445 \u0432\u0430\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439. \u0410 \u044d\u0442\u043e \u0432\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<h2>\u041a\u0430\u043a \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0440\u0435\u0448\u0438\u0442\u044c? <\/h2>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e!<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 OnValidate() \u0432 \u043a\u043b\u0430\u0441\u0441\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0430 \u0441\u0446\u0435\u043d\u0435. \u041d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0446\u0435\u043d\u0443 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0435\u0451 \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043d\u0435 \u0432\u0435\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0447\u0435\u0440\u0435\u0437 OnValidate(), \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 MonoBehaviour.<\/p>\n<p>\u041d\u0430\u043c \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442. \u041d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043d\u0451\u043c \u0442\u043e\u0436\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u043e\u0439\u0434\u0451\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0451\u043c \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0446\u0435\u043d\u0443 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u043b\u044e\u0431\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0438\u0441\u0430\u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0432\u044b \u0442\u043e\u0447\u043d\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u0435 \u0441\u0435\u0431\u0435 \u0443\u0439\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0432 \u043f\u0430\u043f\u043a\u0435 \u00abEditor\u00bb:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a2e\/80f\/8c1\/a2e80f8c13db84f44af38c16c93f924d.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0434\u0432\u0438\u0436\u043a\u0430\" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0434\u0432\u0438\u0436\u043a\u0430\" width=\"560\" height=\"361\"><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0434\u0432\u0438\u0436\u043a\u0430<\/figcaption><\/figure>\n<p>\u041e\u0431\u0440\u0430\u0449\u0430\u044e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0430\u043f\u043e\u043a \u0432 Unity \u0438\u0433\u0440\u0430\u0435\u0442 \u0440\u043e\u043b\u044c. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432 \u043f\u0430\u043f\u043a\u0435 &#171;Editor&#187; \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043d\u0430\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 Unity \u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u043e\u043a\u043d\u0430.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043a\u0430\u0436\u0435\u043c, \u0447\u0442\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0443\u0434\u0435\u043c \u043e\u0442 \u00abEditor Window\u00bb (\u0430 \u043d\u0435 \u043e\u0442 \u00abMonoBehaviour\u00bb, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e):<\/p>\n<pre><code class=\"cs\">using UnityEngine; using UnityEditor;  public class SceneUpdater : EditorWindow {     [MenuItem(\"Custom Tools\/Scene Updater\")]     public static void ShowWindow()     {         GetWindow(typeof(SceneUpdater));     }          private void OnGUI()     {         if (GUILayout.Button(\"Update scenes\"))     \t\t\t\tDebug.Log(\"Updating\")     } }<\/code><\/pre>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430<strong> [MenuItem(&#171;Custom Tools\/Scene Updater&#187;)] <\/strong>\u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0435\u043d\u044e \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0435\u0439 \u0432 \u0441\u0430\u043c\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/184\/450\/7b1\/1844507b12f84853ee002b4294800338.png\" alt=\"\u041d\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0435\u043d\u044e, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\" title=\"\u041d\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0435\u043d\u044e, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\" width=\"1111\" height=\"297\"><figcaption>\u041d\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0435\u043d\u044e, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442<\/figcaption><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043d\u043e\u043f\u043a\u0443, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0430\u0448 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"cs\">using UnityEngine; using UnityEditor;  public class SceneUpdater : EditorWindow {     [MenuItem(\"Custom Tools\/Scene Updater\")]     public static void ShowWindow()     {         GetWindow(typeof(SceneUpdater));     }          private void OnGUI()     {         if (GUILayout.Button(\"Update scenes\"))     \t\t\t\tDebug.Log(\"Updating\")     } }<\/code><\/pre>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0438\u0447\u043d\u043e \u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e.<\/p>\n<h2>\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c<\/h2>\n<p>\u0414\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e:<\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary&gt; \/\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"objectName\"&gt; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;typeparam name=\"T\"&gt; \u0442\u0438\u043f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/typeparam&gt; private void AddComponentToObject&lt;T&gt;(string objectName) where T : Component {     GameObject.Find(objectName)?.gameObject.AddComponent&lt;T&gt;(); }<\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cs\">AddComponentToObject&lt;BoxCollider&gt;(\"Plane\"); AddComponentToObject&lt;SampleClass&gt;(\"EventSystem\");<\/code><\/pre>\n<p>\u042d\u0442\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0451 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h2>\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u043e \u0438\u043c\u0435\u043d\u0438<\/h2>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432:<\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary&gt; \/\/\/ \u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"objectName\"&gt; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 &lt;\/param&gt; private void DestroyObjectWithName(string objectName) {     DestroyImmediate(GameObject.Find(objectName)?.gameObject); }<\/code><\/pre>\n<p>\u0418 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cs\">DestroyObjectWithName(\"Sphere\");<\/code><\/pre>\n<h2>\u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438<\/h2>\n<p>\u0414\u043b\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 Transform \u0438 RectTransform \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u043e\u0432\u044b\u043c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430):<\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary&gt; \/\/\/ \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 Transform \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/\/ \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \/\/\/ \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0443 parent root \u043e\u0431\u044a\u0435\u043a\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"objectToCopyFrom\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"objectToPasteTo\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"copyPosition\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; \/\/\/ &lt;param name=\"copeRotation\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; \/\/\/ &lt;param name=\"copyScale\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; private static void CopyTransformPositionRotationScale(GameObject objectToCopyFrom, GameObject objectToPasteTo,      bool copyPosition = true, bool copeRotation = true, bool copyScale = true) {     var newTransform = objectToCopyFrom.GetComponent&lt;Transform&gt;();     var currentTransform = objectToPasteTo.GetComponent&lt;Transform&gt;();              if (copyPosition) currentTransform.localPosition = newTransform.localPosition;     if (copeRotation) currentTransform.localRotation = newTransform.localRotation;     if (copyScale) currentTransform.localScale = newTransform.localScale; }      \/\/\/ &lt;summary&gt; \/\/\/ \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 RectTransform \u0443 UI-\u043f\u0430\u043d\u0435\u043b\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/\/ \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u041d\u0435 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0430\u043c\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 (\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c sizeDelta) \/\/\/ \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0443 parent root \u043e\u0431\u044a\u0435\u043a\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"objectToCopyFrom\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"objectToPasteTo\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"copyPosition\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; \/\/\/ &lt;param name=\"copeRotation\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; \/\/\/ &lt;param name=\"copyScale\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; private static void CopyRectTransformPositionRotationScale(GameObject objectToCopyFrom, GameObject objectToPasteTo,     bool copyPosition = true, bool copeRotation = true, bool copyScale = true) {     var newTransform = objectToCopyFrom.GetComponent&lt;RectTransform&gt;();     var currentTransform = objectToPasteTo.GetComponent&lt;RectTransform&gt;();              if (copyPosition) currentTransform.localPosition = newTransform.localPosition;     if (copeRotation) currentTransform.localRotation = newTransform.localRotation;     if (copyScale) currentTransform.localScale = newTransform.localScale; }<\/code><\/pre>\n<p>\u041f\u0440\u0438\u0447\u0451\u043c, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435-\u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c:<\/p>\n<pre><code class=\"cs\">var plane = GameObject.Find(\"Plane\"); var cube = GameObject.Find(\"Cube\"); CopyTransformPositionRotationScale(plane, cube, copyScale:false);<\/code><\/pre>\n<h2>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 UI-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432<\/h2>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Canvas, TextMeshPro \u0438 RectTransform:<\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary&gt; \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f Canvas \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"canvasGameObject\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 &lt;\/param&gt; \/\/\/ &lt;param name=\"renderMode\"&gt; \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f &lt;\/param&gt; \/\/\/ &lt;param name=\"scaleMode\"&gt; \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 &lt;\/param&gt; private void ChangeCanvasSettings(GameObject canvasGameObject, RenderMode renderMode, CanvasScaler.ScaleMode scaleMode) {     canvasGameObject.GetComponentInChildren&lt;Canvas&gt;().renderMode = renderMode;      var canvasScaler = canvasGameObject.GetComponentInChildren&lt;CanvasScaler&gt;();     canvasScaler.uiScaleMode = scaleMode;      \/\/ \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f     if (scaleMode == CanvasScaler.ScaleMode.ScaleWithScreenSize)     {         canvasScaler.referenceResolution = new Vector2(720f, 1280f);         canvasScaler.matchWidthOrHeight = 1f;     } }   \/\/\/ &lt;summary&gt; \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0434\u043b\u044f TextMeshPro \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"textMeshPro\"&gt; \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &lt;\/param&gt; \/\/\/ &lt;param name=\"fontSizeMin\"&gt; \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"fontSizeMax\"&gt; \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"textAlignmentOption\"&gt; \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 &lt;\/param&gt; private void ChangeTMPSettings(TextMeshProUGUI textMeshPro, int fontSizeMin, int fontSizeMax, TextAlignmentOptions textAlignmentOption = TextAlignmentOptions.Center) {     \/\/ \u0437\u0430\u043c\u0435\u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0448\u0440\u0438\u0444\u0442\u0430     textMeshPro.font = (TMP_FontAsset) AssetDatabase.LoadAssetAtPath(\"Assets\/TextMesh Pro\/Resources\/Fonts &amp; Materials\/LiberationSans SDF - Fallback.asset\", typeof(TMP_FontAsset));     textMeshPro.enableAutoSizing = true;     textMeshPro.fontSizeMin = fontSizeMin;     textMeshPro.fontSizeMax = fontSizeMax;     textMeshPro.alignment = textAlignmentOption; }  \/\/\/ &lt;summary&gt; \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 RectTransform \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"rectTransform\"&gt; \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &lt;\/param&gt; \/\/\/ &lt;param name=\"alignment\"&gt; \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 &lt;\/param&gt; \/\/\/ &lt;param name=\"position\"&gt; \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0432 3D-\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 &lt;\/param&gt; \/\/\/ &lt;param name=\"size\"&gt; \u0440\u0430\u0437\u043c\u0435\u0440 &lt;\/param&gt; private void ChangeRectTransformSettings(RectTransform rectTransform, AnchorPresets alignment, Vector3 position, Vector2 size) {     rectTransform.anchoredPosition3D = position;     rectTransform.sizeDelta = size;     rectTransform.SetAnchor(alignment); }<\/code><\/pre>\n<p>\u0417\u0430\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0434\u043b\u044f RectTransform \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u043e\u0435 \u043a\u043e\u0433\u0434\u0430-\u0442\u043e \u0434\u0430\u0432\u043d\u043e \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0430\u0445 \u043f\u043e Unity. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c Anchor \u0438 Pivot. \u0422\u0430\u043a\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u0432 \u043f\u0430\u043f\u043a\u0443 Utils:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d0b\/d55\/8bf\/d0bd558bf691ed07fb82853429fc8dcb.png\" alt=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \" title=\"\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \" width=\"569\" height=\"357\"><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 <\/figcaption><\/figure>\n<p>\u041a\u043e\u0434 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0434\u043b\u044f \u0432\u0430\u0441 \u0432 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u0435:<\/p>\n<details class=\"spoiler\">\n<summary>RectTransformExtension.cs<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cs\">using UnityEngine;  public enum AnchorPresets {     TopLeft,     TopCenter,     TopRight,      MiddleLeft,     MiddleCenter,     MiddleRight,      BottomLeft,     BottomCenter,     BottomRight,      VertStretchLeft,     VertStretchRight,     VertStretchCenter,      HorStretchTop,     HorStretchMiddle,     HorStretchBottom,      StretchAll }  public enum PivotPresets {     TopLeft,     TopCenter,     TopRight,      MiddleLeft,     MiddleCenter,     MiddleRight,      BottomLeft,     BottomCenter,     BottomRight, }  \/\/\/ &lt;summary&gt; \/\/\/ \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 RectTransform \/\/\/ &lt;\/summary&gt; public static class RectTransformExtension {     \/\/\/ &lt;summary&gt;     \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u044f\u043a\u043e\u0440\u044f     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"source\"&gt; \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c &lt;\/param&gt;     \/\/\/ &lt;param name=\"align\"&gt; \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f &lt;\/param&gt;     \/\/\/ &lt;param name=\"offsetX\"&gt; \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0441\u0438 X &lt;\/param&gt;     \/\/\/ &lt;param name=\"offsetY\"&gt; \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e \u043e\u0441\u0438 Y &lt;\/param&gt;     public static void SetAnchor(this RectTransform source, AnchorPresets align, int offsetX = 0, int offsetY = 0)     {         source.anchoredPosition = new Vector3(offsetX, offsetY, 0);         switch (align)         {             case (AnchorPresets.TopLeft):             {                 source.anchorMin = new Vector2(0, 1);                 source.anchorMax = new Vector2(0, 1);                 break;             }             case (AnchorPresets.TopCenter):             {                 source.anchorMin = new Vector2(0.5f, 1);                 source.anchorMax = new Vector2(0.5f, 1);                 break;             }             case (AnchorPresets.TopRight):             {                 source.anchorMin = new Vector2(1, 1);                 source.anchorMax = new Vector2(1, 1);                 break;             }              case (AnchorPresets.MiddleLeft):             {                 source.anchorMin = new Vector2(0, 0.5f);                 source.anchorMax = new Vector2(0, 0.5f);                 break;             }             case (AnchorPresets.MiddleCenter):             {                 source.anchorMin = new Vector2(0.5f, 0.5f);                 source.anchorMax = new Vector2(0.5f, 0.5f);                 break;             }             case (AnchorPresets.MiddleRight):             {                 source.anchorMin = new Vector2(1, 0.5f);                 source.anchorMax = new Vector2(1, 0.5f);                 break;             }              case (AnchorPresets.BottomLeft):             {                 source.anchorMin = new Vector2(0, 0);                 source.anchorMax = new Vector2(0, 0);                 break;             }             case (AnchorPresets.BottomCenter):             {                 source.anchorMin = new Vector2(0.5f, 0);                 source.anchorMax = new Vector2(0.5f, 0);                 break;             }             case (AnchorPresets.BottomRight):             {                 source.anchorMin = new Vector2(1, 0);                 source.anchorMax = new Vector2(1, 0);                 break;             }              case (AnchorPresets.HorStretchTop):             {                 source.anchorMin = new Vector2(0, 1);                 source.anchorMax = new Vector2(1, 1);                 break;             }             case (AnchorPresets.HorStretchMiddle):             {                 source.anchorMin = new Vector2(0, 0.5f);                 source.anchorMax = new Vector2(1, 0.5f);                 break;             }             case (AnchorPresets.HorStretchBottom):             {                 source.anchorMin = new Vector2(0, 0);                 source.anchorMax = new Vector2(1, 0);                 break;             }              case (AnchorPresets.VertStretchLeft):             {                 source.anchorMin = new Vector2(0, 0);                 source.anchorMax = new Vector2(0, 1);                 break;             }             case (AnchorPresets.VertStretchCenter):             {                 source.anchorMin = new Vector2(0.5f, 0);                 source.anchorMax = new Vector2(0.5f, 1);                 break;             }             case (AnchorPresets.VertStretchRight):             {                 source.anchorMin = new Vector2(1, 0);                 source.anchorMax = new Vector2(1, 1);                 break;             }              case (AnchorPresets.StretchAll):             {                 source.anchorMin = new Vector2(0, 0);                 source.anchorMax = new Vector2(1, 1);                 break;             }         }     }      \/\/\/ &lt;summary&gt;     \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 pivot     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"source\"&gt; \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c &lt;\/param&gt;     \/\/\/ &lt;param name=\"preset\"&gt; \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f &lt;\/param&gt;     public static void SetPivot(this RectTransform source, PivotPresets preset)     {         switch (preset)         {             case (PivotPresets.TopLeft):             {                 source.pivot = new Vector2(0, 1);                 break;             }             case (PivotPresets.TopCenter):             {                 source.pivot = new Vector2(0.5f, 1);                 break;             }             case (PivotPresets.TopRight):             {                 source.pivot = new Vector2(1, 1);                 break;             }              case (PivotPresets.MiddleLeft):             {                 source.pivot = new Vector2(0, 0.5f);                 break;             }             case (PivotPresets.MiddleCenter):             {                 source.pivot = new Vector2(0.5f, 0.5f);                 break;             }             case (PivotPresets.MiddleRight):             {                 source.pivot = new Vector2(1, 0.5f);                 break;             }              case (PivotPresets.BottomLeft):             {                 source.pivot = new Vector2(0, 0);                 break;             }             case (PivotPresets.BottomCenter):             {                 source.pivot = new Vector2(0.5f, 0);                 break;             }             case (PivotPresets.BottomRight):             {                 source.pivot = new Vector2(1, 0);                 break;             }         }     } }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cs\">\/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f Canvas var canvas = GameObject.Find(\"Canvas\"); ChangeCanvasSettings(canvas, RenderMode.ScreenSpaceOverlay, CanvasScaler.ScaleMode.ScaleWithScreenSize);  \/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0448\u0440\u0438\u0444\u0442\u0430 var tmp = canvas.GetComponentInChildren&lt;TextMeshProUGUI&gt;(); ChangeTMPSettings(tmp, 36, 72, TextAlignmentOptions.BottomRight);  \/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 RectTransform ChangeRectTransformSettings(tmp.GetComponent&lt;RectTransform&gt;(), AnchorPresets.MiddleCenter, Vector3.zero, new Vector2(100f, 20f));<\/code><\/pre>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e, \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0441\u0430 Transform \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 (\u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438):<\/p>\n<details class=\"spoiler\">\n<summary>TransformExtension.cs<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cs\">using UnityEngine;  \/\/\/ &lt;summary&gt; \/\/\/ \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Transform \/\/\/ &lt;\/summary&gt; public static class TransformExtension {     \/\/\/ &lt;summary&gt;     \/\/\/ \u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"parent\"&gt; \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &lt;\/param&gt;     \/\/\/ &lt;param name=\"childName\"&gt; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438\u0441\u043a\u043e\u043c\u043e\u0433\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 &lt;\/param&gt;     \/\/\/ &lt;returns&gt; null - \u0435\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d,     \/\/\/           Transform \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430, \u0435\u0441\u043b\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043d\u0430\u0439\u0434\u0435\u043d     \/\/\/ &lt;\/returns&gt;     public static Transform FindChildWithName(this Transform parent, string childName)     {         foreach (Transform child in parent)         {             if (child.name == childName)                 return child;              var result = child.FindChildWithName(childName);             if (result)                 return result;         }          return null;     } }<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u0435 OnClick() \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0435 \u0432 \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440\u0435 &#8212; \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u0432\u043e\u0442 \u0442\u0430\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f:<\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary&gt; \/\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 (\u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0432\u0438\u0434\u043d\u043e \u0432 \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440\u0435) \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"uiButton\"&gt; \u043a\u043d\u043e\u043f\u043a\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"action\"&gt; \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 &lt;\/param&gt; private static void AddPersistentListenerToButton(Button uiButton, UnityAction action) {     try     {         \/\/ \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0443\u0441\u0442\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435         if (uiButton.onClick.GetPersistentTarget(0) == null)             UnityEventTools.RegisterPersistentListener(uiButton.onClick, 0, action);     }     catch (ArgumentException)     {         UnityEventTools.AddPersistentListener(uiButton.onClick, action);     } }<\/code><\/pre>\n<p>\u0422\u043e \u0435\u0441\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre><code class=\"cs\">\/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 AddPersistentListenerToButton(canvas.GetComponentInChildren&lt;Button&gt;(), FindObjectOfType&lt;SampleClass&gt;().QuitApp);<\/code><\/pre>\n<p>\u0422\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0434\u0432\u0438\u0436\u043a\u0435 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u0438\u043c:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/262\/838\/51f\/26283851facb91f380da48e6ee284f75.png\" alt=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b AddPersistentListener\" title=\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b AddPersistentListener\" width=\"426\" height=\"471\"><figcaption>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b AddPersistentListener<\/figcaption><\/figure>\n<h2>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043d\u0430 \u0441\u0446\u0435\u043d\u0435<\/h2>\n<p>\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u043e\u043c\u0443 \u0432\u0430\u0436\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u043d\u0430 \u0441\u0446\u0435\u043d\u0435, \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0444\u0430\u0431\u0430 \u043d\u0430 \u0441\u0446\u0435\u043d\u0435 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0443 \u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438:<\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary&gt; \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0441\u043b\u043e\u044f \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"gameObject\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442 &lt;\/param&gt; \/\/\/ &lt;param name=\"layerName\"&gt; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u043b\u043e\u044f &lt;\/param&gt; private void ChangeObjectLayer(GameObject gameObject, string layerName) {     gameObject.layer = LayerMask.NameToLayer(layerName); }  \/\/\/ &lt;summary&gt; \/\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0444\u0430\u0431\u0430 \u043d\u0430 \u0441\u0446\u0435\u043d\u0443 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"prefabPath\"&gt; \u043f\u0443\u0442\u044c \u043a \u043f\u0440\u0435\u0444\u0430\u0431\u0443 &lt;\/param&gt; \/\/\/ &lt;param name=\"parentGameObject\"&gt; \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 &lt;\/param&gt; \/\/\/ &lt;param name=\"hierarchyIndex\"&gt; \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 &lt;\/param&gt; private void InstantiateNewGameObject(string prefabPath, GameObject parentGameObject, int hierarchyIndex = 0) {     if (parentGameObject)     {         var newGameObject = Instantiate((GameObject) AssetDatabase.LoadAssetAtPath(prefabPath, typeof(GameObject)), parentGameObject.transform);                      \/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0441\u0446\u0435\u043d\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430         newGameObject.transform.SetSiblingIndex(hierarchyIndex);     }     else         Instantiate((GameObject) AssetDatabase.LoadAssetAtPath(prefabPath, typeof(GameObject))); }<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u043a\u043e\u0434\u0430:<\/p>\n<pre><code class=\"cs\">\/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0442\u044d\u0433\u0430 \u0438 \u0441\u043b\u043e\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 var cube = GameObject.Find(\"Cube\"); cube.tag = \"Player\"; ChangeObjectLayer(cube, \"MainLayer\");                 \/\/ \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0430 \u0441\u0446\u0435\u043d\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0435\u0433\u043e \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443 InstantiateNewGameObject(\"Assets\/Prefabs\/Capsule.prefab\", cube, 1);<\/code><\/pre>\n<p>\u042d\u043b\u0435\u043c\u0435\u043d\u0442 \u0432\u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0435 \u0432 \u043a\u043e\u043d\u0435\u0446 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438, \u0430 \u043d\u0430 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d14\/0dd\/1d6\/d140dd1d6866e3273c190ac2ac8f6a09.png\" width=\"271\" height=\"108\"><figcaption><\/figcaption><\/figure>\n<h2>\u0426\u0438\u043a\u043b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d<\/h2>\n<p>\u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 &#8212; \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432\u0441\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0430\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043d\u0438\u044f-\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f-\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u0432 <strong>File -&gt;Build Settings<\/strong>:<\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary&gt; \/\/\/ \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0446\u0438\u043a\u043b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d \u0432 Build Settings \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"onSceneLoaded\"&gt; \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0441\u0446\u0435\u043d\u044b &lt;\/param&gt; private void RunSceneUpdateCycle(UnityAction onSceneLoaded) {     \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0443\u0442\u0435\u0439 \u043a \u0441\u0446\u0435\u043d\u0430\u043c \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f     var scenes = EditorBuildSettings.scenes.Select(scene =&gt; scene.path).ToList();     foreach (var scene in scenes)     {         \/\/ \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u0446\u0435\u043d\u044b         EditorSceneManager.OpenScene(scene);                      \/\/ \u043f\u043e\u043c\u0435\u0442\u043a\u0430 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u043d\u0430 \u0441\u0446\u0435\u043d\u0435 \u0431\u044b\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f         EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene());                      \/\/ \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439         onSceneLoaded?.Invoke();                      \/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435         EditorApplication.SaveScene();                      Debug.Log($\"UPDATED {scene}\");     } }<\/code><\/pre>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043c \u0432\u0441\u0451 \u0432\u043c\u0435\u0441\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0446\u0438\u043a\u043b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d \u043f\u043e \u043a\u043b\u0438\u043a\u0443 \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443:<\/p>\n<details class=\"spoiler\">\n<summary>\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 SceneUpdater.cs<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"cs\">#if UNITY_EDITOR using System; using UnityEditor.Events; using TMPro; using UnityEngine.UI; using System.Collections.Generic; using UnityEngine.SceneManagement; using UnityEditor; using UnityEditor.SceneManagement; using System.Linq; using UnityEngine; using UnityEngine.Events;  \/\/\/ &lt;summary&gt; \/\/\/ \u041a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d, \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0445 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a BuildSettings (\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0438 \u043d\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435) \/\/\/ &lt;\/summary&gt; public class SceneUpdater : EditorWindow {     [MenuItem(\"Custom Tools\/Scene Updater\")]     public static void ShowWindow()     {         GetWindow(typeof(SceneUpdater));     }      private void OnGUI()     {         \/\/ \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f         if (GUILayout.Button(\"Update scenes\"))             RunSceneUpdateCycle((() =&gt;             {                 \/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0442\u044d\u0433\u0430 \u0438 \u0441\u043b\u043e\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430                 var cube = GameObject.Find(\"Cube\");                 cube.tag = \"Player\";                 ChangeObjectLayer(cube, \"MainLayer\");                                  \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c                 AddComponentToObject&lt;BoxCollider&gt;(\"Plane\");                                  \/\/ \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c                 DestroyObjectWithName(\"Sphere\");                                  \/\/ \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043d\u0430 \u0441\u0446\u0435\u043d\u0435 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0435\u0433\u043e \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c\u0443                 InstantiateNewGameObject(\"Assets\/Prefabs\/Capsule.prefab\", cube, 1);                  \/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f Canvas                 var canvas = GameObject.Find(\"Canvas\");                 ChangeCanvasSettings(canvas, RenderMode.ScreenSpaceOverlay, CanvasScaler.ScaleMode.ScaleWithScreenSize);                  \/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0448\u0440\u0438\u0444\u0442\u0430                 var tmp = canvas.GetComponentInChildren&lt;TextMeshProUGUI&gt;();                 ChangeTMPSettings(tmp, 36, 72, TextAlignmentOptions.BottomRight);                  \/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 RectTransform                 ChangeRectTransformSettings(tmp.GetComponent&lt;RectTransform&gt;(), AnchorPresets.MiddleCenter, Vector3.zero, new Vector2(100f, 20f));                                  \/\/ \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443                 AddPersistentListenerToButton(canvas.GetComponentInChildren&lt;Button&gt;(), FindObjectOfType&lt;SampleClass&gt;().QuitApp);                  \/\/ \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430                 CopyTransformPositionRotationScale(GameObject.Find(\"Plane\"), cube, copyScale:false);             }));     }      \/\/\/ &lt;summary&gt;     \/\/\/ \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0446\u0438\u043a\u043b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d \u0432 Build Settings     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"onSceneLoaded\"&gt; \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0441\u0446\u0435\u043d\u044b &lt;\/param&gt;     private void RunSceneUpdateCycle(UnityAction onSceneLoaded)     {         \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0443\u0442\u0435\u0439 \u043a \u0441\u0446\u0435\u043d\u0430\u043c \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f         var scenes = EditorBuildSettings.scenes.Select(scene =&gt; scene.path).ToList();         foreach (var scene in scenes)         {             \/\/ \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u0446\u0435\u043d\u044b             EditorSceneManager.OpenScene(scene);                          \/\/ \u043f\u043e\u043c\u0435\u0442\u043a\u0430 \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u043d\u0430 \u0441\u0446\u0435\u043d\u0435 \u0431\u044b\u043b\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u044b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f             EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene());                          \/\/ \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439             onSceneLoaded?.Invoke();                          \/\/ \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435             EditorApplication.SaveScene();                          Debug.Log($\"UPDATED {scene}\");         }     }      \/\/\/ &lt;summary&gt;     \/\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 (\u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0432\u0438\u0434\u043d\u043e \u0432 \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440\u0435)     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"uiButton\"&gt; \u043a\u043d\u043e\u043f\u043a\u0430 &lt;\/param&gt;     \/\/\/ &lt;param name=\"action\"&gt; \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 &lt;\/param&gt;     private static void AddPersistentListenerToButton(Button uiButton, UnityAction action)     {         try         {             \/\/ \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0443\u0441\u0442\u043e\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0435             if (uiButton.onClick.GetPersistentTarget(0) == null)                 UnityEventTools.RegisterPersistentListener(uiButton.onClick, 0, action);         }         catch (ArgumentException)         {             UnityEventTools.AddPersistentListener(uiButton.onClick, action);         }     }      \/\/\/ &lt;summary&gt;     \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 RectTransform     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"rectTransform\"&gt; \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &lt;\/param&gt;     \/\/\/ &lt;param name=\"alignment\"&gt; \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 &lt;\/param&gt;     \/\/\/ &lt;param name=\"position\"&gt; \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u0432 3D-\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 &lt;\/param&gt;     \/\/\/ &lt;param name=\"size\"&gt; \u0440\u0430\u0437\u043c\u0435\u0440 &lt;\/param&gt;     private void ChangeRectTransformSettings(RectTransform rectTransform, AnchorPresets alignment, Vector3 position, Vector2 size)     {         rectTransform.anchoredPosition3D = position;         rectTransform.sizeDelta = size;         rectTransform.SetAnchor(alignment);     }      \/\/\/ &lt;summary&gt;     \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0434\u043b\u044f TextMeshPro     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"textMeshPro\"&gt; \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &lt;\/param&gt;     \/\/\/ &lt;param name=\"fontSizeMin\"&gt; \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 &lt;\/param&gt;     \/\/\/ &lt;param name=\"fontSizeMax\"&gt; \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 &lt;\/param&gt;     \/\/\/ &lt;param name=\"textAlignmentOption\"&gt; \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 &lt;\/param&gt;     private void ChangeTMPSettings(TextMeshProUGUI textMeshPro, int fontSizeMin, int fontSizeMax, TextAlignmentOptions textAlignmentOption = TextAlignmentOptions.Center)     {         \/\/ \u0437\u0430\u043c\u0435\u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0448\u0440\u0438\u0444\u0442\u0430         textMeshPro.font = (TMP_FontAsset) AssetDatabase.LoadAssetAtPath(\"Assets\/TextMesh Pro\/Resources\/Fonts &amp; Materials\/LiberationSans SDF - Fallback.asset\", typeof(TMP_FontAsset));         textMeshPro.enableAutoSizing = true;         textMeshPro.fontSizeMin = fontSizeMin;         textMeshPro.fontSizeMax = fontSizeMax;         textMeshPro.alignment = textAlignmentOption;     }      \/\/\/ &lt;summary&gt;     \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f Canvas     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"canvasGameObject\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 &lt;\/param&gt;     \/\/\/ &lt;param name=\"renderMode\"&gt; \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f &lt;\/param&gt;     \/\/\/ &lt;param name=\"scaleMode\"&gt; \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 &lt;\/param&gt;     private void ChangeCanvasSettings(GameObject canvasGameObject, RenderMode renderMode, CanvasScaler.ScaleMode scaleMode)     {         canvasGameObject.GetComponentInChildren&lt;Canvas&gt;().renderMode = renderMode;          var canvasScaler = canvasGameObject.GetComponentInChildren&lt;CanvasScaler&gt;();         canvasScaler.uiScaleMode = scaleMode;          \/\/ \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f         if (scaleMode == CanvasScaler.ScaleMode.ScaleWithScreenSize)         {             canvasScaler.referenceResolution = new Vector2(720f, 1280f);             canvasScaler.matchWidthOrHeight = 1f;         }     }           \/\/\/ &lt;summary&gt;     \/\/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0432\u0435\u0440\u0445\u043d\u0438\u0445 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"parentGameObject\"&gt; \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &lt;\/param&gt;     \/\/\/ &lt;returns&gt; \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 &lt;\/returns&gt;     private static List&lt;GameObject&gt; GetAllChildren(GameObject parentGameObject)     {         var children = new List&lt;GameObject&gt;();                  for (int i = 0; i&lt; parentGameObject.transform.childCount; i++)             children.Add(parentGameObject.transform.GetChild(i).gameObject);                  return children;     }      \/\/\/ &lt;summary&gt;     \/\/\/ \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 Transform \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430     \/\/\/ \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430.     \/\/\/ \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0443 parent root \u043e\u0431\u044a\u0435\u043a\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"objectToCopyFrom\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt;     \/\/\/ &lt;param name=\"objectToPasteTo\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt;     \/\/\/ &lt;param name=\"copyPosition\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt;     \/\/\/ &lt;param name=\"copyRotation\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt;     \/\/\/ &lt;param name=\"copyScale\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt;     private static void CopyTransformPositionRotationScale(GameObject objectToCopyFrom, GameObject objectToPasteTo,          bool copyPosition = true, bool copyRotation = true, bool copyScale = true)     {         var newTransform = objectToCopyFrom.GetComponent&lt;Transform&gt;();         var currentTransform = objectToPasteTo.GetComponent&lt;Transform&gt;();                  if (copyPosition) currentTransform.localPosition = newTransform.localPosition;         if (copyRotation) currentTransform.localRotation = newTransform.localRotation;         if (copyScale) currentTransform.localScale = newTransform.localScale;     }          \/\/\/ &lt;summary&gt;     \/\/\/ \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 RectTransform \u0443 UI-\u043f\u0430\u043d\u0435\u043b\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430     \/\/\/ \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u041d\u0435 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0430\u043c\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 (\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c sizeDelta)     \/\/\/ \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0443 parent root \u043e\u0431\u044a\u0435\u043a\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"objectToCopyFrom\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt;     \/\/\/ &lt;param name=\"objectToPasteTo\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt;     \/\/\/ &lt;param name=\"copyPosition\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt;     \/\/\/ &lt;param name=\"copyRotation\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt;     \/\/\/ &lt;param name=\"copyScale\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt;     private static void CopyRectTransformPositionRotationScale(GameObject objectToCopyFrom, GameObject objectToPasteTo,         bool copyPosition = true, bool copyRotation = true, bool copyScale = true)     {         var newTransform = objectToCopyFrom.GetComponent&lt;RectTransform&gt;();         var currentTransform = objectToPasteTo.GetComponent&lt;RectTransform&gt;();                  if (copyPosition) currentTransform.localPosition = newTransform.localPosition;         if (copyRotation) currentTransform.localRotation = newTransform.localRotation;         if (copyScale) currentTransform.localScale = newTransform.localScale;     }      \/\/\/ &lt;summary&gt;     \/\/\/ \u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"objectName\"&gt; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 &lt;\/param&gt;     private void DestroyObjectWithName(string objectName)     {         DestroyImmediate(GameObject.Find(objectName)?.gameObject);     }      \/\/\/ &lt;summary&gt;     \/\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"objectName\"&gt; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 &lt;\/param&gt;     \/\/\/ &lt;typeparam name=\"T\"&gt; \u0442\u0438\u043f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/typeparam&gt;     private void AddComponentToObject&lt;T&gt;(string objectName) where T : Component     {         GameObject.Find(objectName)?.gameObject.AddComponent&lt;T&gt;();     }      \/\/\/ &lt;summary&gt;     \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044e \u0441\u043b\u043e\u044f     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"gameObject\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442 &lt;\/param&gt;     \/\/\/ &lt;param name=\"layerName\"&gt; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u043b\u043e\u044f &lt;\/param&gt;     private void ChangeObjectLayer(GameObject gameObject, string layerName)     {         gameObject.layer = LayerMask.NameToLayer(layerName);     }      \/\/\/ &lt;summary&gt;     \/\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0444\u0430\u0431\u0430 \u043d\u0430 \u0441\u0446\u0435\u043d\u0443 \u0441 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438     \/\/\/ &lt;\/summary&gt;     \/\/\/ &lt;param name=\"prefabPath\"&gt; \u043f\u0443\u0442\u044c \u043a \u043f\u0440\u0435\u0444\u0430\u0431\u0443 &lt;\/param&gt;     \/\/\/ &lt;param name=\"parentGameObject\"&gt; \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 &lt;\/param&gt;     \/\/\/ &lt;param name=\"hierarchyIndex\"&gt; \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 &lt;\/param&gt;     private void InstantiateNewGameObject(string prefabPath, GameObject parentGameObject, int hierarchyIndex = 0)     {         if (parentGameObject)         {             var newGameObject = Instantiate((GameObject) AssetDatabase.LoadAssetAtPath(prefabPath, typeof(GameObject)), parentGameObject.transform);                          \/\/ \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0441\u0446\u0435\u043d\u044b \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430             newGameObject.transform.SetSiblingIndex(hierarchyIndex);         }         else             Instantiate((GameObject) AssetDatabase.LoadAssetAtPath(prefabPath, typeof(GameObject)));     } } #endif<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432\u0441\u0435\u0433\u043e \u0437\u0430 \u043e\u0434\u0438\u043d \u043a\u043b\u0438\u043a \u0432\u0441\u0435 \u0441\u0446\u0435\u043d\u044b \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u044f\u0442\u0441\u044f, \u0430 \u043c\u044b \u0442\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0441\u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0439\u0442\u0438 \u0432\u044b\u043f\u0438\u0442\u044c \u043a\u043e\u0444\u0435 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043d\u0430\u0441\u043b\u0430\u0436\u0434\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d5d\/3f8\/eab\/d5d3f8eabf18624144090525262a91af.png\" alt=\"\u0412\u043e\u043b\u0448\u0435\u0431\u043d\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430\" title=\"\u0412\u043e\u043b\u0448\u0435\u0431\u043d\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430\" width=\"413\" height=\"215\"><figcaption>\u0412\u043e\u043b\u0448\u0435\u0431\u043d\u0430\u044f \u043a\u043d\u043e\u043f\u043a\u0430<\/figcaption><\/figure>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>\u0418\u043c\u0435\u044f \u0432 \u0441\u0432\u043e\u0451\u043c \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u0442\u0430\u043a\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0451, \u0447\u0442\u043e \u0432\u0430\u043c \u0443\u0433\u043e\u0434\u043d\u043e \u0437\u0430 \u0441\u0447\u0438\u0442\u0430\u043d\u043d\u044b\u0435 \u043a\u043b\u0438\u043a\u0438: \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044f, \u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u043d\u0430 \u0441\u0446\u0435\u043d\u0430\u0445, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c Fuse\/IClone\/DAZ \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u0435\u043d\u044f\u0442\u044c Build Pipeline, \u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u043a\u0430\u043a-\u043d\u0438\u0431\u0443\u0434\u044c \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0430\u0437.<\/p>\n<p>\u0413\u043b\u0430\u0432\u043d\u043e\u0435, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0439 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a \u0432\u0430\u0448\u0438\u0445 \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0439 \u0441\u043f\u0435\u0440\u0432\u0430 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0441\u0446\u0435\u043d\u0435 (\u0442.\u0435. \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <strong>RunSceneUpdateCycle<\/strong>).<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/github.com\/EnjiRouz\/Unity-Scene-Updater\" rel=\"noopener noreferrer nofollow\">\u043d\u0430 \u043c\u043e\u0451\u043c GitHub<\/a>.<\/p>\n<p>\u041a\u0441\u0442\u0430\u0442\u0438, \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0430\u0440\u044c\u0435\u0440\u0443 \u0432 IT, \u044f&nbsp;\u0431\u0443\u0434\u0443 \u0440\u0430\u0434\u0430 \u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0441\u0432\u043e\u0451\u043c&nbsp;<a href=\"https:\/\/www.youtube.com\/c\/ITDIVA\" rel=\"noopener noreferrer nofollow\">YouTube-\u043a\u0430\u043d\u0430\u043b\u0435 IT DIVA<\/a>. \u0422\u0430\u043c \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0432\u0438\u0434\u0435\u043e \u043f\u043e \u0442\u043e\u043c\u0443, \u043a\u0430\u043a \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0442\u044c GitHub, \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u043e\u0431\u0435\u0441\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435, \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u0432\u044b\u0433\u043e\u0440\u0430\u043d\u0438\u0435\u043c, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0438 \u0442.\u0434.  <\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0438 \u0434\u043e \u043d\u043e\u0432\u044b\u0445 \u0432\u0441\u0442\u0440\u0435\u0447!<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/559958\/\"> https:\/\/habr.com\/ru\/post\/559958\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><figcaption>\u0422\u0430\u043d\u044e\u0448\u043a\u0430 &#8212; \u0430\u0432\u0442\u043e\u0440 \u043a\u0430\u043d\u0430\u043b\u0430 IT DIVA \u0438 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043a\u043e\u0444\u0435\u0433\u043e\u043b\u0438\u043a \u0438 \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u0443<\/figcaption><\/figure>\n<p>Unity &#8212; \u044d\u0442\u043e \u043e\u0434\u0438\u043d \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0435\u0439\u0448\u0438\u0445 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u0438\u043d\u0434\u0438-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u0433\u0440 \u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0442\u0430\u043a \u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f\u043c\u0438, \u0447\u044c\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435, \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0435\u0433\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438, \u0441\u043e\u0437\u0434\u0430\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0441 \u043a\u0443\u0447\u0435\u0439 \u0441\u0446\u0435\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u043e \u043c\u0435\u0440\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0418 \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u044d\u0442\u0438\u0445 \u0441\u0446\u0435\u043d, \u0442\u0435\u043c \u0434\u043e\u043b\u044c\u0448\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c\u0438 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043c\u043d\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043d\u0430 \u0441\u0446\u0435\u043d\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435. <\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0446\u0435\u043d \u0432 \u0432\u0430\u0448\u0438\u0445 Unity-\u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0438 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0432 \u0441\u043e\u0432\u043e\u043a\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442 \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0447\u0430\u0441\u043e\u0432 \u0440\u0443\u0447\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<p>\u0410 \u0434\u0430\u043b\u0435\u0435 \u0432\u044b \u0443\u0436\u0435 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0439 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043a\u043e\u0434 \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u043d\u0443\u0436\u0434\u044b.<\/p>\n<h2>\u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d \u0442\u0430\u043a\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442<\/h2>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c 3 \u0443\u0440\u043e\u0432\u043d\u044f \u0432 \u0432\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u0412\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 3D-\u043c\u043e\u0434\u0435\u043b\u0438. \u041d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0439 \u0441\u0446\u0435\u043d\u044b.<\/p>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435, \u0432\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0442\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u0434\u0432\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0446\u0435\u043d\u044b, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e 3 \u0441\u0446\u0435\u043d\u044b &#8212; \u044d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e.<\/p>\n<p>\u041d\u043e \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 \u0438\u0445 \u0441\u0442\u0430\u043d\u0435\u0442 10? 20? 50?<\/p>\n<p>\u0423\u0432\u0435\u0440\u0435\u043d\u0430, \u0432\u044b \u0441\u0440\u0430\u0437\u0443 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u0442\u0435 \u0432\u0441\u0435 \u0440\u0443\u0433\u0430\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u043d\u0430\u0435\u0442\u0435. \u0414\u0430 \u0435\u0449\u0451 \u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0438\u0437 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432\u0441\u0435 \u0441\u0446\u0435\u043d\u044b \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043d\u0443\u0436\u043d\u044b\u0445 \u0432\u0430\u043c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439. \u0410 \u044d\u0442\u043e \u0432\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f.<\/p>\n<h2>\u041a\u0430\u043a \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0440\u0435\u0448\u0438\u0442\u044c? <\/h2>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e!<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 OnValidate() \u0432 \u043a\u043b\u0430\u0441\u0441\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043d\u0430 \u0441\u0446\u0435\u043d\u0435. \u041d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0446\u0435\u043d\u0443 \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0435\u0451 \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u043d\u0435 \u0432\u0435\u0441\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u0446\u0435\u043d \u043d\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0447\u0435\u0440\u0435\u0437 OnValidate(), \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432, \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043e\u0442 MonoBehaviour.<\/p>\n<p>\u041d\u0430\u043c \u0442\u0430\u043a\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043d\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442. \u041d\u043e \u0437\u043d\u0430\u0442\u044c \u043e \u043d\u0451\u043c \u0442\u043e\u0436\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e.<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u043e\u0439\u0434\u0451\u043c \u0434\u0440\u0443\u0433\u0438\u043c \u043f\u0443\u0442\u0451\u043c \u0438 \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0446\u0435\u043d\u0443 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u043b\u044e\u0431\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041d\u0430\u043f\u0438\u0441\u0430\u0432 \u0442\u0430\u043a\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u043e\u0434\u0438\u043d \u0440\u0430\u0437, \u0432\u044b \u0442\u043e\u0447\u043d\u043e \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u0435 \u0441\u0435\u0431\u0435 \u0443\u0439\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u0430\u0441\u0441 \u0432 \u043f\u0430\u043f\u043a\u0435 \u00abEditor\u00bb:<\/p>\n<figure class=\"full-width\"><figcaption>\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u0434\u0432\u0438\u0436\u043a\u0430<\/figcaption><\/figure>\n<p>\u041e\u0431\u0440\u0430\u0449\u0430\u044e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0430\u043f\u043e\u043a \u0432 Unity \u0438\u0433\u0440\u0430\u0435\u0442 \u0440\u043e\u043b\u044c. \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0432 \u043f\u0430\u043f\u043a\u0435 &#171;Editor&#187; \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u043d\u0430\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 Unity \u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u043e\u043a\u043d\u0430.<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043a\u0430\u0436\u0435\u043c, \u0447\u0442\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0443\u0434\u0435\u043c \u043e\u0442 \u00abEditor Window\u00bb (\u0430 \u043d\u0435 \u043e\u0442 \u00abMonoBehaviour\u00bb, \u043a\u0430\u043a \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e):<\/p>\n<pre><code class=\"cs\">using UnityEngine; using UnityEditor;  public class SceneUpdater : EditorWindow {     [MenuItem(\"Custom Tools\/Scene Updater\")]     public static void ShowWindow()     {         GetWindow(typeof(SceneUpdater));     }          private void OnGUI()     {         if (GUILayout.Button(\"Update scenes\"))     \t\t\t\tDebug.Log(\"Updating\")     } }<\/code><\/pre>\n<p>\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430<strong> [MenuItem(&#171;Custom Tools\/Scene Updater&#187;)] <\/strong>\u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0435\u043d\u044e \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0435\u0439 \u0432 \u0441\u0430\u043c\u043e\u043c \u0434\u0432\u0438\u0436\u043a\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432\u043e\u0435 \u043e\u043a\u043d\u043e \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430:<\/p>\n<figure class=\"full-width\"><figcaption>\u041d\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u043c\u0435\u043d\u044e, \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442<\/figcaption><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043d\u043e\u043f\u043a\u0443, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043d\u0430\u0448 \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"cs\">using UnityEngine; using UnityEditor;  public class SceneUpdater : EditorWindow {     [MenuItem(\"Custom Tools\/Scene Updater\")]     public static void ShowWindow()     {         GetWindow(typeof(SceneUpdater));     }          private void OnGUI()     {         if (GUILayout.Button(\"Update scenes\"))     \t\t\t\tDebug.Log(\"Updating\")     } }<\/code><\/pre>\n<p>\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043b\u0438\u0447\u043d\u043e \u044f \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e.<\/p>\n<h2>\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c<\/h2>\n<p>\u0414\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0438\u043c\u0435\u043d\u0430\u043c\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e:<\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary&gt; \/\/\/ \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"objectName\"&gt; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;typeparam name=\"T\"&gt; \u0442\u0438\u043f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/typeparam&gt; private void AddComponentToObject&lt;T&gt;(string objectName) where T : Component {     GameObject.Find(objectName)?.gameObject.AddComponent&lt;T&gt;(); }<\/code><\/pre>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0451 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cs\">AddComponentToObject&lt;BoxCollider&gt;(\"Plane\"); AddComponentToObject&lt;SampleClass&gt;(\"EventSystem\");<\/code><\/pre>\n<p>\u042d\u0442\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0451 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e.<\/p>\n<h2>\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u043e \u0438\u043c\u0435\u043d\u0438<\/h2>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432:<\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary&gt; \/\/\/ \u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"objectName\"&gt; \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 &lt;\/param&gt; private void DestroyObjectWithName(string objectName) {     DestroyImmediate(GameObject.Find(objectName)?.gameObject); }<\/code><\/pre>\n<p>\u0418 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"cs\">DestroyObjectWithName(\"Sphere\");<\/code><\/pre>\n<h2>\u041f\u0435\u0440\u0435\u043d\u043e\u0441 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043c\u0435\u0436\u0434\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438<\/h2>\n<p>\u0414\u043b\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 Transform \u0438 RectTransform \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u043e\u0432\u044b\u043c \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430):<\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary&gt; \/\/\/ \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 Transform \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/\/ \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \/\/\/ \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0443 parent root \u043e\u0431\u044a\u0435\u043a\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"objectToCopyFrom\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"objectToPasteTo\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"copyPosition\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; \/\/\/ &lt;param name=\"copeRotation\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; \/\/\/ &lt;param name=\"copyScale\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; private static void CopyTransformPositionRotationScale(GameObject objectToCopyFrom, GameObject objectToPasteTo,      bool copyPosition = true, bool copeRotation = true, bool copyScale = true) {     var newTransform = objectToCopyFrom.GetComponent&lt;Transform&gt;();     var currentTransform = objectToPasteTo.GetComponent&lt;Transform&gt;();              if (copyPosition) currentTransform.localPosition = newTransform.localPosition;     if (copeRotation) currentTransform.localRotation = newTransform.localRotation;     if (copyScale) currentTransform.localScale = newTransform.localScale; }      \/\/\/ &lt;summary&gt; \/\/\/ \u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438, \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u0430 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 RectTransform \u0443 UI-\u043f\u0430\u043d\u0435\u043b\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \/\/\/ \u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u041d\u0435 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u043c\u0435\u0440 \u0441\u0430\u043c\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 (\u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c sizeDelta) \/\/\/ \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u0443 parent root \u043e\u0431\u044a\u0435\u043a\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u043d\u0443\u043b\u0435\u0432\u044b\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"objectToCopyFrom\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"objectToPasteTo\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"copyPosition\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0437\u0438\u0446\u0438\u044f \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; \/\/\/ &lt;param name=\"copeRotation\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043f\u043e\u0432\u043e\u0440\u043e\u0442 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; \/\/\/ &lt;param name=\"copyScale\"&gt; \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c &lt;\/param&gt; private static void CopyRectTransformPositionRotationScale(GameObject objectToCopyFrom, GameObject objectToPasteTo,     bool copyPosition = true, bool copeRotation = true, bool copyScale = true) {     var newTransform = objectToCopyFrom.GetComponent&lt;RectTransform&gt;();     var currentTransform = objectToPasteTo.GetComponent&lt;RectTransform&gt;();              if (copyPosition) currentTransform.localPosition = newTransform.localPosition;     if (copeRotation) currentTransform.localRotation = newTransform.localRotation;     if (copyScale) currentTransform.localScale = newTransform.localScale; }<\/code><\/pre>\n<p>\u041f\u0440\u0438\u0447\u0451\u043c, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435-\u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c:<\/p>\n<pre><code class=\"cs\">var plane = GameObject.Find(\"Plane\"); var cube = GameObject.Find(\"Cube\"); CopyTransformPositionRotationScale(plane, cube, copyScale:false);<\/code><\/pre>\n<h2>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 UI-\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432<\/h2>\n<p>\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0431\u044b\u0441\u0442\u0440\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Canvas, TextMeshPro \u0438 RectTransform:<\/p>\n<pre><code class=\"cs\">\/\/\/ &lt;summary&gt; \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f Canvas \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"canvasGameObject\"&gt; \u043e\u0431\u044a\u0435\u043a\u0442, \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 &lt;\/param&gt; \/\/\/ &lt;param name=\"renderMode\"&gt; \u0441\u043f\u043e\u0441\u043e\u0431 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f &lt;\/param&gt; \/\/\/ &lt;param name=\"scaleMode\"&gt; \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430 &lt;\/param&gt; private void ChangeCanvasSettings(GameObject canvasGameObject, RenderMode renderMode, CanvasScaler.ScaleMode scaleMode) {     canvasGameObject.GetComponentInChildren&lt;Canvas&gt;().renderMode = renderMode;      var canvasScaler = canvasGameObject.GetComponentInChildren&lt;CanvasScaler&gt;();     canvasScaler.uiScaleMode = scaleMode;      \/\/ \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f     if (scaleMode == CanvasScaler.ScaleMode.ScaleWithScreenSize)     {         canvasScaler.referenceResolution = new Vector2(720f, 1280f);         canvasScaler.matchWidthOrHeight = 1f;     } }   \/\/\/ &lt;summary&gt; \/\/\/ \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0434\u043b\u044f TextMeshPro \/\/\/ &lt;\/summary&gt; \/\/\/ &lt;param name=\"textMeshPro\"&gt; \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 &lt;\/param&gt; \/\/\/ &lt;param name=\"fontSizeMin\"&gt; \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"fontSizeMax\"&gt; \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u0448\u0440\u0438\u0444\u0442\u0430 &lt;\/param&gt; \/\/\/ &lt;param name=\"textAlignmentOption\"&gt; \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 &lt;\/param&gt; private void ChangeTMPSettings(TextMeshProUGUI textMeshPro, int fontSizeMin, int fontSizeMax, TextAlignmentOptions textAlignmentOption = TextAlignmentOptions.Center) {     \/\/ \u0437\u0430\u043c\u0435\u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e \u0448\u0440\u0438\u0444\u0442\u0430     textMeshPro.font = (TMP_FontAsset)<\/code><\/pre>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-323989","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/323989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=323989"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/323989\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=323989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=323989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=323989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}