{"id":333245,"date":"2022-05-17T15:01:29","date_gmt":"2022-05-17T15:01:29","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=333245"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=333245","title":{"rendered":"<span>\u041f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 UNIGINE \u0441 Unity: \u0433\u0430\u0439\u0434 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h4>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438, \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435, \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u044b, \u0432\u0432\u043e\u0434, \u0440\u0435\u0439\u043a\u0430\u0441\u0442\u0438\u043d\u0433 \u0438 \u0434\u0440\u0443\u0433\u043e\u0435.<\/h4>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/d41\/a86\/15a\/d41a8615a31b6a3400f476c01c27f9bb.jpeg\" alt=\"\" title=\"\" width=\"1600\" height=\"900\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d41\/a86\/15a\/d41a8615a31b6a3400f476c01c27f9bb.jpeg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0438\u0449\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u043e\u0442\u0435\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 Unity \u0438\u043b\u0438 Unreal Engine, \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0446\u0438\u043a\u043b \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 UNIGINE \u0441 \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432. \u0412 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044e \u0441 Unity \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430.<\/p>\n<h3>\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f<\/h3>\n<p>\u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0438\u0433\u0440\u043e\u0432\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 <em>Unity<\/em> \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u2014 <em>C# <\/em>\u043a\u043b\u0430\u0441\u0441\u044b, \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 <em>MonoBehaviour<\/em>. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0432 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u0430\u0445 <strong><em>Start()<\/em><\/strong>, <strong><em>Update()<\/em><\/strong> \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>UNIGINE \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0443\u044e \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044e \u2014 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/principles\/component_system\/component_system_cs\/?rlang=cpp\"><u>C# Component System<\/u><\/a> \u2014 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0430 .NET 5. \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b C# \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438, \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043e\u0442 <em>Component<\/em>, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043d\u043e\u0434\u0435 \u0432 \u0441\u0446\u0435\u043d\u0435. \u0416\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/principles\/component_system\/component_system_cs\/?rlang=cpp&amp;autotranslate=ru#structure_logic\"><u>\u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u0432<\/u><\/a> (<strong><em>Init()<\/em><\/strong>, <strong><em>Update()<\/em><\/strong> \u0438 \u0442. \u0434.), \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0434\u0432\u0438\u0436\u043a\u0430.<\/p>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 UNIGINE \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c C# \u043c\u0430\u043b\u043e \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 Unity. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u043c, \u043a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <strong>\u0432 Unity:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) using UnityEngine;  public class MyComponent : MonoBehaviour {     public float speed = 90.0f;      void Update()     {         transform.Rotate(0, speed * Time.deltaTime, 0, Space.Self);     } }<\/code><\/pre>\n<p><strong>\u0438 \u0432 UNIGINE:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) using Unigine; \/* .. *\/ public class MyComponent : Component {     public float speed = 90.0f;          void Update()     {         node.Rotate(0, 0, speed * Game.IFps);     } }<\/code><\/pre>\n<p>\u041a\u043d\u043e\u043f\u043a\u0430 \u0434\u043b\u044f <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/principles\/component_system\/component_system_cs\/?rlang=cpp#run\"><u>\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/u><\/a> \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u043a\u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 UnigineEditor. \u0422\u0430\u043a\u0436\u0435 \u0440\u044f\u0434\u043e\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u043f\u0443\u0441\u043a\u0430.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/48f\/85d\/00c\/48f85d00c4d8cc3f18d084379379546c.png\" alt=\"\" title=\"\" width=\"310\" height=\"107\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/48f\/85d\/00c\/48f85d00c4d8cc3f18d084379379546c.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412\u043e\u0442 \u043a\u0430\u043a \u043c\u044b \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043c \u043a\u043e\u043b\u0435\u0441\u043e \u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e C# Component System \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c:<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/628219b7b73444b4a1d3fdc6\" data-style=\"\" id=\"628219b7b73444b4a1d3fdc6\" width=\"\"><\/div>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/fundamentals\/execution_sequence\/app_logic_system?rlang=cpp\"><u>\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430<\/u><\/a> \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 UNIGINE \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 <strong><em>AppWorldLogic.cs<\/em><\/strong>, <strong><em>AppSystemLogic.cs<\/em><\/strong> \u0438 <strong><em>AppEditorLogic.cs<\/em><\/strong> \u0432 \u043f\u0430\u043f\u043a\u0435 <em>source <\/em>\u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u043d\u0438\u0436\u0435:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/fundamentals\/execution_sequence\/code_update?rlang=cpp\"><u>\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/youtu.be\/hHcUYQUlG00\"><u>\u0412\u0438\u0434\u0435\u043e\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e C# Component System<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/?rlang=cs&amp;autotranslate=ru\"><u>C# UNIGINE API<\/u><\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u0442 C++, UNIGINE \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/cpp\/application?rlang=cpp\"><u>\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f C++<\/u><\/a> \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0421++ UNIGINE API, \u0438, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/principles\/component_system\/component_system_cpp\/?rlang=cpp\"><u>C++ Component System<\/u><\/a>.<\/p>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430<\/h3>\n<h4>\u0412\u044b\u0432\u043e\u0434 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c<\/h4>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0443 ~, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Debug.Log(\"Text: \" + text);<\/code><\/p>\n<p align=\"left\"><code>Debug.LogFormat(\"Formatted text: {0}\", text);<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Log.Message(\"Debug info:\" + text + \"\\n\");<\/code><\/p>\n<p align=\"left\"><code>Log.Message(\"Debug info: {0}\\n\", new vec3(1, 2, 3));<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0421\u043c. \u0442\u0430\u043a\u0436\u0435:<\/h4>\n<ul>\n<li>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432 API \u043a\u043b\u0430\u0441\u0441\u0430 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/common\/class.log?rlang=cpp\"><em><u>Log<\/u><\/em><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/youtu.be\/6MUeatvw9v0\"><u>\u0412\u0438\u0434\u0435\u043e\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e<\/u><\/a>, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0435, \u043a\u0430\u043a \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e C# Component System<\/p>\n<\/li>\n<\/ul>\n<h4>\u0414\u043e\u0441\u0442\u0443\u043f \u043a GameObject \/ Node \u0438\u0437 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>GameObject this_go = gameObject;<\/code><\/p>\n<p align=\"left\"><code>string n = gameObject.name;<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Node this_node = node;<\/code><\/p>\n<p align=\"left\"><code>string n = node.Name;<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0421\u043c. \u0442\u0430\u043a\u0436\u0435:<\/h4>\n<ul>\n<li>\n<p><a href=\"https:\/\/youtu.be\/KjEGI311NiA\"><u>\u0412\u0438\u0434\u0435\u043e\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e<\/u><\/a>, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0435, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u043e\u0434\u0430\u043c \u0438\u0437 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e C# Component System<\/p>\n<\/li>\n<\/ul>\n<h3>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438<\/h3>\n<p>\u0412 Unity \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <strong><em>Transform <\/em><\/strong>\u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 Game Object, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e-\u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u0441\u0432\u044f\u0437\u0438. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u0435\u0439 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f GameObject \u0432 \u043c\u0438\u0440\u043e\u0432\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445, \u0432 Unity \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 <em>Transform<\/em>.<\/p>\n<p>\u0412 UNIGINE \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043d\u043e\u0434\u044b \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0435\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 (<a href=\"https:\/\/developer.unigine.com\/en\/docs\/latest\/api\/library\/math\/cs\/mat4?rlang=cpp\"><em><u>mat4<\/u><\/em><\/a>), \u0430 \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0435\u0439 \u043d\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043a\u043b\u0430\u0441\u0441\u0430 <a href=\"https:\/\/developer.unigine.com\/en\/docs\/2.15.1\/api\/library\/nodes\/class.node?rlang=cs\"><em><u>Node<\/u><\/em><\/a>. \u0422\u0430\u043a\u043e\u0439 \u0436\u0435 \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 UNIGINE \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/nodes\/class.node?rlang=cpp#getWorldDirection_int_vec3\"><em><u>Node.GetWorldDirection()<\/u><\/em><\/a>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Vector3 forward = transform.forward;<\/code><\/p>\n<p align=\"left\"><code>Vector3 right = transform.right;<\/code><\/p>\n<p align=\"left\"><code>Vector3 up = transform.up;<\/code><\/p>\n<p align=\"left\"><code>transform.Translate(forward * speed * Time.deltaTime);<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>vec3 forward = node.GetWorldDirection(MathLib.AXIS.Y);<\/code><\/p>\n<p align=\"left\"><code>vec3 right = node.GetWorldDirection(MathLib.AXIS.X);<\/code><\/p>\n<p align=\"left\"><code>vec3 up = node.GetWorldDirection(MathLib.AXIS.Z);<\/code><\/p>\n<p align=\"left\"><code>node.Translate(forward * speed * Game.IFps);<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0421\u043c. \u0442\u0430\u043a\u0436\u0435:<\/h4>\n<ul>\n<li>\n<p><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/fundamentals\/matrices\/index?rlang=cpp#coordinate_system\"><u>\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442<\/u><\/a> \u0432 UNIGINE<\/p>\n<\/li>\n<\/ul>\n<h3>\u0411\u043e\u043b\u0435\u0435 \u043f\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441 DeltaTime \/ IFps<\/h3>\n<p>\u0412 <em>Unity<\/em>, \u0447\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0437\u0430 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043a\u0430\u0434\u0440\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0438 \u0442. \u0434.), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c <strong>Time.deltaTime<\/strong> (\u0432\u0440\u0435\u043c\u044f \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043a\u0430\u0434\u0440\u0430). \u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0432 UNIGINE \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/engine\/class.game?rlang=cpp#getIFps_float\"><strong><u>Game.IFps<\/u><\/strong><\/a>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>transform.Rotate(0, speed *\u00a0 Time.deltaTime, 0, Space.Self);<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>node.Rotate(0, 0, speed * Game.IFps);<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0420\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<p><strong>Unity:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) Debug.DrawLine(Vector3.zero, new Vector3(5, 0, 0), Color.white, 2.5f);  Vector3 forward = transform.TransformDirection(Vector3.forward) * 10; Debug.DrawRay(transform.position, forward, Color.green);<\/code><\/pre>\n<p><strong>\u0412 UNIGINE<\/strong> \u0437\u0430 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0443 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0441\u0438\u043d\u0433\u043b\u0442\u043e\u043d <em>Visualizer<\/em>:<\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e  \/* .. *\/  Visualizer.Enabled = true;  Visualizer.RenderLine3D(vec3.ZERO, new vec3(5, 0, 0), vec4.ONE); Visualizer.RenderVector(node.Position, node.GetDirection(MathLib.AXIS.Y) * 10, new vec4(1, 0, 0, 1));<\/code><\/pre>\n<p><strong><em>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435.<\/em><\/strong><em> Visualizer \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <\/em><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/console\/?rlang=cpp#show_visualizer\"><em><u>show_visualizer 1<\/u><\/em><\/a><em>.<\/em><\/p>\n<h3>\u0421\u043c. \u0442\u0430\u043a\u0436\u0435:<\/h3>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u0442\u0438\u043f\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0432 API \u043a\u043b\u0430\u0441\u0441\u0430 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/engine\/class.visualizer?rlang=cpp\"><em><u>Visualizer<\/u><\/em><\/a>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0446\u0435\u043d\u044b<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>SceneManager.LoadScene(\"YourSceneName\",LoadSceneMode.Single);<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>World.LoadWorld(\"YourSceneName\");<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u0438\u0437 GameObject\/Node<\/h4>\n<p><strong>Unity:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) MyComponent my_component = gameObject.GetComponent&lt;MyComponent>();<\/code><\/pre>\n<p><strong>UNIGINE:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) MyComponent my_component = node.GetComponent&lt;MyComponent>(); MyComponent my_component = GetComponent&lt;MyComponent>(node);<\/code><\/pre>\n<h4>\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c<\/h4>\n<p>\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 <em>Unity<\/em> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u0430\u043a <em>MeshRenderer<\/em>, <em>Rigidbody<\/em>, <em>Collider<\/em>, <em>Transform<\/em> \u0438 \u0434\u0440\u0443\u0433\u0438\u0435, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b.<\/p>\n<p>\u0412 UNIGINE \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0430\u043d\u0430\u043b\u043e\u0433\u0430\u043c \u044d\u0442\u0438\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0430\u0447\u0435. \u041a\u043b\u0430\u0441\u0441\u044b \u0432\u0441\u0435\u0445 \u0442\u0438\u043f\u043e\u0432 \u043d\u043e\u0434 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u043c\u0438 \u043e\u0442 <a href=\"https:\/\/developer.unigine.com\/en\/docs\/latest\/api\/library\/nodes\/?rlang=cs\"><em><u>Node<\/u><\/em><\/a>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u043e\u0434\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <em>ObjectMeshStatic<\/em>), \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043f\u043e\u043d\u0438\u0436\u0430\u044e\u0449\u0435\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 (downcasting). \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044d\u0442\u0438 \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<p><strong>Unity:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 GameObject Transform transform_1 = gameObject.GetComponent&lt;Transform>(); Transform transform_2 = gameObject.transform;  \/\/ \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 Mesh Renderer MeshRenderer mesh_renderer = gameObject.GetComponent&lt;MeshRenderer>();  \/\/ \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 Rigidbody Rigidbody rigidbody = gameObject.GetComponent&lt;Rigidbody>();  \/\/ \u0434\u043e\u0441\u0442\u0443\u043f \u043a Collider Collider collider = gameObject.GetComponent&lt;Collider>(); BoxCollider boxCollider = collider as BoxCollider;<\/code><\/pre>\n<p><strong>UNIGINE:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043d\u043e\u0434\u044b \u0432 \u043c\u0438\u0440\u043e\u0432\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445 mat4 transform = node.WorldTransform; \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043d\u043e\u0434\u044b (\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f) mat4 local_transform = node.Transform;  \/\/ \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a \u0442\u0438\u043f\u0443 ObjectMeshStatic \u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 ObjectMeshStatic mesh_static = node as ObjectMeshStatic;  \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 BodyRigid, \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 Body body = (node as Unigine.Object).Body; BodyRigid rigid = body as BodyRigid;  \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u043e\u0440\u043c \u0442\u0438\u043f\u0430 ShapeBox for (int i = 0; i &lt; body.NumShapes; i++) {     Shape shape = body.GetShape(i);     if (shape is ShapeBox shapeBox)     {         ...     } }<\/code><\/pre>\n<h4>\u041f\u043e\u0438\u0441\u043a GameObject\/Node<\/h4>\n<p><strong>Unity:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/ \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0438\u043c\u0435\u043d\u0438 GameObject myGameObj = GameObject.Find(\"My Game Object\");  \/\/ \u041f\u043e\u0438\u0441\u043a \"ammo\" \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0433\u043e \u043a \"magazine\". Transform ammo_transform = gameObject.transform.Find(\"magazine\/ammo\"); GameObject ammo = ammo_transform.gameObject;  \/\/ \u041f\u043e\u0438\u0441\u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u0442\u0438\u043f\u0443 MyComponent[] components = Object.FindObjectsOfType&lt;MyComponent>(); foreach (MyComponent component in components) {         \/\/ ... }  \/\/ \u041f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u043e \u0442\u0435\u0433\u0443 GameObject[] taggedGameObjects = GameObject.FindGameObjectsWithTag(\"MyTag\"); foreach (GameObject gameObj in taggedGameObjects) {         \/\/ ... }<\/code><\/pre>\n<p><strong>UNIGINE:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/ \u041f\u043e\u0438\u0441\u043a \u043d\u043e\u0434\u044b \u043f\u043e \u0438\u043c\u0435\u043d\u0438 Node my_node = World.GetNodeByName(\"my_node\");  \/\/ \u041f\u043e\u0438\u0441\u043a \u0432\u0441\u0435\u0445 \u043d\u043e\u0434 \u0441 \u044d\u0442\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c List&lt;Node> nodes = new List&lt;Node>(); World.GetNodesByName(\"my_node\");  \/\/ \u041f\u043e\u0438\u0441\u043a \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0439 \u043d\u043e\u0434\u044b \u043f\u043e \u0438\u043c\u0435\u043d\u0438 int index = node.FindChild(\"child_node\"); Node direct_child = node.GetChild(index);  \/\/ \u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u043d\u043e\u0434\u044b \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 Node child = node.FindNode(\"child_node\", 1);  \/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0432 \u043c\u0438\u0440\u0435 \u043f\u043e \u0442\u0438\u043f\u0443 MyComponent[] my_comps = FindComponentsInWorld&lt;MyComponent>(); foreach(MyComponent comp in my_comps) {     Log.Message(\"{0}\\n\",comp.node.name); }<\/code><\/pre>\n<h4>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0442 \u0442\u0438\u043f\u0430 \u043a \u0442\u0438\u043f\u0443<\/h4>\n<p><strong>Downcasting <\/strong>(\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u043c\u0443) \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0432 \u043e\u0431\u043e\u0438\u0445 \u0434\u0432\u0438\u0436\u043a\u0430\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 C# <strong><em>as<\/em><\/strong>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Collider collider = gameObject.GetComponent&lt;Collider>;<\/code><\/p>\n<p align=\"left\"><code>BoxCollider boxCollider = collider as BoxCollider;<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Node node = World.GetNodeByName(\"my_mesh\");<\/code><\/p>\n<p align=\"left\"><code>ObjectMeshStatic mesh = node as ObjectMeshStatic;<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0427\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <strong>Upcasting<\/strong> (\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043a \u0431\u0430\u0437\u043e\u0432\u043e\u043c\u0443), \u043c\u043e\u0436\u043d\u043e \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Collider collider = gameObject.GetComponent&lt;Collider>;<\/code><\/p>\n<p align=\"left\"><code>BoxCollider boxCollider = collider as BoxCollider;<\/code><\/p>\n<p align=\"left\"><code>Collider coll = boxCollider;<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Node node = World.GetNodeByName(\"my_mesh\");<\/code><\/p>\n<p align=\"left\"><code>ObjectMeshStatic mesh = node as ObjectMeshStatic;<\/code><\/p>\n<p align=\"left\"><code>Unigine.Object obj = mesh;<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 GameObject\/Node<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Destroy(myGameObject);<\/code><\/p>\n<p align=\"left\"><code>\/\/ \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0432 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0443<\/code><\/p>\n<p align=\"left\"><code>Destroy(myGameObject, 1);<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>node.DeleteLater(); \/\/ \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442<\/code><\/p>\n<p align=\"left\"><code>\/\/ \u043d\u043e\u0434\u0430 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043a\u0430\u0434\u0440\u0430<\/code><\/p>\n<p align=\"left\"><code>node.DeleteForce(); \/\/ \u0444\u043e\u0440\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u043e\u0434\u044b \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0414\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0433\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0434\u044b \u0432 UNIGINE \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0442\u0430\u0439\u043c\u0435\u0440 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435.<\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/ LifetimeController.cs  \/* .. *\/ public class LifetimeController : Component {     public float lifetime = 5.0f;      void Update()     {         lifetime = lifetime - Game.IFps;         if (lifetime &lt; 0)         {             \/\/ \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0443\u044e \u043d\u043e\u0434\u0443 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c\u0438 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u043c\u0438             node.DeleteLater();         }     } }  \/\/ MyComponent.cs  \/* .. *\/ public class MyComponent : Component {      void Update()     {         if (\/* \u043f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f *\/)         {             LifetimeController lc = node.AddComponent&lt;LifetimeController>();             lc.lifetime = 2.0f;         }     } }<\/code><\/pre>\n<h4>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 GameObject \/ Node Reference<\/h4>\n<p><strong>\u0412 Unity<\/strong> \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043f\u0440\u0435\u0444\u0430\u0431\u0430 \u0438\u043b\u0438 \u043a\u043e\u043f\u0438\u044f \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u0432 \u0441\u0446\u0435\u043d\u0435 GameObject \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u0438 <em>Object.Instantiate<\/em>:<\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) using UnityEngine;  public class MyComponent : MonoBehaviour { public GameObject myPrefab;  void Start() {     Instantiate(myPrefab, new Vector3(0, 0, 0), Quaternion.identity); } }<\/code><\/pre>\n<p>\u0417\u0430\u0442\u0435\u043c \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0440\u0435\u0444\u0430\u0431, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u043d, \u0432 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b10\/da4\/48a\/b10da448abcfd3b975df6cade8513c1a.png\" alt=\"\" title=\"\" width=\"700\" height=\"255\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b10\/da4\/48a\/b10da448abcfd3b975df6cade8513c1a.png\"\/><figcaption><\/figcaption><\/figure>\n<p><strong>\u0412 UNIGINE<\/strong> \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u043d\u043e\u0434\u0435 \u043b\u044e\u0431\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/common\/logic\/component_system\/cs\/class.component?rlang=cpp#parameters\"><u>\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/u><\/a>, \u0438 \u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 <a href=\"https:\/\/developer.unigine.com\/en\/docs\/2.15.1\/api\/library\/nodes\/class.node?rlang=cs#clone_Node\"><em><u>Node.Clone()<\/u><\/em><\/a>.<\/p>\n<p>\u041d\u043e \u0430\u0441\u0441\u0435\u0442\u044b \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u043e\u0434\u0430\u043c\u0438, \u043e\u043d\u0438 \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435. \u041a \u0430\u0441\u0441\u0435\u0442\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u044d\u0442\u0438 \u0442\u0438\u043f\u044b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/developer.unigine.com\/en\/docs\/latest\/api\/library\/common\/logic\/component_system\/cs\/class.assetlink?rlang=cpp\"><em><u>AssetLink<\/u><\/em><\/a> \u2014 \u0434\u043b\u044f \u043b\u044e\u0431\u044b\u0445 \u0430\u0441\u0441\u0435\u0442\u043e\u0432,<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/developer.unigine.com\/en\/docs\/latest\/api\/library\/common\/logic\/component_system\/cs\/class.assetlinknode?rlang=cpp\"><em><u>AssetLinkNode<\/u><\/em><\/a> \u2014 \u0434\u043b\u044f \u0430\u0441\u0441\u0435\u0442\u043e\u0432 *.node, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u044e \u043d\u043e\u0434, \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u043d\u0443\u044e \u043a\u0430\u043a<em> Node Reference<\/em> (\u0430\u043d\u0430\u043b\u043e\u0433 prefab).<\/p>\n<\/li>\n<\/ul>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0430\u0441\u0441\u0435\u0442, \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e Unity, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 UnigineEditor:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1fd\/2e7\/c6b\/1fd2e7c6b0813eb56ca92bc66d042732.png\" alt=\"\" title=\"\" width=\"682\" height=\"415\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1fd\/2e7\/c6b\/1fd2e7c6b0813eb56ca92bc66d042732.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/engine\/class.world?rlang=cpp#loadNode_cstr_int_Node\"><em><u>World.LoadNode<\/u><\/em><\/a> \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u043d\u043e\u0434 \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0443\u043a\u0430\u0437\u0430\u0432 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/principles\/filesystem\/?rlang=cpp#virtual_paths\"><u>\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c<\/u><\/a> \u043a \u0430\u0441\u0441\u0435\u0442\u0443.<\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/* .. *\/ public class MyComponent : Component { public Node node_to_clone;     public AssetLinkNode node_to_spawn;          private void Init()     {         Node cloned = node_to_clone.Clone();         Node spawned = node_to_spawn.Load(node.WorldPosition, quat.IDENTITY);          Node spawned_manually = World.LoadNode(\"nodes\/node_reference.node\");     } }<\/code><\/pre>\n<p>\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0430\u0441\u0441\u0435\u0442\u0430 <em>*.node <\/em>\u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c NodeReference \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0435\u0439 \u043d\u043e\u0434 \u043a\u0430\u043a \u0441 \u043e\u0434\u043d\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c. \u0422\u0438\u043f Node Reference \u0438\u043c\u0435\u0435\u0442 \u0440\u044f\u0434 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439 \u0438 \u0442\u043e\u043d\u043a\u0438\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432 (\u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u043e\u0434, \u0440\u0430\u0441\u043f\u0430\u043a\u043e\u0432\u043a\u0430 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0438 \u0442.\u0434.), \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u0436\u043d\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c <a href=\"https:\/\/developer.unigine.com\/en\/docs\/latest\/api\/library\/nodes\/class.nodereference?rlang=cpp\"><u>\u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b<\/u><\/a> \u0441 \u044d\u0442\u0438\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438.<\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/* .. *\/ public class MyComponent : Component {     void Init()     {         NodeReference nodeRef = new NodeReference(\"nodes\/node_reference_0.node\");     } }<\/code><\/pre>\n<h3>\u0417\u0430\u043f\u0443\u0441\u043a \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435<\/h3>\n<p><em>Unity<\/em> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e C# \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b:<\/p>\n<ul>\n<li>\n<p><strong><em>[ExecuteInEditMode]<\/em><\/strong> \u2014 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u0438\u043a\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <strong>Edit<\/strong>, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e.<\/p>\n<\/li>\n<li>\n<p><strong><em>[ExecuteAlways]<\/em><\/strong> \u2014 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043b\u043e\u0433\u0438\u043a\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043a\u0430\u043a \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 <strong>Play<\/strong>, \u0442\u0430\u043a \u0438 \u043f\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u043e\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 <em>GameObject<\/em> \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432 \u0441\u0446\u0435\u043d\u0435:<\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/C# Example (LookAtPoint.cs) using UnityEngine; [ExecuteInEditMode] public class LookAtPoint : MonoBehaviour {     public Vector3 lookAtPoint = Vector3.zero;      void Update()     {         transform.LookAt(lookAtPoint);     } }<\/code><\/pre>\n<p>UNIGINE \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u0438\u043a\u0438 C# \u0432\u043d\u0443\u0442\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430 \u2014 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/editor2\/extensions\/?rlang=cpp&amp;autotranslate=ru\"><u>\u043f\u043b\u0430\u0433\u0438\u043d\u044b, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 <\/u><em><u>C++<\/u><\/em><\/a>.<\/p>\n<p>\u0414\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u043d\u0430 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/uniginescript\/?rlang=cpp\"><em><u>UnigineScript<\/u><\/em><\/a>. <em>UnigineScript API <\/em>\u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0439 \u0441\u0444\u0435\u0440\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043d\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430 UNIGINE, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u043d\u0430 .NET 5.<\/p>\n<p>\u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/uniginescript\/add_scripts\/?rlang=cpp\"><u>\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442<\/u><\/a>:<\/p>\n<ul>\n<li>\n<p><strong>\u0421\u043e\u0437\u0434\u0430\u0432 \u0441\u043a\u0440\u0438\u043f\u0442 \u043c\u0438\u0440\u0430:<\/strong><\/p>\n<\/li>\n<\/ul>\n<ol>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0430\u0441\u0441\u0435\u0442 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 <strong><em>.usc<\/em><\/strong>.<\/p>\n<\/li>\n<\/ol>\n<p><\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/320\/b27\/072\/320b27072c8792965a657677d3284c53.png\" alt=\"\" title=\"\" width=\"277\" height=\"202\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/320\/b27\/072\/320b27072c8792965a657677d3284c53.png\"\/><figcaption><\/figcaption><\/figure>\n<ol start=\"2\">\n<li>\n<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u0432 \u043d\u0435\u043c \u043b\u043e\u0433\u0438\u043a\u0443. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443, \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u043b\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440:<\/p>\n<\/li>\n<\/ol>\n<pre><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (UnigineScript) #include &lt;core\/unigine.h> vec3 lookAtPoint = vec3_zero; Node node; int init() {     node = engine.world.getNodeByName(\"material_ball\");     return 1; } int update() { if(engine.editor.isLoaded())         node.worldLookAt(lookAtPoint);     return 1; }<\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p>\u0412\u044b\u0434\u0435\u043b\u0438\u0442\u0435 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u0438\u0440 \u0438 \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043c\u0438\u0440\u0430. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 <em>Apply<\/em> \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043c\u0438\u0440.<\/p>\n<\/li>\n<\/ol>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b25\/571\/3f8\/b255713f816ffb6e6b038b69f21c503e.png\" alt=\"\" title=\"\" width=\"528\" height=\"404\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b25\/571\/3f8\/b255713f816ffb6e6b038b69f21c503e.png\"\/><figcaption><\/figcaption><\/figure>\n<ol start=\"4\">\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043e\u043a\u043d\u043e <em>\u043a\u043e\u043d\u0441\u043e\u043b\u0438<\/em> \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043b\u043e\u0433\u0438\u043a\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435, \u0442\u0430\u043a \u0438 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438.<\/p>\n<ul>\n<li>\n<p><strong><em>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f WorldExpression.<\/em><\/strong> \u0421 \u0442\u043e\u0439 \u0436\u0435 \u0446\u0435\u043b\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0434\u0443 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/uniginescript\/add_scripts\/?rlang=cpp\"><em><u>WorldExpression<\/u><\/em><\/a>, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0432 \u043c\u0438\u0440:<\/p>\n<\/li>\n<\/ul>\n<ol>\n<li>\n<p>\u041d\u0430\u0436\u043c\u0438\u0442\u0435 <em>Create -> Logic -> Expression<\/em> \u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u043d\u043e\u0434\u0443 WorldExpression \u0432 \u043c\u0438\u0440.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u043b\u043e\u0433\u0438\u043a\u0443 \u043d\u0430 <em>UnigineScript<\/em> \u0432 \u043f\u043e\u043b\u0435 <strong>Source<\/strong>:<\/p>\n<\/li>\n<\/ol>\n<pre><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (UnigineScript) #include &lt;core\/unigine.h> vec3 lookAtPoint = vec3_zero; Node node; int init() {     node = engine.world.getNodeByName(\"material_ball\");     return 1; } int update() { if(engine.editor.isLoaded())         node.worldLookAt(lookAtPoint);     return 1; }<\/code><\/pre>\n<ol start=\"3\">\n<li>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043e\u043a\u043d\u043e <em>Console<\/em> \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<\/li>\n<li>\n<p>\u041b\u043e\u0433\u0438\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0430 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e.<\/p>\n<\/li>\n<\/ol>\n<h3>\u0422\u0440\u0438\u0433\u0433\u0435\u0440\u044b<\/h3>\n<p>\u041f\u043e\u043c\u0438\u043c\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0439, \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <strong>Collider<\/strong> \u0432 Unity \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d \u043a\u0430\u043a <em>\u0442\u0440\u0438\u0433\u0433\u0435\u0440<\/em>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442, \u043a\u043e\u0433\u0434\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043b\u043b\u0430\u0439\u0434\u0435\u0440 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043c.<\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) public class MyComponent : MonoBehaviour {     void Start()     {         collider.isTrigger = true;     }     void OnTriggerEnter(Collider other)     {         \/\/ ...     }     void OnTriggerExit(Collider other)     {         \/\/ ...     } }<\/code><\/pre>\n<p>\u0412 UNIGINE <em>Trigger<\/em> \u2014 \u044d\u0442\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043f \u043d\u043e\u0434, \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/nodes\/class.nodetrigger?rlang=cpp\"><strong><u>NodeTrigger<\/u><\/strong><\/a> \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0431\u044d\u043a \u043f\u0440\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/nodes\/class.nodetrigger?rlang=cs#addEnabledCallback_EnabledCallback_void_ptr\"><u>\u0432\u043a\u043b\u044e\u0447\u0435\u043d\/\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d<\/u><\/a> \u0438 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/nodes\/class.nodetrigger?rlang=cs#addPositionCallback_PositionCallback_void_ptr\"><u>\u043f\u043e\u0437\u0438\u0446\u0438\u0438<\/u><\/a> \u0441\u0430\u043c\u043e\u0439 \u043d\u043e\u0434\u044b.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/worlds\/class.worldtrigger?rlang=cpp\"><strong><u>WorldTrigger<\/u><\/strong><\/a> \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0431\u044d\u043a, \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u043a\u0430\u044f-\u043b\u0438\u0431\u043e \u043d\u043e\u0434\u0430 (\u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u0438\u043f\u0430) \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/worlds\/class.worldtrigger?rlang=cs#addEnterCallback_EnterCallback_void_ptr\"><u>\u0432\u043d\u0443\u0442\u0440\u044c<\/u><\/a> \u0438\u043b\u0438 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/worlds\/class.worldtrigger?rlang=cs#addLeaveCallback_LeaveCallback_void_ptr\"><u>\u0437\u0430 \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0435\u043b\u044b<\/u><\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/physics\/class.physicaltrigger?rlang=cpp\"><strong><u>PhysicalTrigger<\/u><\/strong><\/a> \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u043a\u043e\u043b\u043b\u0431\u044d\u043a, \u043a\u043e\u0433\u0434\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/physics\/class.physicaltrigger?rlang=cs#addEnterCallback_EnterCallback_void_ptr\"><u>\u0432\u043d\u0443\u0442\u0440\u044c<\/u><\/a> \u0438\u043b\u0438 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/physics\/class.physicaltrigger?rlang=cs#addLeaveCallback_LeaveCallback_void_ptr\"><u>\u043d\u0430\u0440\u0443\u0436\u0443<\/u><\/a> \u0435\u0433\u043e \u043f\u0440\u0435\u0434\u0435\u043b\u043e\u0432.<\/p>\n<\/li>\n<\/ul>\n<p><strong><em>\u0412\u0430\u0436\u043d\u043e!<\/em><\/strong><em> PhysicalTrigger \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u043e\u043b\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u044f, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e <\/em><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/fundamentals\/callbacks\/index?rlang=cpp#physics\"><em><u>\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0435\u043b\u0430 \u0438 \u0441\u043e\u0447\u043b\u0435\u043d\u0435\u043d\u0438\u044f<\/u><\/em><\/a><em> \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u0432\u043e\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f.<\/em><\/p>\n<p><strong>WorldTrigger<\/strong> \u2014 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u043d\u044b\u0439 \u0442\u0438\u043f \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0435:<\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/* .. *\/ class MyComponent : Component {     WorldTrigger trigger;      void enter_callback(Node incomer)     {         Log.Message(\"\\n{0} has entered the trigger space\\n\", incomer.Name);     }      void Init()     {         trigger = node as WorldTrigger;         if(trigger != null)         {             trigger.AddEnterCallback(enter_callback);             trigger.AddLeaveCallback( leaver => Log.Message(\"{0} has left the trigger space\", leaver.Name));         }     } }<\/code><\/pre>\n<h3>\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0432\u043e\u0434\u0430<\/h3>\n<p>\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u0432\u0432\u043e\u0434 <strong>Unity:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) public class MyPlayerController : MonoBehaviour {     void Update()     {         if (Input.GetButtonDown(\"Fire\"))         {             \/\/ ...         }         float horizontal = Input.GetAxis(\"Horizontal\");         float vertical = Input.GetAxis(\"Vertical\");         \/\/ ...     } }<\/code><\/pre>\n<p><strong>UNIGINE:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/* .. *\/ class MyPlayerController : Component {     void Update()     {         if(Input.IsMouseButtonDown(Input.MOUSE_BUTTON.LEFT))         {             Log.Message(\"Left mouse button was clicked at {0}\\n\", Input.MouseCoord);         }          if (Input.IsKeyDown(Input.KEY.Q) &amp;&amp; !Unigine.Console.Activity)         {             Log.Message(\"Q was pressed and the Console is not active.\\n\");             App.Exit();         }     } }<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0438\u043d\u0433\u043b\u0442\u043e\u043d <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/controls\/class.controlsapp?rlang=cpp\"><strong><u>ControlsApp<\/u><\/strong><\/a> \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f\u043c. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438, \u043e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/editor2\/settings\/controls\/?rlang=cpp\"><em><u>Controls<\/u><\/em><\/a>:<\/p>\n<pre><code class=\"cs\">\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/* .. *\/ class MyPlayerController : Component {     void Init()     {         \/\/ \u043f\u0435\u0440\u0435\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0439 \u043a\u043b\u0430\u0432\u0438\u0448\u0430\u043c \u0438 \u043a\u043d\u043e\u043f\u043a\u0430\u043c \u0432\u0440\u0443\u0447\u043d\u0443\u044e         ControlsApp.SetStateKey(Controls.STATE_FORWARD, 'w');         ControlsApp.SetStateKey(Controls.STATE_BACKWARD, 's');         ControlsApp.SetStateKey(Controls.STATE_MOVE_LEFT, 'a');         ControlsApp.SetStateKey(Controls.STATE_MOVE_RIGHT, 'd');         ControlsApp.SetStateButton(Controls.STATE_JUMP, App.BUTTON_LEFT);     }     void Update()     {         if (ControlsApp.ClearState(Controls.STATE_FORWARD) != 0)         {             Log.Message(\"FORWARD key pressed\\n\");         }         else if (ControlsApp.ClearState(Controls.STATE_BACKWARD) != 0)         {             Log.Message(\"BACKWARD key pressed\\n\");         }         else if (ControlsApp.ClearState(Controls.STATE_MOVE_LEFT) != 0)         {             Log.Message(\"MOVE_LEFT key pressed\\n\");         }         else if (ControlsApp.ClearState(Controls.STATE_MOVE_RIGHT) != 0)         {             Log.Message(\"MOVE_RIGHT key pressed\\n\");         }         else if (ControlsApp.ClearState(Controls.STATE_JUMP) != 0)         {             Log.Message(\"JUMP button pressed\\n\");         }     } }<\/code><\/pre>\n<h3>\u0420\u0435\u0439\u043a\u0430\u0441\u0442\u0438\u043d\u0433<\/h3>\n<p>\u0414\u043b\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u0439 \u043b\u0443\u0447\u0435\u0439 \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0432 <em>Unity<\/em> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f <em>Physics.Raycast<\/em>. <em>GameObject<\/em> \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <em>Collider<\/em> \u0434\u043b\u044f \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u0432 \u0440\u0435\u0439\u043a\u0430\u0441\u0442\u0438\u043d\u0433\u0435:<\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) using UnityEngine; public class ExampleClass : MonoBehaviour {     public Camera camera;      void Update()     {         \/\/ \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u043c 2 \u0441\u043b\u043e\u0439         int layerMask = 1 &lt;&lt; 2;         layerMask = ~layerMask;          RaycastHit hit;         Ray ray = camera.ScreenPointToRay(Input.mousePosition);         if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask))         {             Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * hit.distance, Color.yellow);             Debug.Log(\"Did Hit\");         }         else         {             Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * 1000, Color.white);             Debug.Log(\"Did not Hit\");         }     } }<\/code><\/pre>\n<p>\u0412 UNIGINE \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/usage\/intersections\/index?rlang=cpp\"><u>Intersections<\/u><\/a>:<\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/* .. *\/ class IntersectionExample : Component {     void Init()     {         Visualizer.Enabled = true;     }     void Update()     {         ivec2 mouse = Input.MouseCoord;         float length = 100.0f;         vec3 start = Game.Player.WorldPosition;         vec3 end = start + new vec3(Game.Player.GetDirectionFromScreen(mouse.x, mouse.y)) * length;          \/\/ \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u043c \u043f\u043e\u0432\u0435\u0440\u0445\u043d\u043e\u0441\u0442\u0438 \u043c\u0435\u0448\u0435\u0439 \u0441 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0431\u0438\u0442\u0430\u043c\u0438 \u043c\u0430\u0441\u043a\u0438 Intersection         int mask = ~(1 &lt;&lt; 2 | 1 &lt;&lt; 4);          WorldIntersectionNormal intersection = new WorldIntersectionNormal();          Unigine.Object obj = World.GetIntersection(start, end, mask, intersection);          if (obj)         {             vec3 point = intersection.Point;             vec3 normal = intersection.Normal;             Visualizer.RenderVector(point, point + normal, vec4.ONE);             Log.Message(\"Hit {0} at {1}\\n\", obj.Name, point);         }     } }<\/code><\/pre>\n<h4>* * *<\/h4>\n<p>\u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 UNIGINE 2 Community \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0432 <a href=\"https:\/\/unigine.com\/ru\/get-unigine\/sign-up-free\"><u>\u0444\u043e\u0440\u043c\u0443<\/u><\/a> \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u0441\u0430\u0439\u0442\u0435.<\/p>\n<p>\u0412\u0441\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430\u0446\u0438\u0438 UNIGINE:<\/p>\n<ul>\n<li>\n<p><strong>Community<\/strong> \u2014 \u0431\u0430\u0437\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0434\u043b\u044f \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u0438\u0434\u0435\u043e\u0438\u0433\u0440 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0436\u0430\u043d\u0440\u043e\u0432 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f VR).<\/p>\n<\/li>\n<li>\n<p><strong>Engineering<\/strong> \u2014 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f. \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043e\u043a \u0434\u043b\u044f \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447.<\/p>\n<\/li>\n<li>\n<p><strong>Sim<\/strong> \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u043f\u043e\u0434 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b (\u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432 \u043f\u043b\u0430\u043d\u0435\u0442\u044b \u0438 \u0434\u0430\u0436\u0435 \u0431\u043e\u043b\u044c\u0448\u0435) \u0441 \u0433\u043e\u0442\u043e\u0432\u044b\u043c\u0438 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430\u043c\u0438 \u0441\u0438\u043c\u0443\u043b\u044f\u0446\u0438\u0438.<\/p>\n<\/li>\n<\/ul>\n<p><a href=\"https:\/\/unigine.com\/ru\/get-unigine\"><strong><u>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0430\u0446\u0438\u044f\u0445 \u0438 \u0446\u0435\u043d\u0430\u0445<\/u><\/strong><\/a><\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/unigine\/blog\/665886\/\"> https:\/\/habr.com\/ru\/company\/unigine\/blog\/665886\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<h4>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438, \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435, \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u044b, \u0432\u0432\u043e\u0434, \u0440\u0435\u0439\u043a\u0430\u0441\u0442\u0438\u043d\u0433 \u0438 \u0434\u0440\u0443\u0433\u043e\u0435.<\/h4>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0438\u0449\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 \u043e\u0442\u0435\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 Unity \u0438\u043b\u0438 Unreal Engine, \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0446\u0438\u043a\u043b \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e \u0431\u0435\u0437\u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 UNIGINE \u0441 \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432. \u0412 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044e \u0441 Unity \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u0430.<\/p>\n<h3>\u041e\u0431\u0449\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f<\/h3>\n<p>\u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e \u0438\u0433\u0440\u043e\u0432\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 <em>Unity<\/em> \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u2014 <em>C# <\/em>\u043a\u043b\u0430\u0441\u0441\u044b, \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 <em>MonoBehaviour<\/em>. \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0432 \u0441\u043e\u0431\u044b\u0442\u0438\u0439\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u0430\u0445 <strong><em>Start()<\/em><\/strong>, <strong><em>Update()<\/em><\/strong> \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>UNIGINE \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u0445\u043e\u0436\u0443\u044e \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044e \u2014 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/principles\/component_system\/component_system_cs\/?rlang=cpp\"><u>C# Component System<\/u><\/a> \u2014 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043d\u0430 .NET 5. \u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b C# \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438, \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043e\u0442 <em>Component<\/em>, \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u043d\u043e\u0434\u0435 \u0432 \u0441\u0446\u0435\u043d\u0435. \u0416\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0446\u0438\u043a\u043b \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/principles\/component_system\/component_system_cs\/?rlang=cpp&amp;autotranslate=ru#structure_logic\"><u>\u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u0432<\/u><\/a> (<strong><em>Init()<\/em><\/strong>, <strong><em>Update()<\/em><\/strong> \u0438 \u0442. \u0434.), \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0445 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0446\u0438\u043a\u043b\u0435 \u0434\u0432\u0438\u0436\u043a\u0430.<\/p>\n<p>\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 UNIGINE \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c C# \u043c\u0430\u043b\u043e \u0447\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 Unity. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0440\u0430\u0432\u043d\u0438\u043c, \u043a\u0430\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 <strong>\u0432 Unity:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) using UnityEngine;  public class MyComponent : MonoBehaviour {     public float speed = 90.0f;      void Update()     {         transform.Rotate(0, speed * Time.deltaTime, 0, Space.Self);     } }<\/code><\/pre>\n<p><strong>\u0438 \u0432 UNIGINE:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) using Unigine; \/* .. *\/ public class MyComponent : Component {     public float speed = 90.0f;          void Update()     {         node.Rotate(0, 0, speed * Game.IFps);     } }<\/code><\/pre>\n<p>\u041a\u043d\u043e\u043f\u043a\u0430 \u0434\u043b\u044f <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/principles\/component_system\/component_system_cs\/?rlang=cpp#run\"><u>\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/u><\/a> \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u043a\u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 UnigineEditor. \u0422\u0430\u043a\u0436\u0435 \u0440\u044f\u0434\u043e\u043c \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0437\u0430\u043f\u0443\u0441\u043a\u0430.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u043e\u0442 \u043a\u0430\u043a \u043c\u044b \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043c \u043a\u043e\u043b\u0435\u0441\u043e \u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e C# Component System \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440, \u0447\u0442\u043e\u0431\u044b \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0435\u0433\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c:<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/628219b7b73444b4a1d3fdc6\" data-style=\"\" id=\"628219b7b73444b4a1d3fdc6\" width=\"\"><\/div>\n<p>\u0411\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/fundamentals\/execution_sequence\/app_logic_system?rlang=cpp\"><u>\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u0430\u044f \u043b\u043e\u0433\u0438\u043a\u0430<\/u><\/a> \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 UNIGINE \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0430 \u0432 \u0444\u0430\u0439\u043b\u0430\u0445 <strong><em>AppWorldLogic.cs<\/em><\/strong>, <strong><em>AppSystemLogic.cs<\/em><\/strong> \u0438 <strong><em>AppEditorLogic.cs<\/em><\/strong> \u0432 \u043f\u0430\u043f\u043a\u0435 <em>source <\/em>\u043f\u0440\u043e\u0435\u043a\u0442\u0430.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0430\u043c \u043d\u0438\u0436\u0435:<\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/fundamentals\/execution_sequence\/code_update?rlang=cpp\"><u>\u041f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/youtu.be\/hHcUYQUlG00\"><u>\u0412\u0438\u0434\u0435\u043e\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e C# Component System<\/u><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/?rlang=cs&amp;autotranslate=ru\"><u>C# UNIGINE API<\/u><\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0438\u0442\u0430\u0435\u0442 C++, UNIGINE \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/cpp\/application?rlang=cpp\"><u>\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f C++<\/u><\/a> \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0421++ UNIGINE API, \u0438, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/principles\/component_system\/component_system_cpp\/?rlang=cpp\"><u>C++ Component System<\/u><\/a>.<\/p>\n<h3>\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u043a\u043e\u0434\u0430<\/h3>\n<h4>\u0412\u044b\u0432\u043e\u0434 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c<\/h4>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0443 ~, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Debug.Log(\"Text: \" + text);<\/code><\/p>\n<p align=\"left\"><code>Debug.LogFormat(\"Formatted text: {0}\", text);<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Log.Message(\"Debug info:\" + text + \"\\n\");<\/code><\/p>\n<p align=\"left\"><code>Log.Message(\"Debug info: {0}\\n\", new vec3(1, 2, 3));<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0421\u043c. \u0442\u0430\u043a\u0436\u0435:<\/h4>\n<ul>\n<li>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0432 API \u043a\u043b\u0430\u0441\u0441\u0430 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/common\/class.log?rlang=cpp\"><em><u>Log<\/u><\/em><\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/youtu.be\/6MUeatvw9v0\"><u>\u0412\u0438\u0434\u0435\u043e\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e<\/u><\/a>, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0435, \u043a\u0430\u043a \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e C# Component System<\/p>\n<\/li>\n<\/ul>\n<h4>\u0414\u043e\u0441\u0442\u0443\u043f \u043a GameObject \/ Node \u0438\u0437 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>GameObject this_go = gameObject;<\/code><\/p>\n<p align=\"left\"><code>string n = gameObject.name;<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Node this_node = node;<\/code><\/p>\n<p align=\"left\"><code>string n = node.Name;<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0421\u043c. \u0442\u0430\u043a\u0436\u0435:<\/h4>\n<ul>\n<li>\n<p><a href=\"https:\/\/youtu.be\/KjEGI311NiA\"><u>\u0412\u0438\u0434\u0435\u043e\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e<\/u><\/a>, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0449\u0435\u0435, \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043d\u043e\u0434\u0430\u043c \u0438\u0437 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e C# Component System<\/p>\n<\/li>\n<\/ul>\n<h3>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c\u0438<\/h3>\n<p>\u0412 Unity \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 <strong><em>Transform <\/em><\/strong>\u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044e, \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 Game Object, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e-\u0434\u043e\u0447\u0435\u0440\u043d\u0438\u0435 \u0441\u0432\u044f\u0437\u0438. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u0435\u0439 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f GameObject \u0432 \u043c\u0438\u0440\u043e\u0432\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445, \u0432 Unity \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 <em>Transform<\/em>.<\/p>\n<p>\u0412 UNIGINE \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043d\u043e\u0434\u044b \u0432 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 \u0435\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u0435\u0439 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 (<a href=\"https:\/\/developer.unigine.com\/en\/docs\/latest\/api\/library\/math\/cs\/mat4?rlang=cpp\"><em><u>mat4<\/u><\/em><\/a>), \u0430 \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0435\u0439 \u043d\u043e\u0434 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u0438 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043a\u043b\u0430\u0441\u0441\u0430 <a href=\"https:\/\/developer.unigine.com\/en\/docs\/2.15.1\/api\/library\/nodes\/class.node?rlang=cs\"><em><u>Node<\/u><\/em><\/a>. \u0422\u0430\u043a\u043e\u0439 \u0436\u0435 \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 UNIGINE \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/nodes\/class.node?rlang=cpp#getWorldDirection_int_vec3\"><em><u>Node.GetWorldDirection()<\/u><\/em><\/a>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Vector3 forward = transform.forward;<\/code><\/p>\n<p align=\"left\"><code>Vector3 right = transform.right;<\/code><\/p>\n<p align=\"left\"><code>Vector3 up = transform.up;<\/code><\/p>\n<p align=\"left\"><code>transform.Translate(forward * speed * Time.deltaTime);<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>vec3 forward = node.GetWorldDirection(MathLib.AXIS.Y);<\/code><\/p>\n<p align=\"left\"><code>vec3 right = node.GetWorldDirection(MathLib.AXIS.X);<\/code><\/p>\n<p align=\"left\"><code>vec3 up = node.GetWorldDirection(MathLib.AXIS.Z);<\/code><\/p>\n<p align=\"left\"><code>node.Translate(forward * speed * Game.IFps);<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0421\u043c. \u0442\u0430\u043a\u0436\u0435:<\/h4>\n<ul>\n<li>\n<p><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/fundamentals\/matrices\/index?rlang=cpp#coordinate_system\"><u>\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442<\/u><\/a> \u0432 UNIGINE<\/p>\n<\/li>\n<\/ul>\n<h3>\u0411\u043e\u043b\u0435\u0435 \u043f\u043b\u0430\u0432\u043d\u044b\u0439 \u0438\u0433\u0440\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441 DeltaTime \/ IFps<\/h3>\n<p>\u0412 <em>Unity<\/em>, \u0447\u0442\u043e\u0431\u044b \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u0437\u0430 \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043a\u0430\u0434\u0440\u043e\u0432 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0438 \u0442. \u0434.), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c <strong>Time.deltaTime<\/strong> (\u0432\u0440\u0435\u043c\u044f \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0434\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043a\u0430\u0434\u0440\u0430). \u0422\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0432 UNIGINE \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/engine\/class.game?rlang=cpp#getIFps_float\"><strong><u>Game.IFps<\/u><\/strong><\/a>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>transform.Rotate(0, speed *\u00a0 Time.deltaTime, 0, Space.Self);<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>node.Rotate(0, 0, speed * Game.IFps);<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0420\u0438\u0441\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445<\/h4>\n<p><strong>Unity:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) Debug.DrawLine(Vector3.zero, new Vector3(5, 0, 0), Color.white, 2.5f);  Vector3 forward = transform.TransformDirection(Vector3.forward) * 10; Debug.DrawRay(transform.position, forward, Color.green);<\/code><\/pre>\n<p><strong>\u0412 UNIGINE<\/strong> \u0437\u0430 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u043a\u0443 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0441\u0438\u043d\u0433\u043b\u0442\u043e\u043d <em>Visualizer<\/em>:<\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/\u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e  \/* .. *\/  Visualizer.Enabled = true;  Visualizer.RenderLine3D(vec3.ZERO, new vec3(5, 0, 0), vec4.ONE); Visualizer.RenderVector(node.Position, node.GetDirection(MathLib.AXIS.Y) * 10, new vec4(1, 0, 0, 1));<\/code><\/pre>\n<p><strong><em>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435.<\/em><\/strong><em> Visualizer \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b <\/em><a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/code\/console\/?rlang=cpp#show_visualizer\"><em><u>show_visualizer 1<\/u><\/em><\/a><em>.<\/em><\/p>\n<h3>\u0421\u043c. \u0442\u0430\u043a\u0436\u0435:<\/h3>\n<ul>\n<li>\n<p>\u0412\u0441\u0435 \u0442\u0438\u043f\u044b \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 \u0432 API \u043a\u043b\u0430\u0441\u0441\u0430 <a href=\"https:\/\/developer.unigine.com\/ru\/docs\/latest\/api\/library\/engine\/class.visualizer?rlang=cpp\"><em><u>Visualizer<\/u><\/em><\/a>.<\/p>\n<\/li>\n<\/ul>\n<h4>\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0446\u0435\u043d\u044b<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>SceneManager.LoadScene(\"YourSceneName\",LoadSceneMode.Single);<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>World.LoadWorld(\"YourSceneName\");<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u0438\u0437 GameObject\/Node<\/h4>\n<p><strong>Unity:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) MyComponent my_component = gameObject.GetComponent&lt;MyComponent>();<\/code><\/pre>\n<p><strong>UNIGINE:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) MyComponent my_component = node.GetComponent&lt;MyComponent>(); MyComponent my_component = GetComponent&lt;MyComponent>(node);<\/code><\/pre>\n<h4>\u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c<\/h4>\n<p>\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 <em>Unity<\/em> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u0430\u043a <em>MeshRenderer<\/em>, <em>Rigidbody<\/em>, <em>Collider<\/em>, <em>Transform<\/em> \u0438 \u0434\u0440\u0443\u0433\u0438\u0435, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b.<\/p>\n<p>\u0412 UNIGINE \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0430\u043d\u0430\u043b\u043e\u0433\u0430\u043c \u044d\u0442\u0438\u0445 \u0441\u0443\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0438\u043d\u0430\u0447\u0435. \u041a\u043b\u0430\u0441\u0441\u044b \u0432\u0441\u0435\u0445 \u0442\u0438\u043f\u043e\u0432 \u043d\u043e\u0434 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u044b\u043c\u0438 \u043e\u0442 <a href=\"https:\/\/developer.unigine.com\/en\/docs\/latest\/api\/library\/nodes\/?rlang=cs\"><em><u>Node<\/u><\/em><\/a>, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u043e\u0434\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <em>ObjectMeshStatic<\/em>), \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0441\u0442\u0438 \u043f\u043e\u043d\u0438\u0436\u0430\u044e\u0449\u0435\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 (downcasting). \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u044d\u0442\u0438 \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:<\/p>\n<p><strong>Unity:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 GameObject Transform transform_1 = gameObject.GetComponent&lt;Transform>(); Transform transform_2 = gameObject.transform;  \/\/ \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 Mesh Renderer MeshRenderer mesh_renderer = gameObject.GetComponent&lt;MeshRenderer>();  \/\/ \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443 Rigidbody Rigidbody rigidbody = gameObject.GetComponent&lt;Rigidbody>();  \/\/ \u0434\u043e\u0441\u0442\u0443\u043f \u043a Collider Collider collider = gameObject.GetComponent&lt;Collider>(); BoxCollider boxCollider = collider as BoxCollider;<\/code><\/pre>\n<p><strong>UNIGINE:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043d\u043e\u0434\u044b \u0432 \u043c\u0438\u0440\u043e\u0432\u044b\u0445 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0430\u0445 mat4 transform = node.WorldTransform; \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u044b \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043d\u043e\u0434\u044b (\u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f) mat4 local_transform = node.Transform;  \/\/ \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a \u0442\u0438\u043f\u0443 ObjectMeshStatic \u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u043e\u0439 ObjectMeshStatic mesh_static = node as ObjectMeshStatic;  \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 BodyRigid, \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 Body body = (node as Unigine.Object).Body; BodyRigid rigid = body as BodyRigid;  \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043a\u043e\u043b\u043b\u0438\u0437\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u043e\u0440\u043c \u0442\u0438\u043f\u0430 ShapeBox for (int i = 0; i &lt; body.NumShapes; i++) {     Shape shape = body.GetShape(i);     if (shape is ShapeBox shapeBox)     {         ...     } }<\/code><\/pre>\n<h4>\u041f\u043e\u0438\u0441\u043a GameObject\/Node<\/h4>\n<p><strong>Unity:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/ \u043f\u043e\u0438\u0441\u043a \u043f\u043e \u0438\u043c\u0435\u043d\u0438 GameObject myGameObj = GameObject.Find(\"My Game Object\");  \/\/ \u041f\u043e\u0438\u0441\u043a \"ammo\" \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0433\u043e \u043a \"magazine\". Transform ammo_transform = gameObject.transform.Find(\"magazine\/ammo\"); GameObject ammo = ammo_transform.gameObject;  \/\/ \u041f\u043e\u0438\u0441\u043a \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u043f\u043e \u0442\u0438\u043f\u0443 MyComponent[] components = Object.FindObjectsOfType&lt;MyComponent>(); foreach (MyComponent component in components) {         \/\/ ... }  \/\/ \u041f\u043e\u0438\u0441\u043a \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043f\u043e \u0442\u0435\u0433\u0443 GameObject[] taggedGameObjects = GameObject.FindGameObjectsWithTag(\"MyTag\"); foreach (GameObject gameObj in taggedGameObjects) {         \/\/ ... }<\/code><\/pre>\n<p><strong>UNIGINE:<\/strong><\/p>\n<pre><code class=\"cs\">\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#) \/\/ \u041f\u043e\u0438\u0441\u043a \u043d\u043e\u0434\u044b \u043f\u043e \u0438\u043c\u0435\u043d\u0438 Node my_node = World.GetNodeByName(\"my_node\");  \/\/ \u041f\u043e\u0438\u0441\u043a \u0432\u0441\u0435\u0445 \u043d\u043e\u0434 \u0441 \u044d\u0442\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c List&lt;Node> nodes = new List&lt;Node>(); World.GetNodesByName(\"my_node\");  \/\/ \u041f\u043e\u0438\u0441\u043a \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0434\u043e\u0447\u0435\u0440\u043d\u0435\u0439 \u043d\u043e\u0434\u044b \u043f\u043e \u0438\u043c\u0435\u043d\u0438 int index = node.FindChild(\"child_node\"); Node direct_child = node.GetChild(index);  \/\/ \u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u043d\u043e\u0434\u044b \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u0441\u0440\u0435\u0434\u0438 \u0432\u0441\u0435\u0445 \u043f\u043e\u0442\u043e\u043c\u043a\u043e\u0432 \u0432 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 Node child = node.FindNode(\"child_node\", 1);  \/\/ \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0432 \u043c\u0438\u0440\u0435 \u043f\u043e \u0442\u0438\u043f\u0443 MyComponent[] my_comps = FindComponentsInWorld&lt;MyComponent>(); foreach(MyComponent comp in my_comps) {     Log.Message(\"{0}\\n\",comp.node.name); }<\/code><\/pre>\n<h4>\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0442 \u0442\u0438\u043f\u0430 \u043a \u0442\u0438\u043f\u0443<\/h4>\n<p><strong>Downcasting <\/strong>(\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0442 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u043c\u0443) \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e \u0432 \u043e\u0431\u043e\u0438\u0445 \u0434\u0432\u0438\u0436\u043a\u0430\u0445 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0440\u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 C# <strong><em>as<\/em><\/strong>:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Collider collider = gameObject.GetComponent&lt;Collider>;<\/code><\/p>\n<p align=\"left\"><code>BoxCollider boxCollider = collider as BoxCollider;<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Node node = World.GetNodeByName(\"my_mesh\");<\/code><\/p>\n<p align=\"left\"><code>ObjectMeshStatic mesh = node as ObjectMeshStatic;<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0427\u0442\u043e\u0431\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <strong>Upcasting<\/strong> (\u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043a \u0431\u0430\u0437\u043e\u0432\u043e\u043c\u0443), \u043c\u043e\u0436\u043d\u043e \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0430\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Collider collider = gameObject.GetComponent&lt;Collider>;<\/code><\/p>\n<p align=\"left\"><code>BoxCollider boxCollider = collider as BoxCollider;<\/code><\/p>\n<p align=\"left\"><code>Collider coll = boxCollider;<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Node node = World.GetNodeByName(\"my_mesh\");<\/code><\/p>\n<p align=\"left\"><code>ObjectMeshStatic mesh = node as ObjectMeshStatic;<\/code><\/p>\n<p align=\"left\"><code>Unigine.Object obj = mesh;<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h4>\u0423\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 GameObject\/Node<\/h4>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"center\"><strong><u>Unity<\/u><\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong><u>UNIGINE<\/u><\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>Destroy(myGameObject);<\/code><\/p>\n<p align=\"left\"><code>\/\/ \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0432 1 \u0441\u0435\u043a\u0443\u043d\u0434\u0443<\/code><\/p>\n<p align=\"left\"><code>Destroy(myGameObject, 1);<\/code><\/p>\n<\/td>\n<td>\n<p align=\"left\"><code>\/\/\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 (C#)<\/code><\/p>\n<p align=\"left\"><code>node.DeleteLater(); \/\/ \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442<\/code><\/p>\n<p align=\"left\"><code>\/\/ \u043d\u043e\u0434\u0430 \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043a\u0430\u0434\u0440\u0430<\/code><\/p>\n<p align=\"left\"><code>node.DeleteForce(); \/\/ \u0444\u043e\u0440\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u043e\u0434\u044b \u0432 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442, \u0447\u0442\u043e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e<\/code><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0414\u043b\u044f<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-333245","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/333245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=333245"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/333245\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=333245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=333245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=333245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}