{"id":227,"date":"2020-12-15T10:30:11","date_gmt":"2020-12-15T10:30:11","guid":{"rendered":"https:\/\/otus.ru\/journal\/?p=227"},"modified":"2023-10-06T21:17:22","modified_gmt":"2023-10-06T21:17:22","slug":"zombi-shuter-na-dots-v-unity","status":"publish","type":"post","link":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/","title":{"rendered":"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/otus.ru\/lessons\/unity-professional\/?utm_source=oj&amp;utm_medium=affilate&amp;utm_campaign=unitypro\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"970\" height=\"90\" src=\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\" class=\"wp-image-7658\" srcset=\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg 970w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-300x28.jpg 300w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-150x14.jpg 150w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-768x71.jpg 768w\" sizes=\"auto, (max-width: 970px) 100vw, 970px\" \/><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"ImageObject\",\"url\":\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg\",\"width\":\"970\",\"height\":\"90\"}<\/script><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0417\u0430\u043f\u043e\u043b\u044c\u043d\u043e\u0432, \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445 <a href=\"https:\/\/otus.pw\/Eg52\/\">Unity Basic<\/a> \u0438 <a href=\"https:\/\/otus.pw\/0Q20\/\">Unity Pro<\/a> \u0432 <strong>OTUS<\/strong>. \u0418 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043f\u0440\u043e, \u0431\u0435\u0437 \u043f\u0440\u0435\u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f, \u0431\u0443\u0434\u0443\u0449\u0435\u0435 Unity &#8212; \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e DOTS.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0443\u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043a\u043e\u0435 \u044d\u0442\u043e\u0442 DOTS, \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043e\u043d \u0440\u0435\u0448\u0430\u0435\u0442 \u0438 \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041d\u043e \u043d\u0430\u0447\u0430\u0442\u044c, \u0432\u0441\u0435 \u0436\u0435, \u0441\u0442\u043e\u0438\u0442 \u0441 \u0442\u0435\u043e\u0440\u0438\u0438.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">DOTS<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">DOTS (\u201cData Oriented Tech Stack\u201d &#8212; \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0442\u0435\u043a, \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435) &#8212; \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u0433\u0440 \u043d\u0430 \u0434\u0432\u0438\u0436\u043a\u0435 Unity. \u0412\u043f\u0435\u0440\u0432\u044b\u0435 \u043e\u043d \u0431\u044b\u043b \u0430\u043d\u043e\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d \u0432 2017 \u0433\u043e\u0434\u0443, \u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0435\u0449\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 &#8212; \u0432 2016. \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0442\u0435\u043a\u0430 Unity \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f \u0441\u043b\u043e\u0433\u0430\u043d\u043e\u043c \u201cperformance by default\u201d (\u201c\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e\u201d): \u043e\u043d\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0432 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u201c\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443\u201d Unity, \u0433\u0434\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c, \u043a\u0430\u043a\u043e\u0435 API \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0443\u043b\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u0442.\u0434.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, DOTS \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u0422\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Job System (\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0437\u0430\u0434\u0430\u0447) \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 API \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041d\u043e \u0441\u0430\u043c\u044b\u043c \u0432\u0430\u0436\u043d\u044b\u043c \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c DOTS \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 Entity-Component-System (ECS).<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Entity Component System<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u043f\u043e\u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435. \u0414\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u044b, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044e\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u044f \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u044f \u0438\u0445 \u043d\u043e\u0432\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u0434, \u043d\u043e \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u043e\u043d \u0442\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443: \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0443\u044e \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435, \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0435 \u0431\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043a\u043b\u0430\u0441\u0441\u044b (god classes), \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0435 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c\u0438 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438, \u0430 \u0447\u0430\u0441\u0442\u044c &#8212; \u0434\u0440\u0443\u0433\u0438\u043c\u0438.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u044b\u043b\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0430 \u043a\u043e\u043c\u043f\u043e\u0437\u0438\u0446\u0438\u044f. \u0412 \u0433\u0435\u0439\u043c\u0434\u0435\u0432\u0435 \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0447\u0430\u0441\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 Entity-Component (EC) \u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u043d \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u201c\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u201d Unity. \u0412 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0435 EC \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 (entities, \u0432 Unity \u043e\u043d\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u043a\u043b\u0430\u0441\u0441\u043e\u043c GameObject) \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0434\u043b\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u0410 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432 \u0441\u0435\u0431\u0435 \u043a\u0430\u043a \u043a\u043e\u0434, \u0442\u0430\u043a \u0438 \u0434\u0430\u043d\u043d\u044b\u0435. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u043e\u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043a \u0438\u0437 \u043a\u0443\u0431\u0438\u043a\u043e\u0432 \u041b\u0435\u0433\u043e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0430\u0442\u0442\u0435\u0440\u043d Entity-Component-System \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u044d\u0442\u0443 \u043f\u0430\u0440\u0430\u0434\u0438\u0433\u043c\u0443 \u0435\u0449\u0435 \u0434\u0430\u043b\u044c\u0448\u0435. \u041e\u043d \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0430\u043d\u043d\u044b\u0435, \u0430 \u043a\u043e\u0434 \u0432\u044b\u043d\u0435\u0441\u0442\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0433\u0440\u0443\u043f\u043f\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c. \u0410 \u0435\u0449\u0435, \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e. \u042d\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u0435\u0448\u0430 \u043d\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u0445 \u0438, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041d\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0442\u0435\u043e\u0440\u0438\u0438, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435!<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u041f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421\u0440\u0430\u0437\u0443 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u0442\u044c, \u0447\u0442\u043e \u0445\u043e\u0442\u044f DOTS \u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0443\u0436\u0435 \u043c\u043d\u043e\u0433\u043e \u043b\u0435\u0442, \u043e\u043d \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 preview \u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u044b\u0440\u043e\u0439. \u041c\u043d\u043e\u0433\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0435\u0449\u0435 \u043d\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0438 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u044b\u0435 \u0431\u0430\u0433\u0438. \u041f\u043e \u044d\u0442\u043e\u0439 \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u0432 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434: \u0447\u0430\u0441\u0442\u044c \u043a\u043e\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 DOTS, \u0430 \u0447\u0430\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 \u0441\u0442\u0430\u0440\u044b\u0445 \u0434\u043e\u0431\u0440\u044b\u0445 GameObject\u2019\u0430\u0445.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u042d\u0442\u0430 \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u0430 \u043d\u0430 Unity 2020.1.16f1. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e, \u043d\u043e \u0442\u043e\u0433\u0434\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. DOTS \u043e\u0447\u0435\u043d\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0443\u0441\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0448\u0430\u0431\u043b\u043e\u043d \u201c3D\u201d \u0432 Unity Hub). \u0418\u0442\u0430\u043a, \u043f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c DOTS \u0432 \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442. \u0414\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a \u0438\u0445 \u043d\u0435 \u043d\u0430\u0439\u0442\u0438. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0437\u0430\u0434 \u0430\u0432\u0442\u043e\u0440\u044b Unity \u0443\u0431\u0440\u0430\u043b\u0438 \u0432\u0441\u0435 preview-\u043f\u0430\u043a\u0435\u0442\u044b \u0438\u0437 \u043e\u0431\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u0436\u0430\u0442\u044c \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u043b\u0435\u0432\u043e\u043c \u0443\u0433\u043b\u0443 \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u0433\u043e \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u201c+\u201d \u0438 \u0432 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u201cAdd package from git URL&#8230;\u201d:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/AOsg49HW2lsdFWZEZb-tUCFTFZ6iVw3j3U2l7dH_15E3kfG2OzX_VezYy7wm9jy-hdet84ndLAOOKEWdhaKP9XJ1fOVfuK8K3gY-OV3BPg7qDrK3ZCd7lk2i6CM3cES1VfA4sQK7\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>com.unity.entities<\/code> &#8212; \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430 Entity-Component-System \u0432 DOTS.&nbsp;<\/li>\n\n\n\n<li><code>com.unity.physics<\/code> &#8212; \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a \u0434\u043b\u044f DOTS.<\/li>\n\n\n\n<li><code>com.unity.rendering.hybrid<\/code> &#8212; \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0435\u0440 \u0434\u043b\u044f DOTS, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u043e\u043b\u044c \u201c\u043c\u043e\u0441\u0442\u0430\u201d \u043c\u0435\u0436\u0434\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439 DOTS \u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043e\u0439 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 Unity.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u044d\u0442\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 DOTS. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043a\u0440\u0430\u0442\u043a\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0435\u0449\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u0441\u044f \u0432 \u043d\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>com.unity.burst<\/code> &#8212; \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0434\u043b\u044f C#.<\/li>\n\n\n\n<li><code>com.unity.collections<\/code> &#8212; \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 (\u0441\u043f\u0438\u0441\u043e\u043a, \u043e\u0447\u0435\u0440\u0435\u0434\u044c, \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0438 \u0442.\u0434.), \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0430\u043c\u044f\u0442\u0438 \u0434\u0432\u0438\u0436\u043a\u0430 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430 \u043c\u0443\u0441\u043e\u0440\u0430.<\/li>\n\n\n\n<li><code>com.unity.jobs<\/code> &#8212; \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f DOTS. \u041f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u0434 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u201c\u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0433\u043e\u043d\u043a\u0438\u201d (race conditions).<\/li>\n\n\n\n<li><code>com.unity.mathematics<\/code> &#8212; \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u043e\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u0432\u0437\u0430\u043c\u0435\u043d \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 Vector2, Vector3 \u0438 \u0442.\u0434.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u0440\u043e\u043c\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 DOTS \u043d\u0430\u043c \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0430\u043a\u0435\u0442 Cinemachine. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u043c\u0435\u0440\u0430\u043c\u0438 \u0432 Unity. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u0435\u043c \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043d\u0435 \u0431\u0443\u0434\u0443, \u043d\u043e \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u043e \u043d\u0435\u0433\u043e \u0435\u0449\u0435 \u043d\u0435 \u0441\u043b\u044b\u0448\u0430\u043b\u0438. \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/sGLoEQbdaUFZUVVnmNfan36UJq2uDg1hatRDH6bdOU4ZD1xfYDL2ystMZRN12_89aGpRQBJ6szDz8HCe-_w3L9sQ3UfGFWwhRzSRahSLps9HVmRlYA1p3ITtQStj6mYBeVnFSeuE\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u041d\u0443 \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u0430\u0440\u0443 \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0430\u0441\u0441\u0435\u0442\u043e\u0432. \u042f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u043f\u0430\u043a\u0438:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/assetstore.unity.com\/packages\/3d\/characters\/toony-tiny-people-demo-113188\">https:\/\/assetstore.unity.com\/packages\/3d\/characters\/toony-tiny-people-demo-113188<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/assetstore.unity.com\/packages\/3d\/environments\/landscapes\/low-poly-simple-nature-pack-162153\">https:\/\/assetstore.unity.com\/packages\/3d\/environments\/landscapes\/low-poly-simple-nature-pack-162153<\/a><\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">\u041f\u043e\u0437\u043d\u0430\u0435\u043c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432 \u0441\u0446\u0435\u043d\u0435 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u0433\u0440\u0430\u0442\u044c \u0440\u043e\u043b\u044c \u0417\u0435\u043c\u043b\u0438. \u042f \u0434\u0435\u043b\u0430\u044e \u044d\u0442\u043e \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e: \u0449\u0435\u043b\u043a\u0430\u044e \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u0432 \u043e\u043a\u043d\u0435 Hierarchy \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u044e 3D&nbsp;Object\u21e8Plane:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/LBMaKYvrsSLZ7a5u6VqjYOuTDdTnyCQAKt95VrdoWvwnrqUTd2tWIkfTLiznn6y1a5YCw4pAx7dajhAhs9Z4yi-axDNV4YqTqwG00qdvpep9w2iK1U9kYgP6Fy8eDYa1OIQZ30F2\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u041d\u0430\u0437\u043d\u0430\u0447\u0443 \u0435\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0437\u0435\u043b\u0435\u043d\u043e\u0433\u043e \u0446\u0432\u0435\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0445\u043e\u0436\u0430 \u043d\u0430 \u0442\u0440\u0430\u0432\u0443:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/QLTXhAXR6bdjV_D_waJutW30K-7LWSxzRaWrKDJLpUlQVVIdvf-spLVWKtZ0xe3mBsEPEnkwBKP0ZRpsdg19a5IU_iKO8qVzSAWKBQcHA2q0F1OMEZLCazAavNa_IWdYPF0FMrFX\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u0432 \u0441\u0446\u0435\u043d\u0435 \u0435\u0441\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0439 GameObject, \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0449\u0438\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c. \u0422\u0430\u043a \u043f\u0440\u0438\u0447\u0435\u043c \u0436\u0435 \u0437\u0434\u0435\u0441\u044c DOTS? \u041f\u043e\u043a\u0430 \u0447\u0442\u043e \u043d\u0435 \u043f\u0440\u0438\u0447\u0435\u043c. \u041d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u0441\u0446\u0435\u043d\u0443 \u0432 Unity \u043c\u044b \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0443 \u043d\u0430\u0441 \u043d\u0430 \u0432\u043e\u043e\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u0435\u0441\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442: ConvertToEntity. \u0414\u043e\u0431\u0430\u0432\u0438\u0432 \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 Plane, \u043c\u044b \u0443\u043a\u0430\u0436\u0435\u043c Unity \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0438\u0433\u0440\u044b \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 ECS:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/ZI_YYyXDOkR-rGAg_hdwH45DirZBzeOPgz68tGpNVx9CUECVR2v5Vc-9-SwRAkleqkrMj3R6DzQgYSgaIlE5ddfzTAhzwvDJ7daVfX2eOJvRm3h-T4vRqqOgqbH0O7gO2bIJcFaT\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0434\u0432\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f: Convert and Destroy (\u0432\u044b\u0431\u0440\u0430\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e) \u0438 Convert And Inject Game Object. \u0412\u044b\u0431\u043e\u0440 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0430 \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f. \u041c\u044b \u043f\u043e\u043a\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u044d\u0442\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043a\u0430\u043a \u0435\u0441\u0442\u044c, \u0442.\u0435. \u0431\u0443\u0434\u0435\u043c \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0438\u0433\u0440\u0443 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/azufftsj5VAUmbOqNXuft_EeHKzbXbNyZXg2pQRTsDEKDfnhebfzxhNOYiwh0et1MAq9kCdUcqhTfk_uvKZJfeMf9nqnR3PC89Rcp5QWNQsvmIHZxCO6aJT-87bp1tjuYWjEK-Rf\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0418\u0442\u0430\u043a, \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 Plane \u043f\u0440\u043e\u043f\u0430\u043b \u0438\u0437 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438, \u043d\u043e \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c \u0432\u0441\u0435 \u0436\u0435 \u0440\u0438\u0441\u0443\u0435\u0442\u0441\u044f \u0432 \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u043e\u043a\u043d\u0435. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043d\u0430 \u0441\u0442\u0430\u043b\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e. \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u044d\u0442\u043e\u043c?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/otus.ru\/lessons\/unity-professional\/?utm_source=oj&amp;utm_medium=affilate&amp;utm_campaign=unitypro\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"970\" height=\"90\" src=\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\" class=\"wp-image-7658\" srcset=\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg 970w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-300x28.jpg 300w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-150x14.jpg 150w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-768x71.jpg 768w\" sizes=\"auto, (max-width: 970px) 100vw, 970px\" \/><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"ImageObject\",\"url\":\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg\",\"width\":\"970\",\"height\":\"90\"}<\/script><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unity \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043c\u0435\u043d\u044e Window\u21e8Analysis\u21e8Entity Debugger:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/To4FFU_jp8yLHnheoH51SsDAUwSZ88gp_3gUXNo-kvm1xLm8mDvfsSPXPGQ25nmtnIlz-07rRQlyMzhamO8Iicey6K8GFTUT9mU17Et7dWAfk8qvalFvphluDSu0qxpe7MT97Q53\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412 \u043b\u0435\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u044d\u0442\u043e\u0433\u043e \u043e\u043a\u043d\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b \u0432\u0441\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043d\u0438\u0445. \u041c\u044b \u043f\u043e\u043a\u0430 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043d\u0438 \u043e\u0434\u043d\u043e\u0439 \u0441\u0432\u043e\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0435, \u0447\u0442\u043e \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0437\u0434\u0435\u0441\u044c &#8212; \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Unity. \u041d\u0435 \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043d\u0430 \u043d\u0438\u0445 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412\u044b\u0431\u0440\u0430\u0432 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a\u0438\u043c\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043e\u043d\u0430 \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442. \u0410 \u0435\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u043d \u043f\u0443\u043d\u043a\u0442 All Entities, \u043a\u0430\u043a \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435, \u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0432\u0441\u0435\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439. \u0412 \u043c\u043e\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0445 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0435: WorldTime (\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0430\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c Unity, \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044e\u0449\u0430\u044f \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f) \u0438 Plane &#8212; \u043d\u0430\u0448\u0430 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u044c!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0415\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c Plane, \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440 \u043f\u043e\u043a\u0430\u0436\u0435\u0442 \u043d\u0430\u043c, \u043a\u0430\u043a\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043e\u043d\u0430 \u0432 \u0441\u0435\u0431\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/Wtf27xMr4WhWpfLKcybWlMUAfG26xa7IAk0__6JxDfI2NKlVfhGVu7lOFHLxJhclM6xHNuIyrDukDcviHRVP5-8g6WsXESa23_oCNu-GT2DNSvi03soFTzI8NU0yzhYfoyGSQBNe\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 Unity \u0437\u0434\u0435\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0434\u0440\u0443\u0433\u0438\u0435, \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b. \u0422\u0430\u043a, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 Transform \u0431\u044b\u043b \u0437\u0430\u043c\u0435\u043d\u0435\u043d \u043d\u0430 \u0442\u0440\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430: LocalToWorld, Rotation \u0438 Translation. \u0412\u043c\u0435\u0441\u0442\u043e MeshFilter \u0438 MeshRenderer \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 RenderMesh. \u0410 \u0434\u043b\u044f \u0444\u0438\u0437\u0438\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0441\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 PhysicsCollider.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u042f \u043f\u043e\u043a\u0430\u0436\u0443 \u043a\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435. \u041f\u043e\u043a\u0430 \u0436\u0435 \u0434\u043b\u044f \u043d\u0430\u0441 \u0432\u0430\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0421\u0443\u0449\u043d\u043e\u0441\u0442\u0438 DOTS \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0432 \u0441\u0432\u043e\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043c\u0438\u0440\u0435 \u0438 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0442 \u0441 \u0438\u0433\u0440\u043e\u0432\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0414\u043b\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 Unity \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u0435 \u0438\u043c \u043f\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b DOTS (\u0437\u0434\u0435\u0441\u044c \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0435\u0449\u0435 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043d\u0435 \u043e\u0431\u043b\u0430\u0434\u0430\u044e\u0442 \u0432\u0441\u0435\u0439 \u043f\u043e\u043b\u043d\u043e\u0442\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432)<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u044b \u0432 \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440\u0435 \u043d\u0435\u043b\u044c\u0437\u044f. \u0427\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e-\u0442\u0430\u043a\u0438 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435. \u041d\u0430\u0434\u0435\u044e\u0441\u044c \u044d\u0442\u043e \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u044f\u0442.<\/li>\n<\/ul>\n\n\n\n<h1 class=\"wp-block-heading\">\u0427\u0442\u043e \u0437\u0430 \u0438\u0433\u0440\u0430 \u0431\u0435\u0437 \u0438\u0433\u0440\u043e\u043a\u0430?<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430\u0448 \u0438\u0433\u0440\u043e\u043a. \u042f \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043d\u043e\u0432\u044b\u0439, \u043f\u0443\u0441\u0442\u043e\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438 \u043d\u0430\u0437\u043e\u0432\u0443 \u0435\u0433\u043e Player. \u0421\u0440\u0430\u0437\u0443 \u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u0442\u0443\u0434\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 ConvertToEntity, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u043f\u0440\u043e \u043d\u0435\u0433\u043e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430, \u044f \u0441\u043e\u0437\u0434\u0430\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439, \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0434\u043b\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0432\u0438\u0434\u0430 \u0438\u0433\u0440\u043e\u043a\u0430 (\u0442.\u0435. \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 3d-\u043c\u043e\u0434\u0435\u043b\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430). \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u0443\u044e \u043a\u0430\u043f\u0441\u0443\u043b\u0443 (\u0449\u0435\u043b\u0447\u043e\u043a \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438, 3D Object\u21e8Capsule). \u0427\u0442\u043e\u0431\u044b \u043e\u043d\u0430 \u043d\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0432\u0430\u043b\u0430\u0441\u044c \u0432 \u0437\u0435\u043c\u043b\u044e, \u0435\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c Position.Y \u0440\u0430\u0432\u043d\u044b\u043c 1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u0430\u043f\u0441\u0443\u043b\u044b, Unity \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0438 \u043a\u043e\u043b\u043b\u0430\u0439\u0434\u0435\u0440. \u041d\u043e \u0447\u0442\u043e\u0431\u044b \u0444\u0438\u0437\u0438\u043a\u0430 \u043c\u043e\u0433\u043b\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430\u0448\u0438\u043c \u0438\u0433\u0440\u043e\u0432\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c, \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442. \u0415\u0433\u043e \u044f \u0431\u0443\u0434\u0443 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 (Player) \u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0433\u043e RigidBody \u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 DOTS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f PhysicsBody:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/U6DDCnKUV87rL5XeaOy4lvFkbMrTqYHg9cdhsvdDrPeXlwqYdEDckV32eV7o4vhqrDFrRQz7l7Cmko4dti2KCQuPitGV_OU6RbLQLAIYruWR056eIUxoxYqr_1zZD60sVPpx9hXz\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043c\u0430\u0441\u0441\u0443 (\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 Mass)&nbsp; \u0441\u0442\u043e\u0438\u0442 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c: \u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044e 70. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u044f \u0441\u0431\u0440\u043e\u0448\u0443 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 Angular Damping \u0432 0. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0443 \u043d\u0430\u0441 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u043a\u043e\u0434\u0430, \u043c\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u0444\u0438\u0437\u0438\u043a\u0430 \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u043b\u0430 \u044d\u0442\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435. \u041d\u0443 \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u044f \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044e Gravity Factor \u0440\u0430\u0432\u043d\u044b\u043c 1.5. \u0412 \u043c\u043e\u0438\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u0445, \u0435\u0441\u043b\u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0440\u0430\u0432\u043d\u044b\u043c 1, \u0444\u0438\u0437\u0438\u043a\u0430 \u0432\u043e\u0441\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430 \u041b\u0443\u043d\u0435.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436-\u043a\u0430\u043f\u0441\u0443\u043b\u0430. \u041d\u043e \u043a\u0430\u043a \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f? \u0415\u0441\u043b\u0438 \u043f\u043e\u043c\u043d\u0438\u0442\u0435, \u044f \u0433\u043e\u0432\u043e\u0440\u0438\u043b, \u0447\u0442\u043e \u0432 ECS \u043b\u044e\u0431\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445. \u041d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0438\u0433\u0440\u043e\u043a\u0430. \u0410 \u0447\u0442\u043e\u0431\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0437\u043d\u0430\u043b\u0430, \u043a\u0430\u043a\u0438\u043c\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u043f\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u043c \u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u043e\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 (<code>Scripts\/Components\/PlayerComponent.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using Unity.Entities;\n \n&#91;GenerateAuthoringComponent]\npublic struct PlayerComponent : IComponentData\n{\n    public float movementSpeed;\n    public float rotationSpeed;\n}\n<\/code><\/pre>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\"><\/div><\/div>\n<\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043e\u043d \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u0422\u0430\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Unity.Entities \u0432\u043c\u0435\u0441\u0442\u043e UnityEngine. \u0412\u0437\u0430\u043c\u0435\u043d \u043a\u043b\u0430\u0441\u0441\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430. \u0420\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 MonoBehaviour \u0431\u044b\u043b \u0437\u0430\u043c\u0435\u043d\u0435\u043d \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c IComponentData. \u0410 \u0435\u0449\u0435 \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u043d\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412\u0430\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 GenerateAuthoringComponent. \u0415\u0441\u043b\u0438 \u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c, \u0442\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u0442\u0430\u043a\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c. \u041d\u043e \u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 Unity. \u0418\u043c\u0435\u043d\u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u044d\u0442\u043e\u043c\u0443 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0443 \u043c\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043c\u043e\u0436\u0435\u043c \u0432 \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u0430\u0448 \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 Player:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/dygPeOq-g07mYRmYRI5ywDYL7DI_TS8mQewepgDMIR1NxtN9yxHhdzxAz6euaF0dlHguDQql0GjSvPYroAbjN_gtYw8kieHnPbADRzC1CkeSe4IYMfBjap_YlosFg8zx6k9iHNuV\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0418 \u0434\u0430\u0436\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b movementSpeed \u0438 rotationSpeed \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f! \u0412\u0441\u0435, \u043a\u0430\u043a \u043c\u044b \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438. \u041d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u044f \u0443\u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u0442\u0443\u0434\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (20 \u0438 500).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 (<code>Scripts\/Systems\/PlayerMovementSystem.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using UnityEngine;\nusing Unity.Entities;\nusing Unity.Mathematics;\nusing Unity.Physics;\nusing Unity.Transforms;\n \npublic class PlayerMovementSystem : ComponentSystem\n{\n    protected override void OnUpdate()\n    {\n        float deltaTime = Time.DeltaTime;\n        float2 input = new float2(Input.GetAxis(\"Horizontal\"), Input.GetAxis(\"Vertical\"));\n        Entities.ForEach((ref PlayerComponent player, ref LocalToWorld transform, ref PhysicsVelocity velocity) =&gt; {\n                float3 dir = transform.Forward * input.y * player.movementSpeed * deltaTime;\n                velocity.Linear += new float3(dir.x, 0.0f, dir.z);\n                velocity.Angular = new float3(0.0f, input.x * player.rotationSpeed * deltaTime, 0.0f);\n            });\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0418\u0442\u0430\u043a, \u043d\u0430\u0448\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 <code>ComponentSystem<\/code>. \u042d\u0442\u043e \u043d\u0435 \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0439 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u043c\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435. \u041f\u043e\u043a\u0430 \u0432\u0430\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e, \u043d\u0430\u0441\u043b\u0435\u0434\u0443\u044f\u0441\u044c \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430, \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u0435 \u0438 \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 Job System \u043f\u043e \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044e. \u041d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044f \u0437\u0434\u0435\u0441\u044c \u043e\u0431\u0440\u0430\u0449\u0430\u044e\u0441\u044c \u043a API Unity (<code>Time.DeltaTime<\/code> \u0438 \u043a\u043b\u0430\u0441\u0441 <code>Input<\/code>), \u043c\u043d\u0435 \u044d\u0442\u043e \u0438 \u043d\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u043e\u0434 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u0435 <code>OnUpdate<\/code>. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u0430\u0434\u0440, \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u043a Update \u0432 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u044b\u0445 \u043d\u0430\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <code>MonoBehaviour<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 <code>Entities.ForEach<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441 \u0432\u0430\u043c\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u043b\u043e\u0448\u0430\u0434\u043a\u043e\u0439, \u044f \u043c\u043e\u0433\u0443 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438, \u0438\u043c\u0435\u044e\u0449\u0438\u0435 (\u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435) \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b <code>PlayerComponent<\/code>, <code>LocalToWorld<\/code> \u0438 <code>PhysicsVelocity<\/code>. \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u044d\u0442\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0443 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u0442, \u043e\u043d\u0430 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c, \u0441\u043f\u0438\u0441\u043e\u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 \u043f\u0435\u0440\u0435\u0447\u043d\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043b\u044f\u043c\u0431\u0434\u044b, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e. \u0410\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 <code>ref<\/code>. \u042d\u0442\u043e \u0441\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 \u0438 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u044b \u0438\u0445 \u043a\u043e\u043f\u0438\u0438, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044e \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u0430.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0438\u0433\u0440\u0443:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/GYzQIUgcoGpTtIRsRjDp77Ug6YKw2kTTgdJYUMNTlDNibBYdMnWZcwYZekcZOpspAt9NyCWc_a9f0IIR76xG8fU3rmIdsEmY6pMxwiU27kfZ3D7ingyEMH2WeuAQ_jrVEcSilgP3\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442! \u041f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c! \u041d\u043e \u043f\u043e\u0433\u043e\u0434\u0438\u0442\u0435, \u0447\u0442\u043e \u0436\u0435 \u044d\u0442\u043e? \u041f\u043e\u0447\u0435\u043c\u0443 \u043a\u0430\u043f\u0441\u0443\u043b\u0430 \u0437\u0430\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0444\u0438\u0437\u0438\u043a\u0435 Unity \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 Freeze Rotation \u0443 Rigidbody, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u0430\u0434\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430. \u0412 \u0444\u0438\u0437\u0438\u043a\u0435 DOTS \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 (<code>Scripts\/Components\/FreezeVerticalRotationComponent.cs<\/code>) \u043c\u043d\u0435 \u0437\u0434\u0435\u0441\u044c \u043d\u0443\u0436\u0435\u043d \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a\u0430\u043a \u043c\u0430\u0440\u043a\u0435\u0440, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0435, \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u044f \u0432 \u043d\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using Unity.Entities;\n \n&#91;GenerateAuthoringComponent]\npublic struct FreezeVerticalRotationComponent : IComponentData\n{\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0410 \u0432\u043e\u0442 \u043a\u043e\u0434 \u0441\u0438\u0441\u0442\u0435\u043c\u044b (<code>Scripts\/Systems\/FreezeVerticalRotationSystem.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using UnityEngine;\nusing Unity.Entities;\nusing Unity.Mathematics;\nusing Unity.Jobs;\nusing Unity.Physics;\n \npublic class FreezeVerticalRotationSystem : JobComponentSystem\n{\n    protected override JobHandle OnUpdate(JobHandle inputDeps)\n    {\n        JobHandle job = Entities.ForEach((ref FreezeVerticalRotationComponent tag, ref PhysicsMass mass) =&gt; {\n                mass.InverseInertia.xz = new float2(0.0f);\n            }).Schedule(inputDeps);\n \n        return job;\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u044d\u0442\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c API \u0434\u0432\u0438\u0436\u043a\u0430, \u044f \u043c\u043e\u0433\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0435 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0439. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u043a\u043b\u0430\u0441\u0441\u0430 <code>ComponentSystem <\/code>\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u043b\u0430\u0441\u0441 <code>JobComponentSystem<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0422\u0435\u043f\u0435\u0440\u044c \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0430\u0441\u044c \u0438 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0430 \u043c\u0435\u0442\u043e\u0434\u0430 <code>OnUpdate<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u043d \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 <code>JobHandle<\/code> \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 <code>JobHandle<\/code>. \u042d\u0442\u0438 \u0445\u0435\u043d\u0434\u043b\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438. \u041e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u0442\u0438 \u0445\u0435\u043d\u0434\u043b\u044b, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0433\u043e\u043d\u043a\u0438 (race condition), \u043a\u043e\u0433\u0434\u0430 \u0434\u0432\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u044e\u0442\u0441\u044f \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043e\u0434\u043d\u043e\u0439 \u0438 \u0442\u043e\u0439 \u0436\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0417\u0434\u0435\u0441\u044c \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <code>Entities.ForEach<\/code>, \u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434 Schedule, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430 \u043d\u0430\u0448\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u043e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u0430\u0445.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>FreezeVerticalRotationComponent <\/code>\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 <code>Player <\/code>\u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0438\u0433\u0440\u0443:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/nagvHLtqwA8cv_GQRH0z0f28IxvC8AcfeiEm5xS5Bca3XuyC3thXsDR_ftk656LzQ8jxYfQIzo0z-knXxlut5G5XYFkRB0YXUUAip2MHzXDBMHuBmTPF8iRtbsQsI9dgKBwteWf5\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0418 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u043d\u0435 \u0437\u0430\u0432\u0430\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u0418\u043b\u043b\u044e\u0437\u0438\u044f \u0436\u0438\u0437\u043d\u0438<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0435\u0440\u0441\u043e\u043d\u0430\u0436-\u043a\u0430\u043f\u0441\u0443\u043b\u0430 &#8212; \u044d\u0442\u043e, \u043d\u0435\u0441\u043e\u043c\u043d\u0435\u043d\u043d\u043e, \u0432\u0435\u0441\u0435\u043b\u043e. \u041d\u043e \u0432\u0435\u0441\u0435\u043b\u0435\u0435 \u0431\u044b\u043b\u043e \u0431\u044b, \u0435\u0441\u043b\u0438 \u0431\u044b \u043d\u0430\u0448 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u0433\u0435\u0440\u043e\u0439 \u0431\u044b\u043b \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430, \u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 &#8212; \u0431\u044b\u043b \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438 \u043d\u0430 DOTS \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u043d\u043d\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u044f \u0435\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0443. \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0441\u044c \u0441\u0442\u0430\u0440\u044b\u043c \u0434\u043e\u0431\u0440\u044b\u043c Animator Controller.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043f\u0435\u0440\u0435\u0442\u0430\u0449\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 Player \u043f\u0440\u0435\u0444\u0430\u0431 <code>TT_demo\/prefabs\/TT_demo_police<\/code> \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430 <code>ToonyTinyPeopleDemo <\/code>\u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u0443 \u0435\u043c\u0443 \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440. \u042f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 Animator Controller, \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u0437\u0434\u0435\u0441\u044c \u043b\u0438\u0448\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/26PAJfWMgGOzh9c-I4SKDYn6setfY1u0IXrRRTy4DpxCu2wxsCv_kdGLCNXbhE2CUrB6aXQ-fFMz8Gi-xGJvPfUOEY1n7hNQFQCJNcHN6fKK54y1aM5ub928etq0DOFwqjCBLWyF\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0422\u0430\u043a\u0436\u0435 \u043a \u043e\u0431\u044a\u0435\u043a\u0442\u0443 <code>TT_demo_police<\/code> \u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>ConvertToEntity<\/code>, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 Conversion Mode \u0432 Convert and Inject Game Object. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0438\u0433\u0440\u044b \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 3d-\u043c\u043e\u0434\u0435\u043b\u0438 \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0430 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c, \u043d\u043e, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u0438\u0433\u0440\u043e\u043a\u0430 \u0438 \u043a\u0430\u043f\u0441\u0443\u043b\u044b, \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0438 <code>GameObject<\/code>. \u041e\u043d, \u043f\u0440\u0430\u0432\u0434\u0430,\u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u0440\u043d\u0435 (\u0442\u0430\u043a \u043a\u0430\u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u043b\u0441\u044f \u0432 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c \u0431\u0435\u0437 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f <code>GameObject<\/code>):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/tqN6J5E-Qpe0pi6wQtPjLGuXWqRIIsbAJPRuA2HdoLGlNROVGLeQzP39byV6t6yNSi-FOM_umkBGAyW6_L89UlIOD_J9klvTutyrgQsy-RKpCnOI7MlQVvNM0tvEybLqa0COqqwk\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0418 \u0442\u0443\u0442 \u0435\u0441\u0442\u044c \u043e\u0434\u0438\u043d \u043d\u044e\u0430\u043d\u0441. \u0415\u0441\u043b\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u0433\u0440\u0443, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 3d-\u043c\u043e\u0434\u0435\u043b\u044c\u044e \u0431\u0443\u0434\u0435\u0442 \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043c\u0435\u0441\u0442\u0435:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/ZPKHK5yBPcCm7DiaP-a_tZFBcGBezWYqIU7_9FqrEdbF5wfFCbdcW2RHaHVfUnCPoaC8eJOlSxeLaeNj9IhtYvS-PH3ePdNKSLDsoZCvaWmfZRKZ5sYVCKxwE-9UUvc7V717pfYF\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c, \u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 (<code>Scripts\/Components\/CopyTransformComponent.cs<\/code>) \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0440\u043e\u043b\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u043c\u0430\u0440\u043a\u0435\u0440\u0430:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using Unity.Entities;\n \n&#91;GenerateAuthoringComponent]\npublic struct CopyTransformComponent : IComponentData\n{\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0410 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 (<code>Scripts\/Systems\/CopyTransformSystem.cs<\/code>) \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 Transform \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using UnityEngine;\nusing Unity.Transforms;\nusing Unity.Entities;\n \npublic class CopyTransformSystem : ComponentSystem\n{\n    protected override void OnUpdate()\n    {\n        Entities.ForEach((Entity entity, ref CopyTransformComponent tag, ref LocalToWorld localToWorld) => {\n                var transform = EntityManager.GetComponentObject&lt;Transform>(entity);\n                transform.position = localToWorld.Position;\n                transform.rotation = localToWorld.Rotation;\n            });\n    }\n}\n\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412\u0430\u0436\u043d\u044b\u043c \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u0437\u0434\u0435\u0441\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 <code>Entity entity<\/code> \u0432 \u043b\u044f\u043c\u0431\u0434\u0443. \u042d\u0442\u043e\u0442 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0431\u0435\u0437 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430 <code>ref<\/code>, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043e\u043d \u043f\u043e \u0441\u0443\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438\u0448\u044c \u0447\u0438\u0441\u043b\u043e\u0432\u044b\u043c \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u043e\u043c \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0438 \u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u043c\u0435\u043d\u044f\u0442\u044c. \u041d\u043e \u0437\u0430\u0442\u043e \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e \u0441 \u043a\u043b\u0430\u0441\u0441\u043e\u043c <code>EntityManager<\/code> \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0438, \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>Transform<\/code> \u0443 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0441 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 (\u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0443 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>ConvertToEntity<\/code> \u043f\u0440\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0431\u044b\u043b \u0432\u044b\u0431\u0440\u0430\u043d \u0440\u0435\u0436\u0438\u043c <code>Convert And Inject Game Object<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/otus.ru\/lessons\/unity-professional\/?utm_source=oj&amp;utm_medium=affilate&amp;utm_campaign=unitypro\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"970\" height=\"90\" src=\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\" class=\"wp-image-7658\" srcset=\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg 970w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-300x28.jpg 300w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-150x14.jpg 150w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-768x71.jpg 768w\" sizes=\"auto, (max-width: 970px) 100vw, 970px\" \/><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"ImageObject\",\"url\":\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg\",\"width\":\"970\",\"height\":\"90\"}<\/script><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0422\u0435\u043f\u0435\u0440\u044c \u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>CopyTransformComponent<\/code> \u043a \u0438\u0433\u0440\u043e\u0432\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443 <code>TT_demo_police<\/code>. \u0418\u0433\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 <code>Capsule<\/code> \u044f \u043e\u0441\u0442\u0430\u0432\u043b\u044e (\u0442\u0430\u043a \u043a\u0430\u043a \u0432 \u043d\u0435\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043a\u043e\u043b\u043b\u0430\u0439\u0434\u0435\u0440), \u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0443 \u0443 \u043d\u0435\u0433\u043e <code>MeshRenderer<\/code>, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u043f\u0441\u0443\u043b\u0430 \u043d\u0435 \u0440\u0438\u0441\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u0438\u0433\u0440\u0443:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/1IXFxBaEUShp5Nquoelnomlksi49JMCVZzwrzRJNUKZocWYy7w5sFJDoTyWd2TzZYVLWzZlpaJilUg1X9SIF0GvTyx0tdenXpBjvSz2wdMIxtNB99uAvwKnfQSOIVr7ISBVXeD0B\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0418 \u0434\u0430, \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0448 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436 \u0434\u0432\u0438\u0433\u0430\u0435\u0442\u0441\u044f.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c 3d-\u043c\u043e\u0434\u0435\u043b\u044c\u043a\u0435 \u0438\u0433\u0440\u043e\u043a\u0430 \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e. \u041a\u0430\u043a \u0432\u044b, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0443\u0436\u0435 \u0434\u043e\u0433\u0430\u0434\u0430\u043b\u0438\u0441\u044c, \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>N.B.<\/em> \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u0438\u0433\u0440\u043e\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0435\u0439 \u043f\u0430\u0442\u0442\u0435\u0440\u043d ECS, \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0438\u0441\u0442\u0435\u043c \u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u0438 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u044d\u0442\u043e \u043b\u0438\u0448\u043d\u044f\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u043c EC. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u044d\u0442\u043e \u043d\u0435 \u0442\u0430\u043a. \u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 ECS \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u201c\u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u0430\u0441\u0441\u0430\u201d \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u0435\u0440\u0435 \u043c\u044b \u044d\u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c \u0438 \u0432 \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0432\u0440\u0430\u0433\u043e\u0432.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 (<code>Scripts\/Components\/AnimatedCharacterComponent.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using Unity.Entities;\nusing UnityEngine;\n \n&#91;GenerateAuthoringComponent]\npublic struct AnimatedCharacterComponent : IComponentData\n{\n    public Entity animatorEntity;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421\u0438\u0441\u0442\u0435\u043c\u0430 (<code>Scripts\/Systems\/AnimatedCharacterSystem.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using UnityEngine;\nusing Unity.Entities;\nusing Unity.Mathematics;\nusing Unity.Physics;\n \npublic class AnimatedCharacterSystem : ComponentSystem\n{\n    protected override void OnUpdate()\n    {\n        Entities.ForEach((Entity entity, ref AnimatedCharacterComponent character, ref PhysicsVelocity velocity) => {\n                var animator = EntityManager.GetComponentObject&lt;Animator>(character.animatorEntity);\n                animator.SetFloat(\"speed\", math.length(velocity.Linear));\n            });\n    }\n}\n\n\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u041d\u0438\u0447\u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0435\u0442. \u0421\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>AnimatedCharacterComponent<\/code> \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0443\u044e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c (<code>Player<\/code>) &#8212; \u0435\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438\u0437 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 <code>PhysicsVelocity<\/code> \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0434\u0432\u0438\u0436\u043a\u0430. \u0410 \u0432\u043e\u0442 \u0430\u043d\u0438\u043c\u0430\u0442\u043e\u0440 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d \u043a \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 (<code>TT_demo_police<\/code>). \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u0438\u0437 \u043e\u0434\u043d\u043e\u0439 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u043a \u0434\u0440\u0443\u0433\u043e\u0439, \u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0442\u0438\u043f\u0430 <code>Entity<\/code> \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 <code>AnimatedCharacterComponent<\/code>. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0443 <code>ConvertToEntity<\/code>, \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u0441\u0446\u0435\u043d\u044b \u044f \u0441\u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442, \u0430 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0438\u0433\u0440\u044b \u043e\u043d \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/0ZmQNzcGi9aKtJrAOv5ebwoHBVV6RnqAo-Qedv7JPhIX0CZFm8ufSYFifi6AFeVEfWKAHwMTOOwnxBI3VHxELDhpyymKdtsc9f1ppVDtGImmcDYjqcajIBiHGo91d7GK1HkgXyhz\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u0438\u0433\u0440\u0443, \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/VAoLCBWhSEt38AiqKRv2uWBmt3GI1VbujTBmyn6qWcqa6Db8vFMGWuRBwPggBOBZCDj_yYVbYCfhepdiIzEaJ-7NXByP3t4Y18GU8IwDOCMA4fu3E_PIlcmoexb4btX5JRRzJQYp\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">\u0410 \u044f \u0432\u0441\u0435 \u0433\u043b\u044f\u0436\u0443, \u0433\u043b\u0430\u0437 \u043d\u0435 \u043e\u0442\u0432\u043e\u0436\u0443<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u042f \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435\u043d\u0430\u0434\u043e\u043b\u0433\u043e \u043e\u0442\u0432\u043b\u0435\u043a\u0443\u0441\u044c \u0438 \u043d\u0430\u0432\u0435\u0434\u0443 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043a\u0440\u0430\u0441\u043e\u0442\u044b: \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0432 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u044e \u043a\u0430\u043c\u0435\u0440\u0443.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 <code>SimpleNaturePack<\/code>, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0431\u0435\u0433\u0430\u0442\u044c \u043f\u043e \u043f\u0443\u0441\u0442\u043e\u0439 \u043f\u043b\u043e\u0441\u043a\u043e\u0441\u0442\u0438:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/cIcBLbsuYrMhOJQjchGihbideDl04qL4T8FlF5AEaH3bpf6I0GNghWDh9YkZb6RpgZb8dKix_nU6-gJWUuaZauzmFkmGnFkt1BbJRcwx_BenAVSHSu8yLt8HWXHSmEUNHh006-mh\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u0430\u043c\u0435\u0440\u0443 \u0436\u0435 \u044f \u043d\u0430\u0441\u0442\u0440\u043e\u044e \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <code>Cinemachine<\/code>. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u044d\u0442\u043e\u043c \u044f \u043d\u0435 \u0431\u0443\u0434\u0443, \u043f\u0440\u0438\u0432\u0435\u0434\u0443 \u043b\u0438\u0448\u044c \u043f\u0440\u0438\u043c\u0435\u0440 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u044f \u0441\u043e\u0437\u0434\u0430\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0441\u0442\u043e\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u043d\u0443\u0442\u0440\u0438 <code>TT_demo_police<\/code> \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0435\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0433\u043e\u043b\u043e\u0432\u044b &#8212; \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u201c\u043f\u0440\u0438\u0446\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044f\u201d \u043a\u0430\u043c\u0435\u0440\u044b. \u041d\u0430\u0437\u043e\u0432\u0443 \u0435\u0433\u043e <code>CameraTarget<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u043a\u0430\u043c\u0435\u0440\u0443. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u0431\u0435\u0440\u0443 \u043f\u0443\u043d\u043a\u0442 \u043c\u0435\u043d\u044e <code>Cinemachine\u21e8Create Virtual Camera<\/code> (\u0435\u0441\u043b\u0438 \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u043d\u044e \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438 \u043b\u0438 \u0432\u044b \u043f\u0430\u043a\u0435\u0442 <code>Cinemachine<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412 \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440\u0435 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u0430\u043c\u0435\u0440\u044b \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u044e <code>TT_demo_police<\/code> \u0432 \u043f\u043e\u043b\u0435 <code>Follow <\/code>\u0438 <code>CameraTarget<\/code> \u0432 \u043f\u043e\u043b\u0435 <code>Look At<\/code>. \u0412 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 <code>Body<\/code> \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044e <code>Follow Offset<\/code> <code>X=0, Y=9, Z=-15<\/code> \u0438 <code>Yaw Damping<\/code> \u0432 <code>0.25<\/code>.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u0421\u0442\u0440\u0435\u043b\u044f\u0439, \u0413\u043b\u0435\u0431 \u0415\u0433\u043e\u0440\u044b\u0447!<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u0411\u0435\u0433\u0430\u0442\u044c \u043f\u043e \u043a\u0430\u0440\u0442\u0435 &#8212; \u044d\u0442\u043e \u0437\u0434\u043e\u0440\u043e\u0432\u043e. \u041d\u043e \u0448\u0443\u0442\u0435\u0440 \u043d\u0435 \u0431\u044b\u043b \u0431\u044b \u0448\u0443\u0442\u0435\u0440\u043e\u043c, \u0435\u0441\u043b\u0438 \u0431\u044b \u0442\u0430\u043c \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0441\u0442\u0440\u0435\u043b\u044f\u0442\u044c. \u0410 \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0435\u043b\u044c\u0437\u044f. \u041d\u0443\u0436\u043d\u043e \u0441\u0440\u043e\u0447\u043d\u043e \u044d\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e, \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0438\u0437 \u043a\u043e\u0434\u0430 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u0443\u043b\u0430 \u043f\u0438\u0441\u0442\u043e\u043b\u0435\u0442\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0443\u043b\u0438 \u0432\u044b\u043b\u0435\u0442\u0430\u043b\u0438 \u0447\u0435\u0442\u043a\u043e \u0438\u0437 \u043d\u0435\u0433\u043e (\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u0443\u043b\u0430 \u043c\u043e\u0436\u0435\u0442 \u0441\u043b\u0435\u0433\u043a\u0430 \u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e\u0434 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u0438).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421\u0430\u043c \u043f\u0438\u0441\u0442\u043e\u043b\u0435\u0442 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d \u043a \u0430\u043d\u0438\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u043a\u0435\u043b\u0435\u0442\u0443 \u0438 \u0435\u0433\u043e \u043b\u0435\u0433\u043a\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <code>TT_demo_police<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/5nten5VkaSOG3dKJythK5c8E7767URPdHf6sEduo7TJTWA5AGJQHzVnk9nxKxN4ZXosMgGKnygKnko16a9eLtvXKC46ZfRMhYK291khKqX2qUYQMfhE162fkwUhB3vFJccaFixkP\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u042f \u0441\u043e\u0437\u0434\u0430\u043c \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u0438\u0441\u0442\u043e\u043b\u0435\u0442\u0430 \u043f\u0443\u0441\u0442\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 (\u043d\u0430\u0437\u043e\u0432\u0443 \u0435\u0433\u043e GunHole) \u0438 \u0437\u0430\u0434\u0430\u043c \u0435\u043c\u0443 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (-0.1174, 0, 0.394) \u0438 \u043f\u043e\u0432\u043e\u0440\u043e\u0442 (0, 0, 90). \u042d\u0442\u043e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441 \u0434\u043b\u044f \u043a\u043e\u0434\u0430, \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u043f\u0443\u043b\u0438.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041d\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430: \u0442\u0430\u043a \u043a\u0430\u043a <code>TT_demo_police<\/code> (\u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442) \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u0432 \u0441\u0435\u0431\u0435 <code>ConvertToEntity<\/code> \u0441 \u0440\u0435\u0436\u0438\u043c\u043e\u043c <code>Convert And Inject Game Object<\/code>, \u044f \u043d\u0435 \u0441\u043c\u043e\u0433\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0441 \u043c\u043e\u0438\u043c \u0432\u043d\u043e\u0432\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c, Unity \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u0443 \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u044f \u0441\u043e\u0437\u0434\u0430\u043c \u043d\u043e\u0432\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 <code>Shooter<\/code> \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <code>Player<\/code> \u0438 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u044e \u043a \u043d\u0435\u043c\u0443 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 <code>MonoBehaviour<\/code> (<code>Scripts\/Shooter.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using UnityEngine;\n \npublic class Shooter : MonoBehaviour\n{\n    public Transform gunHole;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0418 \u043f\u0440\u043e\u043f\u0438\u0448\u0443 \u0432 \u043d\u0435\u0433\u043e \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 <code>GunHole<\/code> \u0432 \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440\u0435.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0410 \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 <code>Shooter<\/code> \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043d\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <code>TT_demo_police<\/code>, \u044f \u043c\u043e\u0433\u0443 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u043d\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>ConvertToEntity<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/2xam_vKIuncNdAWCH0t7rov-Y96TW2tky9R72aJV-EajhcgVTkt-Lz9N0yAtAgvDymgpYY0Xq8qGkkQ8yIbIMuId-WkK49dk6cAYm7L0mYW65zxr6HWCBLzoqN-8uHytI4t_EpK9\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u0440\u043e\u043c\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0434\u0443\u043b\u0430, \u043c\u043d\u0435 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438 \u043f\u0440\u0435\u0444\u0430\u0431 \u043f\u0443\u043b\u0438. \u0412 \u043f\u0440\u0435\u0444\u0430\u0431\u0430\u0445 \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>ConvertToEntity<\/code> &#8212; \u0442\u0430\u043a\u0438\u0435 \u043f\u0440\u0435\u0444\u0430\u0431\u044b \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u044f\u0442\u0441\u044f \u0432 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0441 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c Prefab \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0438\u0433\u0440\u044b \u0438 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0438\u0437 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043d\u043e \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0438 \u043f\u0440\u043e\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b. \u0422\u0430\u043a\u0436\u0435, \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c\u0438 \u043f\u0440\u0435\u0444\u0430\u0431\u0430\u043c\u0438, \u0438\u0437 \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u0435\u0444\u0430\u0431\u043e\u0432-\u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044d\u0442\u043e \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u043c\u0435\u0442\u043e\u0434 Instantiate!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0441\u043e\u0437\u0434\u0430\u043c \u043f\u0440\u0435\u0444\u0430\u0431 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432: \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b <code>ConvertToEntity<\/code> \u0438 <code>PhysicsBody<\/code>, \u0430 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 &#8212; \u043c\u0435\u0448 \u0438 \u043a\u043e\u043b\u043b\u0430\u0439\u0434\u0435\u0440 \u043a\u0430\u043f\u0441\u0443\u043b\u044b:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/2GkKdxIPnlpMIAqyqM48kczPmf5wy46L19lvrtOPECk5FFDD3ABxE6DYSgNLZR92SEKMbpefnBS3IyoOgWkEbpsEhNXd1zNtMW7ktI1sKuFl3bhGscGDAAVgRWpTf9Bqz1yhMZJZ\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u0418\u0437 \u0432\u0430\u0436\u043d\u043e\u0433\u043e: \u043a\u043e\u043b\u043b\u0430\u0439\u0434\u0435\u0440 \u0443 \u043f\u0443\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u043a\u0430\u043a \u0442\u0440\u0438\u0433\u0433\u0435\u0440, \u0430 \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b <code>PhysicsBody<\/code> \u0432\u043d\u0435\u0441\u0435\u043d\u044b \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f: <code>Linear Damping<\/code> \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 0, \u0447\u0442\u043e\u0431\u044b \u043f\u0443\u043b\u044f \u043d\u0435 \u0442\u0435\u0440\u044f\u043b\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u0438 <code>Gravity Factor<\/code> \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0432 0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412 \u043e\u0431\u044a\u0435\u043a\u0442 <code>Shooter<\/code> \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>BulletPrefabComponent<\/code> (<code>Scripts\/Components\/BulletPrefabComponent.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using Unity.Entities;\n \n&#91;GenerateAuthoringComponent]\npublic struct BulletPrefabComponent : IComponentData\n{\n    public Entity prefab;\n    public float speed;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u042d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u0440\u0435\u0444\u0430\u0431\u0443 \u0438\u0437 ECS-\u043a\u043e\u0434\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 &#8212; \u0437\u0430\u0434\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0443\u043b\u0438 (\u0441\u0440\u0430\u0437\u0443 \u043c\u043e\u0436\u043d\u043e \u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u043e\u0440\u0435, \u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 30).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0418 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u044f \u0431\u0443\u0434\u0443 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043d\u0430 \u043f\u0443\u043b\u0438 (<code>Scripts\/Components\/Bullet.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using Unity.Entities;\nusing Unity.Mathematics;\n \n&#91;GenerateAuthoringComponent]\npublic struct BulletComponent : IComponentData\n{\n    public float3 speed;\n    public bool destroyed;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0417\u0434\u0435\u0441\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 <code>speed<\/code> \u0431\u0443\u0434\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u0443\u043b\u0438 \u0438 \u0435\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c, \u0430 \u0444\u043b\u0430\u0433 <code>destroyed<\/code> \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043b\u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0443\u043b\u044c, \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0432\u0448\u0438\u0445\u0441\u044f \u0441 \u043f\u0440\u0435\u043f\u044f\u0442\u0441\u0442\u0432\u0438\u0435\u043c. \u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d \u044d\u0442\u043e\u0442 \u0444\u043b\u0430\u0433 \u0438 \u043a\u0430\u043a \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u044f \u043e\u0431\u044a\u044f\u0441\u043d\u044e \u0447\u0443\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043b\u044f \u0432\u044b\u0441\u0442\u0440\u0435\u043b\u043e\u0432 \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 (<code>Scripts\/Systems\/PlayerShootingSystem.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using UnityEngine;\nusing Unity.Entities;\nusing Unity.Transforms;\n \npublic class PlayerShootingSystem : ComponentSystem\n{\n    protected override void OnUpdate()\n    {\n        if (!Input.GetButtonDown(\"Fire1\"))\n            return;\n \n        Entities.ForEach((Entity entity, ref BulletPrefabComponent bulletPrefab) =&gt; {\n                var shooter = EntityManager.GetComponentObject&lt;Shooter&gt;(entity);\n                if (shooter == null)\n                    Debug.LogError(\"BulletPrefabComponent is missing Shooter component.\");\n                else {\n                    Entity bullet = EntityManager.Instantiate(bulletPrefab.prefab);\n                    EntityManager.SetComponentData(bullet, new Translation{ Value = shooter.gunHole.position });\n                    EntityManager.SetComponentData(bullet, new Rotation{ Value = shooter.gunHole.rotation });\n                    EntityManager.AddComponentData(bullet, new BulletComponent{ speed = shooter.gunHole.forward * bulletPrefab.speed });\n                }\n            });\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0415\u0441\u043b\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438\u0433\u0440\u0443, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0432\u044b\u0441\u0442\u0440\u0435\u043b\u0435 \u043f\u0443\u043b\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/IcqTXr52egEHeGlWsqA12kdNQ3zxKtZKOSYtLGVo3EwJbMhXg35MtJRzy2s9dwrIx7EmTafBUGfExQ4XRKPRmlAkugpxNrTzVEDPN_0aNvLmiIc_dt7wmq9hyBL42PHDhdGkrtKj\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u041d\u043e \u043e\u043d\u0438 \u043d\u0435 \u0434\u0432\u0438\u0433\u0430\u044e\u0442\u0441\u044f! \u041a\u0430\u043a \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c? \u041f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e &#8212; \u0437\u0430\u0432\u0435\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 (<code>Scripts\/Systems\/BulletSystem.cs<\/code>):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using Unity.Entities;\nusing Unity.Jobs;\nusing Unity.Physics;\n \npublic class BulletSystem : JobComponentSystem\n{\n    protected override JobHandle OnUpdate(JobHandle inputDeps)\n    {\n        JobHandle job = Entities.ForEach((ref BulletComponent bullet, ref PhysicsVelocity velocity) =&gt; {\n                velocity.Linear = bullet.speed;\n            }).Schedule(inputDeps);\n \n        return job;\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0442\u0443\u0442 \u0432\u0441\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e: \u0437\u0430\u0434\u0430\u0435\u043c \u043f\u0443\u043b\u044f\u043c \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0443\u044e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438 \u043f\u0443\u0441\u0442\u044c \u0441\u0435\u0431\u0435 \u043b\u0435\u0442\u044f\u0442.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u041e\u0436\u0438\u0432\u0448\u0438\u0435 \u043c\u0435\u0440\u0442\u0432\u0435\u0446\u044b<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u0417\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u043f\u0443\u043b\u0438 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c. \u041d\u043e \u0441\u0442\u0440\u0435\u043b\u044f\u0442\u044c \u043f\u043e\u043a\u0430 \u043d\u0435 \u0432 \u043a\u043e\u0433\u043e. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0437\u043e\u043c\u0431\u0438!&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u042f \u0441\u043e\u0437\u0434\u0430\u043c \u0432 \u043a\u043e\u0440\u043d\u0435 \u0441\u0446\u0435\u043d\u044b \u043f\u0443\u0441\u0442\u043e\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 <code>Zombie<\/code> \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u044e \u0435\u0433\u043e \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u0433\u0435\u0440\u043e\u0435\u043c. \u0421\u0440\u0430\u0437\u0443 \u043f\u043e\u043b\u043e\u0436\u0443 \u0432\u043d\u0443\u0442\u0440\u044c \u043f\u0440\u0435\u0444\u0430\u0431 <code>TT_demo\/prefabs\/TT_demo_zombie<\/code>. \u0422\u0430\u043a\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043c \u043a\u0430\u043f\u0441\u0443\u043b\u0443 (<code>Position 0, 1, 0<\/code>) \u0438 \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u043a\u043b\u044e\u0447\u0443 \u0443 \u043d\u0435\u0435 <code>MeshRenderer<\/code>. \u0412 \u0441\u0430\u043c \u043e\u0431\u044a\u0435\u043a\u0442 <code>Zombie<\/code> \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b <code>PhysicsBody<\/code>, <code>FreezeVerticalRotationComponent<\/code>, <code>AnimatedCharacterComponent<\/code> \u0438 <code>ConvertToEntity<\/code>. \u0422\u0430\u043a\u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>ConvertToEntity<\/code> \u043d\u0430\u0434\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438 \u0432 \u043e\u0431\u044a\u0435\u043a\u0442 <code>TT_demo_zombie<\/code>, \u0443\u043a\u0430\u0437\u0430\u0432 \u0440\u0435\u0436\u0438\u043c <code>Convert And Inject Game Object<\/code>. \u0422\u0443\u0434\u0430 \u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438 <code>CopyTransformComponent<\/code>. \u0423 <code>PhysicsBody<\/code> \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044e <code>Mass=70<\/code>. \u0412 \u043e\u0431\u0449\u0435\u043c, \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <code>Player<\/code>, \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0435\u0437 <code>Shooter<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0440\u0438\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0438 \u0441\u0438\u0441\u0442\u0435\u043c \u0443\u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u044b. \u041d\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0434\u043b\u044f \u0437\u043e\u043c\u0431\u0438.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e, \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432\u0440\u0430\u0433\u0443 \u0436\u0438\u0437\u043d\u0438 (<code>Scripts\/Components\/HealthComponent.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using Unity.Entities;\n \n&#91;GenerateAuthoringComponent]\npublic struct HealthComponent : IComponentData\n{\n    public int value;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0418 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 (<code>Scripts\/Components\/AnimatedCharacterDeathSystem.cs<\/code>), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u044b\u0433\u0440\u044b\u0432\u0430\u0442\u044c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u0441\u043c\u0435\u0440\u0442\u0438 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430, \u043a\u043e\u0433\u0434\u0430 \u0441\u0447\u0435\u0442\u0447\u0438\u043a \u0436\u0438\u0437\u043d\u0435\u0439 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0435\u0442 0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using UnityEngine;\nusing Unity.Entities;\nusing Unity.Mathematics;\nusing Unity.Physics;\n \npublic class AnimatedCharacterDeathSystem : ComponentSystem\n{\n    protected override void OnUpdate()\n    {\n        Entities.ForEach((Entity entity, ref AnimatedCharacterComponent character, ref HealthComponent health) =&gt; {\n                var animator = EntityManager.GetComponentObject&lt;Animator&gt;(character.animatorEntity);\n                if (health.value &lt;= 0) {\n                    animator.SetTrigger(\"die\");\n                    EntityManager.RemoveComponent&lt;HealthComponent&gt;(entity);\n                }\n            });\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u0437\u043e\u043c\u0431\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>HealthComponent<\/code> \u0441 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0436\u0438\u0437\u043d\u0435\u0439 0 \u0438 \u0437\u0430\u043f\u0443\u0449\u0443 \u0438\u0433\u0440\u0443. \u0417\u043e\u043c\u0431\u0438 \u0434\u043e\u043b\u0436\u0435\u043d \u0441\u0440\u0430\u0437\u0443 \u0443\u043c\u0435\u0440\u0435\u0442\u044c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/t7sTiLwjqNe2sFWeBgRQnlAQzKx5LRP8rv9BHC_OdQX-ryLs2Y_wPpX8Bz7hHgtu_4BWPECe5SpO8fp0nrd_n-DVhsDgC7yrxVdMUpzr4JSHHT76M4K-VYWxsT3BBVmkiycOQ9Jy\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0440\u0435\u0432\u043e\u0441\u0445\u043e\u0434\u043d\u043e, \u043a\u043e\u0434 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442! \u041f\u043e\u0441\u0442\u0430\u0432\u043b\u044e \u0437\u043e\u043c\u0431\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, 3 \u0436\u0438\u0437\u043d\u0438 \u0438 \u0437\u0430\u0439\u043c\u0443\u0441\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f \u043f\u0443\u043b\u0438 \u0438 \u0432\u0440\u0430\u0433\u0430.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 (<code>Scripts\/Systems\/BulletDamageSystem.cs<\/code>). \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0437\u0433\u043b\u044f\u043d\u0435\u043c \u043d\u0430 \u043d\u0435\u0435, \u0430 \u043f\u043e\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using Unity.Collections;\nusing Unity.Entities;\nusing Unity.Jobs;\nusing Unity.Physics.Systems;\nusing Unity.Physics;\n \npublic class CollisionEventSystem : JobComponentSystem\n{\n    struct CollisionEventSystemJob : ITriggerEventsJob\n    {\n        public ComponentDataFromEntity&lt;BulletComponent&gt; bulletRef;\n        public ComponentDataFromEntity&lt;HealthComponent&gt; healthRef;\n \n        public void Execute(TriggerEvent triggerEvent)\n        {\n            Entity hitEntity, bulletEntity;\n            if (bulletRef.HasComponent(triggerEvent.EntityA)) {\n                hitEntity = triggerEvent.EntityB;\n                bulletEntity = triggerEvent.EntityA;\n            } else if (bulletRef.HasComponent(triggerEvent.EntityB)) {\n                hitEntity = triggerEvent.EntityA;\n                bulletEntity = triggerEvent.EntityB;\n            } else\n                return;\n \n            var bullet = bulletRef&#91;bulletEntity];\n            bullet.destroyed = true;\n            bulletRef&#91;bulletEntity] = bullet;\n \n            if (healthRef.HasComponent(hitEntity)) {\n                var health = healthRef&#91;hitEntity];\n                health.value--;\n                healthRef&#91;hitEntity] = health;\n            }\n        }\n    }\n \n    BuildPhysicsWorld buildPhysicsWorldSystem;\n    StepPhysicsWorld stepPhysicsWorld;\n    EndSimulationEntityCommandBufferSystem endSimulationCommandBuffer;\n \n    protected override void OnCreate()\n    {\n        buildPhysicsWorldSystem = World.GetOrCreateSystem&lt;BuildPhysicsWorld&gt;();\n        stepPhysicsWorld = World.GetOrCreateSystem&lt;StepPhysicsWorld&gt;();\n        endSimulationCommandBuffer = World.GetOrCreateSystem&lt;EndSimulationEntityCommandBufferSystem&gt;();\n    }\n \n    protected override JobHandle OnUpdate(JobHandle inputDeps)\n    {\n        var job = new CollisionEventSystemJob();\n        job.bulletRef = GetComponentDataFromEntity&lt;BulletComponent&gt;(isReadOnly: false);\n        job.healthRef = GetComponentDataFromEntity&lt;HealthComponent&gt;(isReadOnly: false);\n        var jobResult = job.Schedule(stepPhysicsWorld.Simulation, ref buildPhysicsWorldSystem.PhysicsWorld, inputDeps);\n \n        var commandBuffer = endSimulationCommandBuffer.CreateCommandBuffer().AsParallelWriter();\n        var result = Entities.ForEach((Entity entity, int entityInQueryIndex, ref BulletComponent bullet) =&gt; {\n                if (bullet.destroyed)\n                    commandBuffer.DestroyEntity(entityInQueryIndex, entity);\n            }).Schedule(jobResult);\n \n        endSimulationCommandBuffer.AddJobHandleForProducer(result);\n        return result;\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u0435\u0440\u0432\u0430\u044f (\u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u0432\u0430\u0436\u043d\u0430\u044f) \u0447\u0430\u0441\u0442\u044c &#8212; \u044d\u0442\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 <code>CollisionEventSystemJob<\/code>. \u041e\u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0443 \u0434\u043b\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b <code>Job System<\/code>. \u0412 \u044d\u0442\u0443 \u0437\u0430\u0434\u0430\u0447\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043f\u0435\u0440\u0435\u0447\u0435\u043d\u044c \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0439 \u043c\u0435\u0436\u0434\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438. \u041a\u043e\u0434 \u0437\u0430\u0434\u0430\u0447\u0438 \u0432 \u043c\u0435\u0442\u043e\u0434\u0435 <code>Execute<\/code> \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442, \u0435\u0441\u0442\u044c \u043b\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0432\u0448\u0438\u0445\u0441\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>BulletComponent<\/code>. \u0415\u0441\u043b\u0438, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u043e\u0434\u0438\u043d \u0438\u0437 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 &#8212; \u043f\u0443\u043b\u044f, \u0442\u043e \u0435\u0439 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u043b\u0430\u0436\u043e\u043a <code>destroy<\/code>, \u0430 \u0443 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432\u044b\u0447\u0438\u0442\u0430\u044e\u0442\u0441\u044f \u0436\u0438\u0437\u043d\u0438 (\u0435\u0441\u043b\u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0443 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442; \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0435 \u0441 \u0434\u0435\u0440\u0435\u0432\u043e\u043c \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043a \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u044e \u043f\u0443\u043b\u0438).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0434\u0432\u0430 \u043c\u043e\u043c\u0435\u043d\u0442\u0430: \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u043a\u043b\u0430\u0441\u0441 <code>ComponentDataFromEntity<\/code>. \u042d\u0442\u043e \u043d\u0443\u0436\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0438 \u0434\u0432\u0438\u0436\u043e\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c \u0438 \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043e\u0434\u043d\u0438\u043c \u0438 \u0442\u0435\u043c \u0436\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u043e\u0442\u043e\u043a\u043e\u0432. \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043f\u043e \u0442\u043e\u0439 \u0436\u0435 \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u043d\u0435\u043b\u044c\u0437\u044f \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0442\u044c \u043f\u0443\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f. \u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e, \u0443 \u043f\u0443\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u043b\u0430\u0436\u043e\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438, \u0433\u0434\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412 \u043c\u0435\u0442\u043e\u0434\u0435 <code>OnUpdate<\/code> \u044f \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0440\u043e\u0448\u0443 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0438\u0436\u043e\u043a \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f\u0445 \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u044e \u0435\u0435 \u0432 <code>CollisionEventSystemJob<\/code> \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e \u044d\u0442\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u0430, \u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0431\u044b\u043b\u0438 \u043b\u0438 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u044b \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043f\u0443\u043b\u0438 \u0438 \u0435\u0441\u043b\u0438 \u0431\u044b\u043b\u0438, \u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u044e \u0438\u0445 \u0432 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u044b\u0439 \u0431\u0443\u0444\u0435\u0440 \u0434\u043b\u044f \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">\u0411\u0435\u0433\u0438, \u041b\u043e\u043b\u0430, \u0411\u0435\u0433\u0438!<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0432\u0430\u0436\u043d\u0430\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0438 \u0432\u0440\u0430\u0433\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 &#8212; \u044d\u0442\u043e \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043e\u0445\u043e\u0442\u0443 \u043d\u0430 \u0438\u0433\u0440\u043e\u043a\u0430!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0414\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u0443\u0442\u0438 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e <code>NavMesh<\/code>. \u041e\u043f\u044f\u0442\u044c \u0436\u0435, \u044f \u043d\u0435 \u0431\u0443\u0434\u0443 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043d\u0435\u0439 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e, \u0441\u043a\u0430\u0436\u0443 \u043b\u0438\u0448\u044c, \u0447\u0442\u043e \u0437\u0430\u043f\u0435\u0447\u044c <code>NavMesh<\/code> \u043c\u043e\u0436\u043d\u043e \u0432 \u043e\u043a\u043d\u0435 <code>Navigation<\/code>, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043c\u0435\u043d\u044e <code>Window\u21e8AI\u21e8Navigation<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u042f \u0441\u043e\u0437\u0434\u0430\u043c \u0432\u043d\u0443\u0442\u0440\u0438 \u0438\u0433\u0440\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <code>Zombie<\/code> \u043f\u0443\u0441\u0442\u043e\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 <code>NavMeshAgent<\/code> \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u0432 \u043d\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>NavMeshAgent<\/code>. \u0422\u0430\u043a\u0436\u0435 \u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>ConvertToEntity<\/code> \u0441 \u0440\u0435\u0436\u0438\u043c\u043e\u043c <code>Convert And Inject Game Object<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u044d\u0442\u043e\u043c\u0443, \u043c\u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <code>NavMeshAgentComponent<\/code> (<code>Scripts\/Components\/NavMeshAgentComponent.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using Unity.Entities;\n \n&#91;GenerateAuthoringComponent]\npublic struct NavMeshAgentComponent : IComponentData\n{\n    public Entity moveEntity;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0437\u0434\u0435\u0441\u044c &#8212; \u044d\u0442\u043e \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u044c, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u044d\u0442\u043e\u0442 <code>NavMeshAgent<\/code> \u0431\u0443\u0434\u0435\u0442 \u0434\u0432\u0438\u0433\u0430\u0442\u044c. \u0414\u043e\u0431\u0430\u0432\u0438\u0432 \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0432 \u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 <code>NavMeshAgent<\/code>, \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <code>moveEntity<\/code> \u044f \u0443\u043a\u0430\u0436\u0443 \u043e\u0431\u044a\u0435\u043a\u0442 <code>Zombie<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 (<code>Scripts\/Components\/FollowTargetComponent.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using Unity.Entities;\n \n&#91;GenerateAuthoringComponent]\npublic struct FollowTargetComponent : IComponentData\n{\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u042d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u044f \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u043c\u0430\u0440\u043a\u0435\u0440: \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0430\u0433\u0438, \u0438\u043c\u0435\u044e\u0449\u0438\u0435 \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0435\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0438\u0433\u0440\u043e\u043a\u0430.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0448\u0442\u0440\u0438\u0445\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b (<code>Scripts\/Systems\/FollowPlayerSystem.cs<\/code>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>using UnityEngine;\nusing UnityEngine.AI;\nusing Unity.Entities;\nusing Unity.Mathematics;\nusing Unity.Transforms;\n \npublic class FollowPlayerSystem : ComponentSystem\n{\n    protected override void OnUpdate()\n    {\n        float3 targetPosition = float3.zero;\n        Entities.ForEach((Entity entity, ref LocalToWorld transform, ref FollowTargetComponent tag) =&gt; {\n                targetPosition = transform.Position;\n            });\n \n        Entities.ForEach((Entity entity, ref NavMeshAgentComponent agent) =&gt; {\n                var navMeshAgent = EntityManager.GetComponentObject&lt;NavMeshAgent&gt;(entity);\n                if (navMeshAgent != null) {\n                    navMeshAgent.SetDestination(targetPosition);\n                    EntityManager.SetComponentData(agent.moveEntity, new Translation{ Value = navMeshAgent.transform.position });\n                }\n            });\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/2LPbPGMn-9umw-5SMPyw2Z_85m_DKxUI8GgDqkBG3SPC997gycruiTsaOBRsGnKmS-g9scaN2A6XWeIWDBSCAO9J2_vkOF-FaeMrA1fC3FhuLU9ILkc0bDNl9_2xYmvMFICohahH\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">\u041a\u043e\u043d\u0435\u0446<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0438\u0441\u044c \u0441 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 DOTS \u0438 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u043c ECS. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u043c\u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0441 \u044d\u0442\u0438\u043c\u0438 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044f\u043c\u0438 \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0438\u0433\u0440\u043e\u0432\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421\u043a\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0441 GitHub: <a href=\"https:\/\/github.com\/zapolnov\/dots-zombie-shooter\">https:\/\/github.com\/zapolnov\/dots-zombie-shooter<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0416\u0435\u043b\u0430\u044e \u0443\u0434\u0430\u0447\u0438 \u0432 \u0432\u0430\u0448\u0438\u0445 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u0445!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/otus.ru\/lessons\/unity-professional\/?utm_source=oj&amp;utm_medium=affilate&amp;utm_campaign=unitypro\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"970\" height=\"90\" src=\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg\" alt=\"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\" class=\"wp-image-7658\" srcset=\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg 970w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-300x28.jpg 300w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-150x14.jpg 150w, https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya-768x71.jpg 768w\" sizes=\"auto, (max-width: 970px) 100vw, 970px\" \/><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"ImageObject\",\"url\":\"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/10\/unity_Welcome_970x90-kopiya.jpg\",\"width\":\"970\",\"height\":\"90\"}<\/script><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0417\u0430\u043f\u043e\u043b\u044c\u043d\u043e\u0432, \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445 Unity Basic \u0438 Unity Pro \u0432 OTUS. \u0418 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043f\u0440\u043e, \u0431\u0435\u0437 \u043f\u0440\u0435\u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f, \u0431\u0443\u0434\u0443\u0449\u0435\u0435 Unity &#8212; \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e DOTS. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0443\u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043a\u043e\u0435 \u044d\u0442\u043e\u0442 DOTS, \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043e\u043d \u0440\u0435\u0448\u0430\u0435\u0442 \u0438 \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u041d\u043e \u043d\u0430\u0447\u0430\u0442\u044c, \u0432\u0441\u0435 \u0436\u0435, [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":491,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[25,24,26],"class_list":["post-227","post","type-post","status-publish","format-standard","has-post-thumbnail","","category-polza","tag-gamedev","tag-unity","tag-urok"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0417\u0430\u043f\u043e\u043b\u044c\u043d\u043e\u0432, \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445 Unity Basic \u0438 Unity Pro \u0432 OTUS. \u0418 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043f\u0440\u043e, \u0431\u0435\u0437 \u043f\u0440\u0435\u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f, \u0431\u0443\u0434\u0443\u0449\u0435\u0435 Unity - \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e DOTS. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0443\u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043a\u043e\u0435 \u044d\u0442\u043e\u0442 DOTS, \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043e\u043d \u0440\u0435\u0448\u0430\u0435\u0442 \u0438 \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u041d\u043e \u043d\u0430\u0447\u0430\u0442\u044c, \u0432\u0441\u0435 \u0436\u0435,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"D. Golovin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#article\",\"name\":\"\\u0417\\u043e\\u043c\\u0431\\u0438-\\u0448\\u0443\\u0442\\u0435\\u0440 \\u043d\\u0430 DOTS \\u0432 Unity OTUS\",\"headline\":\"\\u0417\\u043e\\u043c\\u0431\\u0438-\\u0448\\u0443\\u0442\\u0435\\u0440 \\u043d\\u0430 DOTS \\u0432 Unity\",\"author\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/author\\\/d-golovin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/oj-1080x720-15.png\",\"width\":1080,\"height\":720},\"datePublished\":\"2020-12-15T10:30:11+00:00\",\"dateModified\":\"2023-10-06T21:17:22+00:00\",\"inLanguage\":\"ru-RU\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#webpage\"},\"articleSection\":\"\\u041f\\u043e\\u043b\\u0435\\u0437\\u043d\\u043e\\u0435, gamedev, unity, \\u0443\\u0440\\u043e\\u043a\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/otus.ru\\\/journal\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/category\\\/polza\\\/#listItem\",\"name\":\"\\u041f\\u043e\\u043b\\u0435\\u0437\\u043d\\u043e\\u0435\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/category\\\/polza\\\/#listItem\",\"position\":2,\"name\":\"\\u041f\\u043e\\u043b\\u0435\\u0437\\u043d\\u043e\\u0435\",\"item\":\"https:\\\/\\\/otus.ru\\\/journal\\\/category\\\/polza\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#listItem\",\"name\":\"\\u0417\\u043e\\u043c\\u0431\\u0438-\\u0448\\u0443\\u0442\\u0435\\u0440 \\u043d\\u0430 DOTS \\u0432 Unity\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#listItem\",\"position\":3,\"name\":\"\\u0417\\u043e\\u043c\\u0431\\u0438-\\u0448\\u0443\\u0442\\u0435\\u0440 \\u043d\\u0430 DOTS \\u0432 Unity\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/category\\\/polza\\\/#listItem\",\"name\":\"\\u041f\\u043e\\u043b\\u0435\\u0437\\u043d\\u043e\\u0435\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#organization\",\"name\":\"\\u041e\\u0442\\u0443\\u0441 \\u043e\\u043d\\u043b\\u0430\\u0439\\u043d-\\u043e\\u0431\\u0440\\u0430\\u0437\\u043e\\u0432\\u0430\\u043d\\u0438\\u0435\",\"description\":\"\\u0411\\u043b\\u043e\\u0433 \\u043f\\u0440\\u043e IT\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/\",\"telephone\":\"+74999389202\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/OTUS-journal-logo-180x180-1.png\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#organizationLogo\",\"width\":180,\"height\":180},\"image\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCetgtvy93o3i3CvyGXKFU3g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/author\\\/d-golovin\\\/#author\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/author\\\/d-golovin\\\/\",\"name\":\"D. Golovin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/40ffcbf4731136c14a4c08f8565c778b4af6671b9f9f8a3413b10c826f96e997?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"D. Golovin\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#webpage\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/\",\"name\":\"\\u0417\\u043e\\u043c\\u0431\\u0438-\\u0448\\u0443\\u0442\\u0435\\u0440 \\u043d\\u0430 DOTS \\u0432 Unity OTUS\",\"description\":\"\\u0412\\u0441\\u0435\\u043c \\u043f\\u0440\\u0438\\u0432\\u0435\\u0442! \\u041c\\u0435\\u043d\\u044f \\u0437\\u043e\\u0432\\u0443\\u0442 \\u041d\\u0438\\u043a\\u043e\\u043b\\u0430\\u0439 \\u0417\\u0430\\u043f\\u043e\\u043b\\u044c\\u043d\\u043e\\u0432, \\u044f \\u043f\\u0440\\u0435\\u043f\\u043e\\u0434\\u0430\\u0432\\u0430\\u0442\\u0435\\u043b\\u044c \\u043d\\u0430 \\u043a\\u0443\\u0440\\u0441\\u0430\\u0445 Unity Basic \\u0438 Unity Pro \\u0432 OTUS. \\u0418 \\u0441\\u0435\\u0433\\u043e\\u0434\\u043d\\u044f \\u044f \\u0445\\u043e\\u0447\\u0443 \\u0440\\u0430\\u0441\\u0441\\u043a\\u0430\\u0437\\u0430\\u0442\\u044c \\u0432\\u0430\\u043c \\u043f\\u0440\\u043e, \\u0431\\u0435\\u0437 \\u043f\\u0440\\u0435\\u0443\\u0432\\u0435\\u043b\\u0438\\u0447\\u0435\\u043d\\u0438\\u044f, \\u0431\\u0443\\u0434\\u0443\\u0449\\u0435\\u0435 Unity - \\u0442\\u0435\\u0445\\u043d\\u043e\\u043b\\u043e\\u0433\\u0438\\u044e DOTS. \\u0412 \\u044d\\u0442\\u043e\\u0439 \\u0441\\u0442\\u0430\\u0442\\u044c\\u0435 \\u043c\\u044b \\u0443\\u0437\\u043d\\u0430\\u0435\\u043c, \\u0447\\u0442\\u043e \\u0436\\u0435 \\u0442\\u0430\\u043a\\u043e\\u0435 \\u044d\\u0442\\u043e\\u0442 DOTS, \\u043a\\u0430\\u043a\\u0438\\u0435 \\u043f\\u0440\\u043e\\u0431\\u043b\\u0435\\u043c\\u044b \\u043e\\u043d \\u0440\\u0435\\u0448\\u0430\\u0435\\u0442 \\u0438 \\u043a\\u0430\\u043a \\u043f\\u0440\\u0438\\u043c\\u0435\\u043d\\u0438\\u0442\\u044c \\u0435\\u0433\\u043e \\u043d\\u0430 \\u043f\\u0440\\u0430\\u043a\\u0442\\u0438\\u043a\\u0435. \\u041d\\u043e \\u043d\\u0430\\u0447\\u0430\\u0442\\u044c, \\u0432\\u0441\\u0435 \\u0436\\u0435,\",\"inLanguage\":\"ru-RU\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/author\\\/d-golovin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/author\\\/d-golovin\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/oj-1080x720-15.png\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#mainImage\",\"width\":1080,\"height\":720},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/zombi-shuter-na-dots-v-unity\\\/#mainImage\"},\"datePublished\":\"2020-12-15T10:30:11+00:00\",\"dateModified\":\"2023-10-06T21:17:22+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#website\",\"url\":\"https:\\\/\\\/otus.ru\\\/journal\\\/\",\"name\":\"OTUS \\u0416\\u0443\\u0440\\u043d\\u0430\\u043b - \\u0411\\u043b\\u043e\\u0433 \\u043f\\u0440\\u043e IT\",\"alternateName\":\"OTUS \\u0416\\u0443\\u0440\\u043d\\u0430\\u043b\",\"description\":\"\\u0411\\u043b\\u043e\\u0433 \\u043f\\u0440\\u043e IT\",\"inLanguage\":\"ru-RU\",\"publisher\":{\"@id\":\"https:\\\/\\\/otus.ru\\\/journal\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity OTUS","description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0417\u0430\u043f\u043e\u043b\u044c\u043d\u043e\u0432, \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445 Unity Basic \u0438 Unity Pro \u0432 OTUS. \u0418 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043f\u0440\u043e, \u0431\u0435\u0437 \u043f\u0440\u0435\u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f, \u0431\u0443\u0434\u0443\u0449\u0435\u0435 Unity - \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e DOTS. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0443\u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043a\u043e\u0435 \u044d\u0442\u043e\u0442 DOTS, \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043e\u043d \u0440\u0435\u0448\u0430\u0435\u0442 \u0438 \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u041d\u043e \u043d\u0430\u0447\u0430\u0442\u044c, \u0432\u0441\u0435 \u0436\u0435,","canonical_url":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#article","name":"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity OTUS","headline":"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity","author":{"@id":"https:\/\/otus.ru\/journal\/author\/d-golovin\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2020\/12\/oj-1080x720-15.png","width":1080,"height":720},"datePublished":"2020-12-15T10:30:11+00:00","dateModified":"2023-10-06T21:17:22+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, gamedev, unity, \u0443\u0440\u043e\u043a"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal#listItem","position":1,"name":"Home","item":"https:\/\/otus.ru\/journal","nextItem":{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/category\/polza\/#listItem","name":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435"}},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/category\/polza\/#listItem","position":2,"name":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435","item":"https:\/\/otus.ru\/journal\/category\/polza\/","nextItem":{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#listItem","name":"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity"},"previousItem":{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#listItem","position":3,"name":"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity","previousItem":{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/category\/polza\/#listItem","name":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435"}}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","description":"\u0411\u043b\u043e\u0433 \u043f\u0440\u043e IT","url":"https:\/\/otus.ru\/journal\/","telephone":"+74999389202","logo":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2026\/04\/OTUS-journal-logo-180x180-1.png","@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#organizationLogo","width":180,"height":180},"image":{"@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#organizationLogo"},"sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"]},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/d-golovin\/#author","url":"https:\/\/otus.ru\/journal\/author\/d-golovin\/","name":"D. Golovin","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/40ffcbf4731136c14a4c08f8565c778b4af6671b9f9f8a3413b10c826f96e997?s=96&d=mm&r=g","width":96,"height":96,"caption":"D. Golovin"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#webpage","url":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/","name":"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity OTUS","description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u043e\u043b\u0430\u0439 \u0417\u0430\u043f\u043e\u043b\u044c\u043d\u043e\u0432, \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043a\u0443\u0440\u0441\u0430\u0445 Unity Basic \u0438 Unity Pro \u0432 OTUS. \u0418 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0430\u043c \u043f\u0440\u043e, \u0431\u0435\u0437 \u043f\u0440\u0435\u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044f, \u0431\u0443\u0434\u0443\u0449\u0435\u0435 Unity - \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u044e DOTS. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0443\u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0436\u0435 \u0442\u0430\u043a\u043e\u0435 \u044d\u0442\u043e\u0442 DOTS, \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043e\u043d \u0440\u0435\u0448\u0430\u0435\u0442 \u0438 \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u041d\u043e \u043d\u0430\u0447\u0430\u0442\u044c, \u0432\u0441\u0435 \u0436\u0435,","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/d-golovin\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/d-golovin\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2020\/12\/oj-1080x720-15.png","@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#mainImage","width":1080,"height":720},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/#mainImage"},"datePublished":"2020-12-15T10:30:11+00:00","dateModified":"2023-10-06T21:17:22+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS \u0416\u0443\u0440\u043d\u0430\u043b - \u0411\u043b\u043e\u0433 \u043f\u0440\u043e IT","alternateName":"OTUS \u0416\u0443\u0440\u043d\u0430\u043b","description":"\u0411\u043b\u043e\u0433 \u043f\u0440\u043e IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}},"aioseo_meta_data":{"post_id":"227","title":null,"description":null,"keywords":[],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-01-28 11:09:57","updated":"2026-05-04 11:49:09","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/otus.ru\/journal\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/otus.ru\/journal\/category\/polza\/\" title=\"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435\">\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/otus.ru\/journal"},{"label":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435","link":"https:\/\/otus.ru\/journal\/category\/polza\/"},{"label":"\u0417\u043e\u043c\u0431\u0438-\u0448\u0443\u0442\u0435\u0440 \u043d\u0430 DOTS \u0432 Unity","link":"https:\/\/otus.ru\/journal\/zombi-shuter-na-dots-v-unity\/"}],"_links":{"self":[{"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/posts\/227","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/comments?post=227"}],"version-history":[{"count":3,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/posts\/227\/revisions"}],"predecessor-version":[{"id":7660,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/posts\/227\/revisions\/7660"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/media\/491"}],"wp:attachment":[{"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/media?parent=227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/categories?post=227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/otus.ru\/journal\/wp-json\/wp\/v2\/tags?post=227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}