ソースを参照

Ru Docs (First Pull Request) (#182)

* Russian files first commit

* Added "ru" section
Demetrij87G 4 年 前
コミット
c35193c422
100 ファイル変更1047 行追加0 行削除
  1. 6 0
      docs/languages.json
  2. 246 0
      docs/ru/manuals/addressing.md
  3. 119 0
      docs/ru/manuals/application-lifecycle.md
  4. 116 0
      docs/ru/manuals/atlas.md
  5. 112 0
      docs/ru/manuals/building-blocks.md
  6. 268 0
      docs/ru/manuals/editor.md
  7. 180 0
      docs/ru/manuals/glossary.md
  8. BIN
      docs/ru/manuals/images/addressing/absolute.png
  9. BIN
      docs/ru/manuals/images/addressing/bean.png
  10. BIN
      docs/ru/manuals/images/addressing/bean_buddy.png
  11. BIN
      docs/ru/manuals/images/addressing/bean_editor.png
  12. BIN
      docs/ru/manuals/images/addressing/bean_shield.png
  13. BIN
      docs/ru/manuals/images/addressing/bean_shield_editor.png
  14. BIN
      docs/ru/manuals/images/addressing/collection_team.png
  15. BIN
      docs/ru/manuals/images/addressing/manager_editor.png
  16. BIN
      docs/ru/manuals/images/addressing/name_collision.png
  17. BIN
      docs/ru/manuals/images/addressing/relative_same.png
  18. BIN
      docs/ru/manuals/images/addressing/team_editor.png
  19. BIN
      docs/ru/manuals/images/addressing/teams_editor.png
  20. BIN
      docs/ru/manuals/images/addressing/teams_manager.png
  21. BIN
      docs/ru/manuals/images/application_lifecycle/application_lifecycle_final.png
  22. BIN
      docs/ru/manuals/images/application_lifecycle/application_lifecycle_init.png
  23. BIN
      docs/ru/manuals/images/application_lifecycle/application_lifecycle_overview.png
  24. BIN
      docs/ru/manuals/images/application_lifecycle/application_lifecycle_update.png
  25. BIN
      docs/ru/manuals/images/atlas/add.png
  26. BIN
      docs/ru/manuals/images/atlas/[email protected]
  27. BIN
      docs/ru/manuals/images/atlas/add_animation.png
  28. BIN
      docs/ru/manuals/images/atlas/[email protected]
  29. BIN
      docs/ru/manuals/images/atlas/animation_group.png
  30. BIN
      docs/ru/manuals/images/atlas/[email protected]
  31. BIN
      docs/ru/manuals/images/atlas/atlas_properties.png
  32. BIN
      docs/ru/manuals/images/atlas/[email protected]
  33. BIN
      docs/ru/manuals/images/atlas/image_properties.png
  34. BIN
      docs/ru/manuals/images/atlas/[email protected]
  35. BIN
      docs/ru/manuals/images/atlas/single_images.png
  36. BIN
      docs/ru/manuals/images/atlas/[email protected]
  37. BIN
      docs/ru/manuals/images/building_blocks/bean_collection.png
  38. BIN
      docs/ru/manuals/images/building_blocks/[email protected]
  39. BIN
      docs/ru/manuals/images/building_blocks/building_blocks.png
  40. BIN
      docs/ru/manuals/images/building_blocks/[email protected]
  41. BIN
      docs/ru/manuals/images/building_blocks/building_blocks_collection_instances.png
  42. BIN
      docs/ru/manuals/images/building_blocks/building_blocks_collection_properties.png
  43. BIN
      docs/ru/manuals/images/building_blocks/building_blocks_gameobject_alter.png
  44. BIN
      docs/ru/manuals/images/building_blocks/building_blocks_gameobject_clones.png
  45. BIN
      docs/ru/manuals/images/building_blocks/building_blocks_gameobject_file.png
  46. BIN
      docs/ru/manuals/images/building_blocks/building_blocks_gameobject_instance.png
  47. BIN
      docs/ru/manuals/images/building_blocks/building_blocks_gameobject_instance_child.png
  48. BIN
      docs/ru/manuals/images/building_blocks/building_blocks_properties.png
  49. BIN
      docs/ru/manuals/images/building_blocks/building_blocks_properties_embedded.png
  50. BIN
      docs/ru/manuals/images/building_blocks/child_transform.png
  51. BIN
      docs/ru/manuals/images/building_blocks/[email protected]
  52. BIN
      docs/ru/manuals/images/building_blocks/childing.png
  53. BIN
      docs/ru/manuals/images/building_blocks/[email protected]
  54. BIN
      docs/ru/manuals/images/building_blocks/collection.png
  55. BIN
      docs/ru/manuals/images/building_blocks/[email protected]
  56. BIN
      docs/ru/manuals/images/building_blocks/go_instance.png
  57. BIN
      docs/ru/manuals/images/building_blocks/go_instance2.png
  58. BIN
      docs/ru/manuals/images/building_blocks/[email protected]
  59. BIN
      docs/ru/manuals/images/building_blocks/[email protected]
  60. BIN
      docs/ru/manuals/images/building_blocks/instance.png
  61. BIN
      docs/ru/manuals/images/building_blocks/[email protected]
  62. BIN
      docs/ru/manuals/images/editor/2-panes.png
  63. BIN
      docs/ru/manuals/images/editor/[email protected]
  64. BIN
      docs/ru/manuals/images/editor/add_file.png
  65. BIN
      docs/ru/manuals/images/editor/create_file.png
  66. BIN
      docs/ru/manuals/images/editor/[email protected]
  67. BIN
      docs/ru/manuals/images/editor/create_file_name.png
  68. BIN
      docs/ru/manuals/images/editor/[email protected]
  69. BIN
      docs/ru/manuals/images/editor/editor2_overview.png
  70. BIN
      docs/ru/manuals/images/editor/icon_move.png
  71. BIN
      docs/ru/manuals/images/editor/icon_rotate.png
  72. BIN
      docs/ru/manuals/images/editor/icon_scale.png
  73. BIN
      docs/ru/manuals/images/editor/import.png
  74. BIN
      docs/ru/manuals/images/editor/[email protected]
  75. BIN
      docs/ru/manuals/images/editor/move.jpg
  76. BIN
      docs/ru/manuals/images/editor/new_project.png
  77. BIN
      docs/ru/manuals/images/editor/[email protected]
  78. BIN
      docs/ru/manuals/images/editor/rotate.jpg
  79. BIN
      docs/ru/manuals/images/editor/scale.jpg
  80. BIN
      docs/ru/manuals/images/editor/select.jpg
  81. BIN
      docs/ru/manuals/images/editor/toolbar.png
  82. BIN
      docs/ru/manuals/images/editor/[email protected]
  83. BIN
      docs/ru/manuals/images/editor/update-main.png
  84. BIN
      docs/ru/manuals/images/editor/[email protected]
  85. BIN
      docs/ru/manuals/images/editor/update-project-selection.png
  86. BIN
      docs/ru/manuals/images/editor/[email protected]
  87. BIN
      docs/ru/manuals/images/graphics/atlas.png
  88. BIN
      docs/ru/manuals/images/graphics/[email protected]
  89. BIN
      docs/ru/manuals/images/graphics/gui.png
  90. BIN
      docs/ru/manuals/images/graphics/[email protected]
  91. BIN
      docs/ru/manuals/images/graphics/import.png
  92. BIN
      docs/ru/manuals/images/graphics/[email protected]
  93. BIN
      docs/ru/manuals/images/graphics/model.png
  94. BIN
      docs/ru/manuals/images/graphics/[email protected]
  95. BIN
      docs/ru/manuals/images/graphics/particles.png
  96. BIN
      docs/ru/manuals/images/graphics/[email protected]
  97. BIN
      docs/ru/manuals/images/graphics/spine.png
  98. BIN
      docs/ru/manuals/images/graphics/[email protected]
  99. BIN
      docs/ru/manuals/images/graphics/sprite.png
  100. BIN
      docs/ru/manuals/images/graphics/[email protected]

+ 6 - 0
docs/languages.json

@@ -40,6 +40,12 @@
             "name": "Português (Portuguese)",
             "translation": "",
             "active": true
+        },
+        "ru":
+        {
+            "name": "Русский (Russian)",
+            "translation": "Demetrij87G",
+            "active": true
         }
     }
 }

+ 246 - 0
docs/ru/manuals/addressing.md

@@ -0,0 +1,246 @@
+---
+title: Адресация в Defold
+brief: В этом руководстве объясняется, как в Defold реализована адресации.
+---
+
+# Адресация
+
+Код, управляющий запущенной игрой, должен иметь возможность достигнуть каждый объект и компонент с целью перемещения, масштабирования, анимирования, удаления и прочих видов манипуляций с видимым и слышимым для игрока контентом. Механизм адресации Defold делает такую возможность доступной.
+
+## Идентификаторы
+
+Defold ссылается на игровые объекты и компоненты используя адреса (или URL, об этом позже). Эти адреса состоят из идентификаторов. Ниже приведены все примеры использования адресов в Defold. В этом руководстве мы подробно рассмотрим принцип их работы:
+
+```lua
+local id = factory.create("#enemy_factory")
+label.set_text("my_gameobject#my_label", "Hello World!")
+
+local pos = go.get_position("my_gameobject")
+go.set_position(pos, "/level/stuff/other_gameobject")
+
+msg.post("#", "hello_there")
+local id = go.get_id(".")
+```
+
+Начнем с очень простого примера. Предположим, что есть игровой объект с одним спрайтом. Также имеется скрипт для управления этим игровым объектом. В редакторе такая структура будет выглядеть примерно следующим образом:
+
+![bean in editor](images/addressing/bean_editor.png)
+
+Допустим, требуется, чтобы спрайт отключился в начале игры, и чтобы была возможность включить его позже. Это несложно сделать, поместив следующий код в "controller.script":
+
+```lua
+function init(self)
+    msg.post("#body", "disable") -- <1>
+end
+```
+1. Не стоит переживать по поводу символа '#'. Мы скоро дойдем до него.
+
+Это сработает, как и ожидалось. При запуске игры компонент Script *обратится* к компоненту Sprite посредством его идентификатора "body" и, воспользовавшись этим адресом, отправит ему *сообщение* с пометкой "disable". В результате этого специального сообщения движка компонент Sprite скроет свое графическое изображение. Схематически структура выглядит следующим образом:
+
+![bean](images/addressing/bean.png)
+
+Идентификаторы в структуре произвольны. В данном примере для игрового объекта был выбран идентификатор - "bean", для компонента Sprite - "body", а для скрипта, управляющего персонажем - "controller".
+
+::: sidenote
+В случае, если имя не выбрано, это сделает редактор. При создании нового игрового объекта или компонента в редакторе уникальное свойство *Id* устанавливается автоматически.
+
+- Игровые объекты автоматически получают идентификатор "go" с добавлением нумерации ("go2", "go3" и т. д.).
+- Компоненты получают идентификатор в соответствии с типом этого компонента ("sprite", "sprite2" и т. д.).
+
+При желании можно придерживаться этих автоматически назначаемых имен, но рекомендуется изменять идентификаторы на читабельные и описательные имена.
+:::
+
+Теперь добавим еще один спрайт и дадим персонажу "bean" щит:
+
+![bean](images/addressing/bean_shield_editor.png)
+
+Новый компонент необходимо однозначно идентифицировать внутри игрового объекта. Если дать ему имя "body", то код скрипта станет двусмысленным относительно того, какому спрайту необходимо посылать сообщение "disable". Поэтому выбираем уникальный (и описательный) идентификатор "shield". Теперь спрайты "body" и "shield" можно произвольно включать и выключать.
+
+![bean](images/addressing/bean_shield.png)
+
+::: sidenote
+Если попытаться использовать идентификатор более одного раза, редактор оповестит об ошибке, так что на практике проблем с этим не будет никогда:
+
+![bean](images/addressing/name_collision.png)
+:::
+
+Теперь посмотрим, что произойдет, если добавить еще игровых объектов. Предположим, необходимо объединить двух "bean" в небольшую команду. Один из игровых объектов назовем "bean", а другой - "buddy". Кроме того, когда "bean" некоторое время простаивает, он должен сказать: "buddy", танцуй. Это делается посредством отправки пользовательского сообщения "dance" из скрипта "controller" объекта "bean" в скрипт "controller" объекта "buddy":
+
+![bean](images/addressing/bean_buddy.png)
+
+::: sidenote
+Существует два отдельных компонента с именем "controller", по одному в каждом игровом объекте, но это абсолютно допустимо, так как каждый игровой объект создает новый контекст именования.
+:::
+
+Поскольку адресат сообщения находится вне игрового объекта, отправляющего сообщение ("bean"), в коде необходимо указать, какой именно "controller" должен это сообщение получить. Необходимо указать как идентификатор целевого игрового объекта, так и идентификатор компонента. Полным адресом к компоненту будет `"buddy#controller"`, и этот адрес состоит из двух отдельных частей.
+
+- В первую очередь идет идентификация целевого игрового объекта ("buddy"),
+- затем следует символ-разделитель игрового объекта/компонента ("#"),
+- и, наконец, указывается идентификатор целевого компонента ("controller").
+
+Вернувшись к предыдущему примеру с одним игровым объектом, можно заметить, что пропустив идентификатор игрового объекта как часть целевого адреса, код может обращаться к компонентам в *текущем игровом объекте*.
+
+Например, `"#body"` обозначает адрес к компоненту "body" в текущем игровом объекте. Это очень удобно, поскольку такой код будет работать в *любом* игровом объекте, если в нем имеется компонент "body".
+
+## Коллекции
+
+Коллекции позволяют создавать группы, или иерархии, игровых объектов и многократно использовать их контролируемым образом. Файлы коллекций используются в качестве шаблонов (или "прототипов", "префабов") в редакторе при наполнении игры контентом.
+
+Предположим, требуется создать несколько команд "bean/buddy". Хорошим подходом будет создание шаблона в новом *файле коллекции* (с именем "team.collection"). Далее необходимо собрать игровые объекты команды в файле коллекции и сохранить. Затем поместить экземпляр содержимого этого файла коллекции в основную загрузочную коллекцию и назначить этому экземпляру идентификатор (назвать его "team_1"):
+
+![bean](images/addressing/team_editor.png)
+
+При такой структуре игровой объект "bean" все также может ссылаться на компонент "controller" в объекте "buddy" по адресу `"buddy#controller"`.
+
+![bean](images/addressing/collection_team.png)
+
+Если добавить второй экземпляр "team.collection" (с именем "team_2"), то код, запущенный внутри скрипта экземпляра коллекции "team_2", также будет успешно работать. Экземпляр игрового объекта "bean" из коллекции "team_2" по-прежнему может обращаться к компоненту "controller" в объекте "buddy" по адресу `"buddy#controller"`.
+
+![bean](images/addressing/teams_editor.png)
+
+## Относительная адресация
+
+Адрес `"buddy#controller"` работает для игровых объектов в обеих коллекциях, потому что это *относительный* адрес. Каждая из коллекций, "team_1" и "team_2", задает новый контекст именования, или, если хотите, "пространство имён". Defold позволяет избежать конфликтов при именовании, учитывая контекст, создаваемый коллекцией для адресации:
+
+![relative id](images/addressing/relative_same.png)
+
+- В контексте именования коллекции "team_1" однозначно идентифицируются игровые объекты "bean" и "buddy".
+- Аналогичным образом, в контексте именования коллекции "team_2", игровые объекты "bean" и "buddy" также имеют уникальную идентификацию.
+
+Относительная адресация работает путем автоматического добавления текущего контекста именования при определении целевого адреса. Это опять-таки чрезвычайно удобно, поскольку появляется возможность создавать группы игровых объектов с кодом и эффективно использовать их на всех этапах разработки игры.
+
+### Сокращения
+
+Defold предлагает два полезных сокращения, которые можно использовать для отправки сообщений без указания полного URL:
+
+:[Shorthands](../shared/url-shorthands.md)
+
+## Пути игровых объектов
+
+Чтобы правильно понять принцип именования, посмотрим, что происходит при сборке и запуске проекта:
+
+1. Редактор считывает загрузочную коллекцию ("main.collection") и все ее содержимое (игровые объекты и другие коллекции).
+2. Для каждого статичного игрового объекта компилятор создает идентификатор. Они формируются в виде "путей", начинающихся от загрузочной коллекции, далее по иерархии коллекции к объекту. На каждом уровне добавляется символ '/'.
+
+В приведенном выше примере игра будет работать со следующими 4 игровыми объектами:
+
+- /team_1/bean
+- /team_1/buddy
+- /team_2/bean
+- /team_2/buddy
+
+::: sidenote
+Идентификаторы хранятся в виде хэшированных значений. В среде выполнения сохраняется хэш-состояние каждой идентификации коллекции. Затем это хэш-состояние включается в полный абсолютный адрес игрового объекта, преобразованного из строки относительного адреса в хешированый абсолютный идентификатор.
+:::
+
+Во время выполнения не существует такой категории, как коллекции. Нет способа узнать, к какой коллекции принадлежал тот или иной игровой объект до компиляции. Также невозможно манипулировать всеми объектами коллекции одновременно. Если есть необходимость в таких операциях, можно легко отследить их самостоятельно в коде. Идентификатор каждого объекта статичен, он гарантированно остается неизменным на протяжении всего времени существования объекта. Это означает, что можно хранить идентификатор объекта без риска потери и использовать его позже.
+
+## Абсолютная адресация
+
+При указании адресов можно использовать полные идентификаторы, описанные выше. В большинстве случаев предпочтительна относительная адресация, так как она позволяет повторно использовать контент, но бывают случаи, когда абсолютная адресация становится необходимой.
+
+Например, предположим, что требуется создать AI-менеджер, который отслеживает состояние каждого объекта "bean". Необходимо, чтобы "bean" сообщали менеджеру о своем активном состоянии, а менеджер принимал тактические решения и отдавал приказы объектам "bean", учитывая их статус. В этом случае имеет смысл создать единый игровой объект-менеджер с компонентом Script и поместить его вместе с коллекциями "team" в коллекцию начальной загрузки.
+
+![manager object](images/addressing/manager_editor.png)
+
+Тогда каждый объект "bean" отвечает за отправку менеджеру сообщений о состоянии: "contact", если обнаружен враг, или "ouch!", если получен урон. Чтобы это работало, скрипты "controller" объектов "bean" используют абсолютную адресацию для отправки сообщений компоненту "controller" объекта "manager".
+
+Любой адрес, начинающийся с символа '/' будет вычисляться исходя из корня игрового мира, что соответствует корню *коллекции начальной загрузки*, которая загружается при старте игры.
+
+Абсолютный адрес скрипта менеджера - `"/manager#controller"` и этот абсолютный адрес будет актуальным для компонента вне зависимости от того, где он используется.
+
+![teams and manager](images/addressing/teams_manager.png)
+
+![absolute addressing](images/addressing/absolute.png)
+
+## Хэшированные идентификаторы
+
+Движок хранит все идентификаторы в виде хэш-значений. Все функции, которым в качестве аргумента необходимо передать компонент или игровой объект, принимают строку, хэш или же URL-объект. Выше мы рассматривали, как использовать строки при адресации.
+
+При получении идентификатора игрового объекта движок всегда возвращает абсолютный идентификатор пути в хэшированном виде:
+
+```lua
+local my_id = go.get_id()
+print(my_id) --> hash: [/path/to/the/object]
+
+local spawned_id = factory.create("#some_factory")
+print(spawned_id) --> hash: [/instance42]
+```
+
+Такой идентификатор можно использовать взамен строкового идентификатора, или сформировать его самостоятельно. При этом следует иметь в виду, что хэшированный идентификатор соответствует пути к объекту, т.е. абсолютному адресу:
+
+::: sidenote
+Причина, по которой относительные адреса должны быть указаны в виде строк, заключается в том, что движок вычисляет новый хэш идентификатора, основанный на хэш-состоянии текущего контекста именования (коллекции) с добавлением в хэш данной строки.
+:::
+
+```lua
+local spawned_id = factory.create("#some_factory")
+local pos = vmath.vector3(100, 100, 0)
+go.set_position(pos, spawned_id)
+
+local other_id = hash("/path/to/the/object")
+go.set_position(pos, other_id)
+
+-- Это не сработает! Относительные адреса должны быть указаны в виде строк.
+local relative_id = hash("my_object")
+go.set_position(pos, relative_id)
+```
+
+## URL
+
+Для полноты картины, давайте посмотрим на полный формат адресов Defold: URL.
+
+URL - это объект, записанный, как правило, в виде строк специального формата. Типовой URL состоит из трех частей:
+
+`[socket:][path][#fragment]`
+
+socket
+: Идентифицирует игровое пространство игры. Имеет важное значение при работе с [прокси-коллекциями](/manuals/collection-proxy), а также используется для идентификации _динамически загружаемых коллекций_.
+
+path
+: Эта часть URL содержит полный идентификатор целевого игрового объекта.
+
+fragment
+: Идентификация целевого компонента в пределах указанного игрового объекта.
+
+Как было показано выше, в большинстве случаев можно пропустить некоторую или большую часть этой информации. Почти никогда не требуется указывать сокет, и часто, но не всегда необходимо указывать путь. В тех случаях, когда все-таки нужно обратиться к чему-либо в другом игровом мире, потребуется указать сокетную часть URL. Например, полная строка URL для скрипта "controller" в игровом объекте "manager":
+
+`"main:/manager#controller"`
+
+и "controller" объекта "buddy" в team_2:
+
+`"main:/team_2/buddy#controller"`
+
+Мы можем отправить им сообщения следующим образом:
+
+```lua
+-- Отправить "hello" скрипту менеджера и команде buddy и bean
+msg.post("main:/manager#controller", "hello_manager")
+msg.post("main:/team_2/buddy#controller", "hello_buddy")
+```
+
+## Получение URL-объектов
+
+URL-объекты также могут быть созданы программно в Lua-коде:
+
+```lua
+-- Сформировать URL-объект из строки:
+local my_url = msg.url("main:/manager#controller")
+print(my_url) --> url: [main:/manager#controller]
+print(my_url.socket) --> 786443 (internal numeric value)
+print(my_url.path) --> hash: [/manager]
+print(my_url.fragment) --> hash: [controller]
+
+-- Сформировать URL по параметрам:
+local my_url = msg.url("main", "/manager", "controller")
+print(my_url) --> url: [main:/manager#controller]
+
+-- Сформировать URL-объект из ничего:
+local my_url = msg.url()
+my_url.socket = "main" -- specify by valid name
+my_url.path = hash("/manager") -- specify as string or hash
+my_url.fragment = "controller" -- specify as string or hash
+
+-- Отправить сообщение целевому объекту, указанному в URL
+msg.post(my_url, "hello_manager!")
+```

+ 119 - 0
docs/ru/manuals/application-lifecycle.md

@@ -0,0 +1,119 @@
+---
+title: Руководство по жизненному циклу приложения на Defold
+brief: В этом руководстве подробно описывается жизненный цикл игр и приложений, созданных в Defold.
+---
+
+# Жизненный цикл приложения
+
+Жизненный цикл приложения или игры, созданных в Defold, в целом прост. Движок проходит три стадии выполнения: инициализация, цикл обновления (в котором приложения и игры проводят большую часть времени) и финальная стадия.
+
+![Lifecycle overview](images/application_lifecycle/application_lifecycle_overview.png)
+
+В большинстве случаев необходимо лишь элементарное понимание внутренних рабочих процессов Defold. Однако возможны случаи, когда точный порядок исполнения задач становится критически важным. В этом документе описывается, как движок запускает приложение от начала и до конца.
+
+Загрузка приложения начинается с инициализации всех составляющих, необходимых для запуска движка. Происходит загрузка главной коллекции и вызов [`init()`](/ref/go#init) во всех загруженных компонентах, имеющих Lua-функцию `init()` (компоненты Script и GUI с GUI-скриптами). Это дает возможность выполнять пользовательскую инициализацию.
+
+Затем приложение входит в цикл обновления, в котором оно будет находиться большую часть времени своего жизненного цикла. В каждом кадре обновляются игровые объекты и содержащиеся в них компоненты. Вызываются любые функции [`update()`](/ref/go#update) в скриптах и GUI-скриптах. В ходе цикла обновления адресатам отправляются сообщения, воспроизводятся звуки и отрисовывается вся графическая составляющая.
+
+В какой-то момент жизненный цикл приложения завершается. Перед завершением приложения движок выходит из цикла обновления и вступает в стадию завершения. Он подготавливает все загруженные игровые объекты к удалению. Вызываются функции [`final()`](/ref/go#final) всех компонентов объекта, что позволяет произвести пользовательскую очистку. Затем объекты удаляются, а основная коллекция выгружается.
+
+## Инициализация
+
+Эта диаграмма подробно иллюстрирует шаги инициализации. Этапы, связанные с передачей "посланных сообщений" (непосредственно перед "порождением динамических объектов"), для наглядности были вынесены в отдельный блок справа.
+
+![Lifecycle overview](images/application_lifecycle/application_lifecycle_init.png)
+
+На самом деле движок выполняет гораздо больше шагов во время инициализации перед загрузкой основной коллекции. Происходит настройка профилировщика памяти, сокетов, графики, HID (устройств ввода), звука, физики и т. д. Кроме того, загружается и настраивается конфигурация приложения ("game.project").
+
+Первой подконтрольной пользователю точкой входа в конце инициализации движка является вызов функции `init()` актуального рендер-скрипта.
+
+Затем загружается и инициализируется основная коллекция. Все игровые объекты в коллекции применяют свои трансформации (перемещение (изменение положения), вращение и масштабирование) к своим дочерним объектам. После этого вызываются все существующие функции `init()` компонентов.
+
+::: sidenote
+Порядок, в котором вызываются функции `init()` компонентов игровых объектов, не определен. Не следует считать, что движок инициализирует объекты, принадлежащие одной коллекции, в определенном порядке.
+:::
+
+Поскольку код функции `init()` может посылать новые сообщения, приказывать фабрикам порождать новые объекты, отмечать объекты для удаления и совершать другие действия, движок осуществляет очередной полный проход "постобновления". Этот проход выполняет доставку сообщений, фактическое порождение игровых объектов фабриками и удаление объектов. Следует иметь в виду, что проход постобновления включает последовательность "диспетчеризации сообщений", которая не только отправляет все поставленные в очередь сообщения, но и обрабатывает сообщения, отправленные прокси коллекциям. Любые последующие обновления прокси (включение и отключение, загрузка и пометка для выгрузки) выполняются во время этих шагов.
+
+Изучение приведенной выше диаграммы показывает, что вполне возможно загрузить [прокси-коллекцию](/manuals/collection-proxy) во время `init()`, обеспечить инициализацию всех содержащихся в ней объектов, а затем выгрузить коллекцию через прокси --- и все это до вызова `update()` первого компонента, т.е. до того, как движок выйдет из стадии инициализации и войдет в цикл обновления:
+
+```lua
+function init(self)
+    print("init()")
+    msg.post("#collectionproxy", "load")
+end
+
+function update(self, dt)
+    -- Прокси-коллекция выгружается до того, как этот код будет достигнут.
+    print("update()")
+end
+
+function on_message(self, message_id, message, sender)
+    if message_id == hash("proxy_loaded") then
+        print("proxy_loaded. Init, enable and then unload.")
+        msg.post("#collectionproxy", "init")
+        msg.post("#collectionproxy", "enable")
+        msg.post("#collectionproxy", "unload")
+        -- Функции init() и final() объектов прокси-коллекции
+        -- вызываются до того, как будет достигнута функция update() этого объекта
+    end
+end
+```
+
+## Цикл обновления
+
+Цикл обновления проходит через длинную последовательность один раз в каждом кадре. Последовательность обновления на диаграмме ниже разделена логически на блоки последовательности для наглядности. "Диспетчеризация сообщений" также разбита отдельно по той же причине:
+
+![Update loop](images/application_lifecycle/application_lifecycle_update.png)
+
+## Ввод
+
+Ввод считывается с доступных устройств, сопоставляется с [привязкой ввода](/manuals/input) и затем диспетчеризируется. Любой игровой объект, получивший фокус ввода, получает ввод, отправляемый всем функциям `on_input()` его компонентов. Игровой объект со скриптом и компонент GUI с GUI-скриптом будут получать ввод в функции `on_input()` своих компонентов, с учетом того, что они определены и что они получили фокус ввода.
+
+Любой игровой объект, получивший фокус ввода и содержащий прокси-коллекции, направляет ввод компонентам внутри этой прокси-коллекции. Этот процесс продолжается рекурсивно вниз по включенным прокси-коллекциям внутри включенных прокси-коллекций.
+
+## Обновление
+
+Каждый компонент игрового объекта в основной коллекции будет обследован. Если у какого-либо из этих компонентов имеется функция `update()`, то вызывается именно она. Если компонент является прокси-коллекцией, то каждый компонент в прокси-коллекции рекурсивно обновляется с выполнением всех шагов в последовательности "обновления", представленной на диаграмме выше.
+
+::: sidenote
+Порядок вызова функций `update()` компонентов игровых объектов не определен. Не следует полагать, что движок обновляет объекты, принадлежащие одной коллекции, в определенном порядке.
+:::
+
+На следующем этапе все отправленные сообщения диспетчеризируются. Поскольку код `on_message()` любого компонента-приемника может отправлять дополнительные сообщения, диспетчер сообщений будет продолжать диспетчеризацию отправленных сообщений до тех пор, пока очередь сообщений не опустеет. Однако существует ограничение на количество проходов по очереди сообщений, выполняемых диспетчером сообщений. За подробностями обращайтесь к [руководству по передачи сообщений](/manuals/message-passing) и к разделу "Дополнительные темы".
+
+Для объектов столкновения, сообщения физики (столкновения, триггеры, ответы ray_cast и т.д.) рассылаются по всему объемлющему игровому объекту всем компонентам, которые содержат скрипт с функцией `on_message()`.
+
+Затем осуществляются трансформации, применяя любое перемещение, вращение и масштабирование игрового объекта к каждому его компоненту и всем компонентам дочерних игровых объектов.
+
+## Рендер обновление
+
+Рендер обновление блокирует диспетчеризацию сообщений в сокет `@render` (сообщение камеры `set_view_projection`, сообщение `set_clear_color` и др.). Тажк вызывается `update()` в рендер-скрипте.
+
+## Постобновление
+
+После обновлений выполняется последовательность постобновления. Она выгружает из памяти прокси-коллекции, которые помечены для выгрузки (это происходит во время последовательности "диспетчеризации сообщений"). Любой игровой объект, помеченный для удаления, вызывает функции `final()` всех своих компонентов, если таковые имеются. Код в функциях `final()` часто посылает новые сообщения в очередь, поэтому после этого выполняется проход "диспетчеризации сообщений".
+
+Далее любой компонент Factory, которому было указано породить игровой объект, выполнит это. Наконец, игровые объекты, помеченные для удаления, действительно удаляются.
+
+Последний шаг в цикле обновления включает отправку `@system`-сообщений (сообщения `exit`, `reboot`, переключение профайлера, запуск и остановка захвата видео и т. д.). Затем происходит рендеринг графики. Во время рендеринга графики производится захват видео, а также визуальный профайлер (см. [документацию по отладке](/manuals/debugging).)
+
+## Частота кадров и временной шаг коллекции
+
+Количество кадров, обновляемых в секунду (что равно количеству циклов обновления в секунду), можно установить в настройках проекта или программно, отправив сообщение `set_update_frequency` в сокет `@system`. Кроме того, можно установить _шаг времени_ для прокси-коллекции индивидуально, отправив в прокси сообщение `set_time_step`. Изменение временного шага коллекции не влияет на частоту кадров. Оно влияет на шаг времени обновления физики, а также на переменную `dt`, передаваемую в `update().` Кроме того, следует отметить, что изменение шага времени не изменяет количество вызовов `update()` в каждом кадре --- оно всегда ровно 1.
+
+(За подробностями обращайтесь к [документации по прокси-коллекциям](/manuals/collection-proxy) и [`set_time_step`](/ref/collectionproxy#set-time-step))
+
+## Финальная стадия
+
+При выходе из приложения сначала завершается последняя последовательность цикла обновления, которая выгружает все прокси-коллекции: завершает и удаляет все игровые объекты в каждой прокси-коллекции.
+
+После этого движок переходит к завершающей последовательности, которая обрабатывает основную коллекцию и ее объекты:
+
+![Finalization](images/application_lifecycle/application_lifecycle_final.png)
+
+Сначала вызываются компонентные функции `final()`. Затем следует очередная диспетчеризация сообщений. Наконец, все игровые объекты удаляются, а основная коллекция выгружается.
+
+После этого движок выполняет закулисное отключение подсистем: конфигурация проекта удаляется, профилировщик памяти отключается и т. д.
+
+Теперь приложение считается полностью закрытым.

+ 116 - 0
docs/ru/manuals/atlas.md

@@ -0,0 +1,116 @@
+---
+title: Атлас
+brief: Это руководство объясняет особенности использования ресурса Atlas в Defold.
+---
+
+# Атлас
+
+Несмотря на то, что отдельные изображения часто используются в качестве источника спрайтов, по соображениям производительности изображения необходимо объединять в большие массивы, называемые атласами. Объединение множества небольших изображений в атласы особенно важно для мобильных устройств, где память и вычислительная мощность более ограничены, чем в настольных компьютерах или специализированных игровых консолях.
+
+В Defold ресурс Atlas --- это список отдельных файлов изображений, которые автоматически объединяются в более крупное изображение.
+
+## Создание атласа
+
+Выберите <kbd>New... ▸ Atlas</kbd> из контекстного меню браузера *Assets*. Присвойте имя новому файлу, после чего он откроется в соответствующем редакторе. Свойства атласа отображаются в панели
+*Properties*, где их можно редактировать (см. ниже).
+
+Атлас необходимо заполнить изображениями или анимацией, прежде чем использовать его в качестве источника графики для таких компонентов объекта, как Sprite и Particle FX.
+
+Необходимо убедиться, что изображения добавлены в проект (перетаскиванием файлов изображений в нужное расположение в браузер *Assets*).
+
+Добавление одиночных изображений
+: Выполните <kbd>клик ПКМ</kbd> в корне ресурса Atlas в панели *Outline*.
+
+  Выберите <kbd>Add Images</kbd> из контекстного меню.
+
+  Откроется диалоговое окно, в котором можно найти и выбрать изображения для включения в атлас. Стоит отметить, что можно использовать фильтр и выбирать несколько файлов сразу.
+
+  ![Creating an atlas, adding images](images/atlas/add.png){srcset="images/atlas/[email protected] 2x"}
+
+  Добавленные изображения отображаются в *Outline* в виде списка, при этом атлас в сборе можно увидеть в центральном окне редактора. Возможно, потребуется нажать <kbd>F</kbd> (<kbd>View ▸ Frame Selection</kbd> из меню) чтобы изменить масштаб отображения выделенного.
+
+  ![Images added](images/atlas/single_images.png){srcset="images/atlas/[email protected] 2x"}
+
+Добавление мультипликаций
+: Выполните <kbd>клик ПКМ</kbd> в корне ресурса Atlas в панели *Outline*.
+
+  Выберите <kbd>Add Animation Group</kbd> из контекстного меню.
+
+  Новая, пустая группа анимации с именем по умолчанию ("New Animation") будет добавлена в атлас.
+
+  Выполните <kbd>клик ПКМ</kbd> по новой группе и выберите <kbd>Add Images</kbd> из контекстного меню.
+
+  Откроется диалоговое окно, в котором можно найти и выбрать изображения для включения их в группу анимации.
+
+  ![Creating an atlas, adding images](images/atlas/add_animation.png){srcset="images/atlas/[email protected] 2x"}
+
+  Нажмите <kbd>Space</kbd> при выделенной группе анимации для ее предварительного просмотра. При необходимости настройте *Свойства* анимации (см. ниже).
+
+  ![Animation group](images/atlas/animation_group.png){srcset="images/atlas/[email protected] 2x"}
+
+Порядок изображений в Outline можно изменить, выделив их и нажав <kbd>Alt + Up/down</kbd>. Кроме того, можно легко создавать дубликаты, копируя и вставляя изображения в Outline (из меню <kbd>Edit</kbd>, контекстного меню по клику ПКМ или сочетаниями клавиш).
+
+## Свойства атласа
+
+Каждый ресурс типа Atlas имеет набор свойств. Они отображаются в панели *Properties* при выделении корневого элемента в представлении *Outline*.
+
+Size
+: Отображает общий вычисленный размер результирующей текстуры. Ширина и высота устанавливаются в ближайшую степень числа 2. Обратите внимание, что если включить сжатие текстур, некоторые форматы потребуют квадратных размеров. В этом случае размер неквадратных текстур будет изменен и заполнен пустым пространством, чтобы текстура стала квадратной. За подробностями обращайтесь к [руководству по текстурным профилям](/manuals/texture-profiles/).
+
+Margin
+: Количество пикселей, которые должны быть добавлены между каждым изображением.
+
+Inner Padding
+: Количество пустых пикселей, которые должны быть добавлены вокруг каждого изображения.
+
+Extrude Borders
+: Количество краевых пикселей, которые должны быть многократно добавлены вокруг каждого изображения. Когда фрагментный шейдер делает выборку пикселей на краю изображения, пиксели соседнего изображения (на той же текстуре атласа) могут просвечиваться (bleed over). Экструзия границы решает эту проблему.
+
+Вот примеры различных настроек свойств с четырьмя квадратными изображениями размером 64x64, добавленными в атлас. Обратите внимание, как атлас переходит к размеру 256x256, как только изображения не помещаются в 128x128, что приводит к бесполезному расходу текстурного пространства.
+
+![Atlas properties](images/atlas/atlas_properties.png){srcset="images/atlas/[email protected] 2x"}
+
+## Свойства изображения
+
+Каждое изображение в атласе обладает набором свойств:
+
+Id
+: Идентификатор изображения (только для чтения).
+
+Size
+: Ширина и высота изображения (только для чтения).
+
+Sprite Trim Mode
+: Способ рендеринга спрайта. По умолчанию спрайт отображается в виде прямоугольника (опция Sprite Trim Mode установлена в Off). Если спрайт содержит много прозрачных пикселей, может оказаться более эффективным рендеринг спрайта в виде непрямоугольной формы с использованием от 4 до 8 вершин.
+
+Image
+: Путь к файлу самого изображения.
+
+![Image properties](images/atlas/image_properties.png){srcset="images/atlas/[email protected] 2x"}
+
+## Свойства анимации
+
+Кроме списка изображений, входящих в группу анимации, доступен набор свойств:
+
+Id
+: Имя анимации.
+
+Fps
+: Скорость воспроизведения анимации, выраженная в кадрах в секунду (FPS).
+
+Flip Horizontal
+: Переворачивает анимацию по горизонтали.
+
+Flip Vertical
+: Переворачивает анимацию по вертикали.
+
+Playback
+: Указывает, как должна воспроизводиться анимация:
+
+  - `None` --- анимация вообще не воспроизводится, отображается первое изображение.
+  - `Once Forward` --- воспроизводится один раз, начиная с первого и заканчивая последним изображением.
+  - `Once Backward` --- воспроизводится один раз, начиная с последнего и заканчивая первым изображением.
+  - `Once Ping Pong` --- воспроизводится один раз, начиная с первого и заканчивая последним изображением, затем возврат к первому.
+  - `Loop Forward` --- воспроизводится циклически, начиная с первого и заканчивая последним изображением.
+  - `Loop Backward` --- воспроизводится циклически, начиная с последнего и заканчивая первым изображением.
+  - `Loop Ping Pong` --- воспроизводится циклически, начиная с первого и заканчивая последним изображением, затем возврат к первому.

+ 112 - 0
docs/ru/manuals/building-blocks.md

@@ -0,0 +1,112 @@
+---
+title: Структурные элементы Defold
+brief: В этом руководстве подробно описан принцип работы игровых объектов, компонентов и коллекций.
+---
+
+#  Структурные элементы
+
+В основу дизайна Defold заложены несколько концепций, качественное освоение которых может потребовать временных затрат. Это руководство объясняет, как устроены структурные элементы Defold. Прочитав это руководство, стоит перейти к [руководству по адрессации](/manuals/addressing) и [передачи сообщений](/manuals/message-passing). Также имеется набор [уроков](/tutorials/getting-started), доступных в редакторе и позволяющих быстрее приступить к работе.
+
+![Building blocks](images/building_blocks/building_blocks.png){srcset="images/building_blocks/[email protected] 2x"}
+
+В Defold существуют три основных типа структурных элементов, используемых для конструирования игр:
+
+Коллекция (collection)
+: Коллекция представляет собой файл, используемый для структурирования игры. В коллекциях выстраиваются иерархии игровых объектов и других коллекций. Как правило, они используются для структурирования игровых уровней, групп врагов или персонажей, сформированных из нескольких игровых объектов.
+
+Игровой объект (game object)
+: Игровой объект - это контейнер с идентификатором, положением, вращением и масштабом. Он используется в качестве контейнера с компонентами. Обычно они используются для создания игровых персонажей, пуль, системы правил игры или для загрузки/выгрузки уровней.
+
+Компонент (сomponent)
+: Компонентами являются сущности, которые помещаются в игровой объект, с целью придать им визуальное, звуковое и/или логическое представление в игре. Обычно используются для создания спрайтов персонажей, файлов сценариев, для добавления звуковых эффектов или эффектов частиц.
+
+## Коллекции (Collections)
+
+Коллекции представляют собой древовидные структуры, в которых хранятся игровые объекты и другие коллекции. Коллекции всегда хранятся в файлах.
+
+При запуске Defold загружает единственную _коллекцию начальной загрузки_, как указано в файле настроек "game.project". Коллекция начальной загрузки часто называется "main.collection", но можно использовать любое другое имя.
+
+Коллекция может содержать игровые объекты и другие коллекции (по ссылке на файл субколлекции), вложенные сколь угодно глубоко. Вот пример файла под названием "main.collection". Он содержит один игровой объект (с идентификатором "can") и одну субколлекцию (с идентификатором "bean"). Субколлекция, в свою очередь, содержит два игровых объекта: "bean" и "shield".
+
+![Collection](images/building_blocks/collection.png){srcset="images/building_blocks/[email protected] 2x"}
+
+Стоит заметить, что субколлекция с идентификатором "bean" хранится в собственном файле, называемом "/main/bean.collection", и на нее имеются ссылки только в "main.collection":
+
+![Bean collection](images/building_blocks/bean_collection.png){srcset="images/building_blocks/[email protected] 2x"}
+
+К самим коллекциям обращаться не возможно, поскольку во время выполнения не существует объектов, соответствующих коллекциям "main" и "bean". Тем не менее, иногда необходимо использовать идентификатор коллекции как часть _пути_ к игровому объекту (за подробностями обращайтесь к [руководству по адресации](/manuals/addressing)):
+
+```lua
+-- file: can.script
+-- get position of the "bean" game object in the "bean" collection
+local pos = go.get_position("bean/bean")
+```
+
+Коллекция всегда добавляется в другую коллекцию в качестве ссылки на файл коллекции:
+
+Выполните <kbd>правый клик</kbd> по коллекции в представлении *Outline* и выберите <kbd>Add Collection File</kbd>.
+
+## Игровые объекты (Game objects)
+
+Игровые объекты - это простые объекты, каждый из которых имеет свою продолжительность жизни во время выполнения игры. Игровые объекты имеют позицию, вращение и масштаб, которыми можно манипулировать и анимировать во время выполнения.
+
+```lua
+-- animate X position of "can" game object
+go.animate("can", "position.x", go.PLAYBACK_LOOP_PINGPONG, 100, go.EASING_LINEAR, 1.0)
+```
+
+Игровые объекты можно использовать пустыми (например, в качестве маркеров позиции), но обычно они оснащены различными компонентами, такими как спрайты, звуки, скрипты, модели, фабрики и др. Игровые объекты либо создаются в редакторе и помещаются в файлы коллекции, либо динамически создаются во время выполнения посредством _фабрик_.
+
+Игровые объекты добавляются в коллекцию непосредственно (на месте), либо в качестве ссылки на файл игрового объекта:
+
+Выполните <kbd>правый клик</kbd> по коллекции в представлении *Outline* и выберите <kbd>Add Game Object</kbd> (добавить на месте) или <kbd>Add Game Object File</kbd> (добавить в качестве ссылки на файл).
+
+
+## Компоненты
+
+:[components](../shared/components.md)
+
+Список всех доступных типов компонентов см. в [обзоре компонентов](/manuals/components/).
+
+## Объекты, добавленные на месте или по ссылке
+
+При создании _файла_ коллекции, игрового объекта или компонента, создается шаблон, или прототип. При этом файл добавляется только в файловую структуру проекта, к запущенной игре ничего не добавляется. Чтобы добавить экземпляр коллекции, игрового объекта или компонента на основе файла шаблона, необходимо добавить его в один из файлов коллекции.
+
+Не сложно понять, на каком файле основан экземпляр объекта в представлении Outline. Файл "main.collection" содержит три экземпляра, которые основаны на файлах:
+
+1. Субколлекция "bean".
+2. Скрипт "bean" в игровом объекте "bean" в субколлекции "bean".
+3. Скрипт "can" в игровом объекте "can".
+
+![Instance](images/building_blocks/instance.png){srcset="images/building_blocks/[email protected] 2x"}
+
+Преимущество создания файлов-шаблонов становится очевидным, когда имеются несколько экземпляров игрового объекта или коллекции и их все необходимо изменить:
+
+![GO instances](images/building_blocks/go_instance.png){srcset="images/building_blocks/[email protected] 2x"}
+
+При изменении файла шаблона любой экземпляр, использующий этот файл, будет немедленно обновлен.
+
+![GO instances updated](images/building_blocks/go_instance2.png){srcset="images/building_blocks/[email protected] 2x"}
+
+## Подчинение игровых объектов
+
+В файле коллекции можно строить иерархии игровых объектов, так чтобы один или несколько игровых объектов становились дочерними по отношению к одному родительскому игровому объекту. Просто <kbd>перетащите</kbd> один игровой объект и <kbd>бросьте</kbd> его на другой, и перетаскиваемый игровой объект станет дочерним по отношении к целевому (но который бросили):
+
+![Childing game objects](images/building_blocks/childing.png){srcset="images/building_blocks/[email protected] 2x"}
+
+Объектная иерархия "родительский-дочерний" - это динамическое отношение, влияющее на то, как объекты реагируют на трансформации. Любые трансформации (перемещение, вращение или масштабирование), применяемые к объекту, будут, в свою очередь, применяться к дочерним элементам объекта, как в редакторе, так и во время выполнения:
+
+![Child transform](images/building_blocks/child_transform.png){srcset="images/building_blocks/[email protected] 2x"}
+
+И наоборот, дочерние трансформации выполняются в локальном пространстве родителя. В редакторе можно выбрать, редактировать дочерние игровые объекты в локальном пространстве или в мировом, выполнив <kbd>Edit ▸ World Space</kbd> (по умолчанию) или <kbd>Edit ▸ Local Space</kbd>.
+
+Также существует возможность изменить родителя объекта во время выполнения, отправив объекту сообщение `set_parent`.
+
+```lua
+local parent = go.get_id("bean")
+msg.post("child_bean", "set_parent", { parent_id = parent })
+```
+
+::: important
+Распространенным заблуждением является то, что расположение игрового объекта в иерархии коллекции меняется, когда он становится частью иерархии "родительский-дочерний". Однако, это две разные вещи. Иерархии "родительский-дочерний" динамически изменяют граф сцены, что позволяет визуально привязывать объекты друг к другу. При этом единственное, что определяет адрес игрового объекта, это его место в иерархии коллекции. Адрес статический на протяжении всего срока существования объекта.
+:::

+ 268 - 0
docs/ru/manuals/editor.md

@@ -0,0 +1,268 @@
+---
+title: Обзор редактора
+brief: Данное руководство представляет собой обзор внешнего вида и принципов работы редактора Defold, а также навигации в нем.
+---
+
+# Обзор редактора
+
+Назначение редактора - просмотр и эффективное управление файлами игрового проекта. При открытии файла на редактирование, запускается соответствующий редактор, при этом вся необходимая информация о файле отображается в отдельных представлениях.
+
+## Запуск редактора
+
+При запуске редактора Defold, появляется экран выбора и создания проекта. Кликните мышью, в соответствии с желаемым действием:
+
+Home
+: Отображает недавно открывавшиеся проекты, предоставляя к ним быстрый доступ. Это представление открывается по умолчанию.
+
+New Project
+: Позволяет создать новый проект Defold. Здесь вам необходимо выбрать, хотите ли вы использовать базовый шаблон (из вкладки *From Template*), следовать учебнику (вкладка *From Tutorial*) или попробовать один из проектов-примеров (вкладка *From Sample*).
+
+  ![new project](images/editor/new_project.png){srcset="images/editor/[email protected] 2x"}
+
+  При создании новый проект сохраняется на локальном диске, и все сделанные изменения сохраняются локально.
+
+Подробнее о различных опциях можно узнать в [руководстве по настройке проекта](https://www.defold.com/manuals/project-setup/).
+
+## Панели редактора
+
+Редактор Defold разделен на несколько панелей, или представлений, которые отображают определенную информацию.
+
+![Editor 2](images/editor/editor2_overview.png)
+
+Панель *Assets*
+: Содержит список всех файлов, являющихся частью проекта. Навигация по списку осуществляется посредством прокрутки мыши. В этом представлении могут быть выполнены любые файловые операции:
+
+   - Выполните <kbd>двойной клик</kbd> по файлу, чтобы открыть его в редакторе, соответствующем этому типу файлов.
+   - <kbd>Перетащите и бросьте</kbd>, чтобы добавить в проект файлы из других расположений на диске или переместить файлы и папки в новые расположения в пределах проекта.
+   - Выполните <kbd>клик ПКМ</kbd>, чтобы открыть _контекстное меню_, с помощью которого можно создавать новые файлы или папки, переименовывать, удалять, отслеживать файловые зависимости и многое другое.
+
+Панель *Editor*
+
+: Представление по центру отображает текущий открытый файл в редакторе соответствующего типа. Все визуальные редакторы позволяют управлять видом камеры:
+
+- Панорамирование: <kbd>Alt + ЛКМ</kbd>.
+- Зумирование: <kbd>Alt + ПКМ</kbd> (трёхкнопочная мышь) или <kbd>Ctrl + Mouse button</kbd> (однокнопочная мышь). Если мышь оснащена колесом прокрутки, его можно использовать для зумирования.
+- Вращение в 3D: <kbd>Ctrl + ЛКМ</kbd>.
+
+В правом верхнем углу представления сцены расположен тулбар, на котором можно найти инструменты манипулирования объектами: *Move*, *Rotate* и *Scale*.
+
+![toolbar](images/editor/toolbar.png){srcset="images/editor/[email protected] 2x"}
+
+Панель *Outline*
+: Это представление отображает содержимое редактируемого в данный момент файла в виде иерархической древовидной структуры. Outline отражает представление редактора, позволяя выполнять операции с элементами:
+   - <kbd>Кликните</kbd> по элементу, чтобы выделить его. Удерживайте <kbd>Shift</kbd> или <kbd>Option</kbd>, чтобы расширить выделение.
+   - <kbd>Перетащите и бросьте</kbd> элемент для перемещения. Бросьте какой-либо игровой объект на другой игровой объект в коллекции, чтобы сделать его дочерним.
+   - <kbd>Кликните ПКМ</kbd> чтобы открыть _контекстное меню_, с помощью которого можно добавлять, удалять выделенные элементы и т. д.
+
+Панель *Properties*
+: Это представление отображает свойства (такие как Position, Rotation, Animation и т. д.), ассоциированные с текущим выбранным элементом.
+
+Панель *Tools*
+: В этом представлении есть несколько вкладок. Вкладка *Console* отображает вывод какой-либо ошибки или целенаправленный вывод, осуществляемый вами во время выполнения игры. Рядом с консолью находятся вкладки *Build Errors*, *Search Results*, а также *Curve Editor*, используемый при редактировании кривых в редакторе частиц. Панель Tools также используется для взаимодействия со встроенным отладчиком.
+
+Панель *Changed Files*
+: Если проект использует распределённую систему контроля версий Git, это представление отображает список файлов проекта, которые были изменены, добавлены или удалены. Регулярно выполняя синхронизацию проекта, вы можете синхронизировать свою локальную копию с тем, что хранится в Git-репозитории проекта, что позволяет сотрудничать с командой без риска потери своей работы в случае сбоя. Подробнее о Git можно узнать в нашем [руководстве по контролю версий] (/manuals/version-control/). В этом представлении можно выполнять некоторые файловые операции:
+
+   - Выполните <kbd>двойной клик</kbd> по файлу чтобы открыть представление отличий. Defold открывает файл в подходящем редакторе, так же, как и в представлении ассетов.
+   - Выполните <kbd>клик ПКМ</kbd> по файлу, чтобы открыть всплывающее меню, с помощью которого можно открыть представление отличий, отменить все изменения, сделанные в файле, найти файл в файловой системе и многое другое.
+
+## Двухпанельное редактирование
+
+Когда открыто несколько файлов, для каждого из них в верхней части окна редактора отображается отдельная вкладка. Рядом друг с другом можно открыть 2 представления редактора. Выполните <kbd>клик ПКМ</kbd> по вкладке редактора, который хотите переместить, и выберите <kbd>Move to Other Tab Pane</kbd>.
+
+![2 panes](images/editor/2-panes.png){srcset="images/editor/[email protected] 2x"}
+
+С помощью меню вкладок можно также поменять местами две панели или объединить их в одну.
+
+## Редактор сцен
+
+Двойной клик по файлу коллекции или игрового объекта приводит к открытию *редактора сцены*:
+
+![Select object](images/editor/select.jpg)
+
+Выделение объектов
+: Клик по объектам в главном окне выделяет их. Прямоугольник, окружающий объект в представлении редактора, будет подсвечен зеленым цветом, указывая на то, какой элемент выделен. Выделенный объект также подсвечивается в представлении *Outline*.
+
+  Объекты можно выделять и другим способом:
+
+  - <kbd>Кликните и перетащите</kbd>, чтобы выделить все объекты, попавшие внутрь области выделения.
+  - <kbd>Кликните</kbd> по объекту в представлении Outline.
+
+  Для добавления к выделению зажмите и удерживайте <kbd>Shift</kbd> или <kbd>⌘</kbd> (Mac) / <kbd>Ctrl</kbd> (Win/Linux) при клике по объектам.
+
+Инструмент перемещения
+: ![Move tool](images/editor/icon_move.png){.left}
+  Для перемещения объектов используется инструмент *Move*. Активировать его можно на тулбаре в правом верхнем углу редактора сцены, или нажав клавишу <kbd>W</kbd>.
+
+  ![Move object](images/editor/move.jpg)
+
+  На выделенном объекте отображается набор манипуляторов (квадратики и стрелки). Перетаскивание центрального маркера, в виде зеленого квадратика, приводит к свободному перемещению объекта в пространстве экрана, перетаскивание стрелок позволяет перемещать объект по осям X, Y и Z. Здесь же имеются маркеры-квадратики для перемещения объекта в плоскости X-Y, а также (видно при повороте камеры в 3D) в плоскостях X-Z и Y-Z.
+
+Инструмент вращения
+: ![Rotate tool](images/editor/icon_rotate.png){.left}
+  Для вращения объектов используется инструмент *Rotate*, который можно активировать на тулбаре и нажатием клавиши <kbd>E</kbd>.
+
+  ![Move object](images/editor/rotate.jpg)
+
+  Данный инструмент состоит из четырех круговых манипуляторов: один оранжевый, вращающий объект в пространстве экрана, и по одному для вращения вокруг каждой из осей X, Y и Z. Поскольку вид является параллельным по отношению к осям X и Y, круги отображаются только как две прямые, пересекающие объект.
+
+Инструмент масштабирования
+: ![Scale tool](images/editor/icon_scale.png){.left}
+  Для масштабирования объектов используется инструмент *Scale*, который можно активировать на тулбаре и нажатием клавиши <kbd>R</kbd>.
+
+  ![Scale object](images/editor/scale.jpg)
+
+  Этот инструмент состоит из набора квадратных маркеров. Из них центральный равномерно масштабирует объект по всем осям (включая Z). Также имеется по одному маркеру для масштабирования вдоль каждой из осей X, Y и Z и по одному - для масштабирования в плоскостях X-Y, X-Z и Y-Z.
+
+## Создание новых файлов проекта
+
+Создавать новые файлы ресурсов можно двумя способами: выполнив <kbd>File ▸ New...</kbd> и выбрав тип файла из меню, либо используя контекстное меню:
+
+Выполните <kbd>клик ПКМ</kbd> в целевом расположении в браузере *ассетов*, затем выберите <kbd>New... ▸ [тип файла]</kbd>:
+
+![create file](images/editor/create_file.png){srcset="images/editor/[email protected] 2x"}
+
+Введите подходящее имя для нового файла. Полное имя файла, включая суффикс типа файла, отображается в диалоге в строке *Path*:
+
+![create file name](images/editor/create_file_name.png){srcset="images/editor/[email protected] 2x"}
+
+## Импортирование файлов в проект
+
+Добавление в проект файлов ассетов (изображений, звуков, моделей и т. д.) осуществляется простым перетаскиванием их в нужную позицию в браузер *ассетов*. При этом создаются _копии_ файлов в выбранном расположении файловой структуры проекта. За подробностями обращайтесь к [нашему руководству по импортированию ассетов](/manuals/importing-assets/).
+
+![Import files](images/editor/import.png){srcset="images/editor/[email protected] 2x"}
+
+## Обновление редактора
+
+Редактор будет автоматически проверять наличие обновлений. При обнаружении обновление будет отображаться в правом нижнем углу окна редактора и на экране выбора проекта. При клике по ссылке Update Available будет произведена загрузка и обновление редактора.
+
+![Update from project selection](images/editor/update-project-selection.png){srcset="images/editor/[email protected] 2x"}
+
+![Update from editor](images/editor/update-main.png){srcset="images/editor/[email protected] 2x"}
+
+## Клавиатурные сокращения
+
+### Сокращения по умолчанию
+
+| Команда | Windows | macOS | Linux |
+|---------|---------|-------|-------|
+| Add | <kbd>A</kbd> | <kbd>A</kbd> | <kbd>A</kbd> |
+| Add secondary | <kbd>Shift</kbd>+<kbd>A</kbd> | <kbd>Shift</kbd>+<kbd>A</kbd> | <kbd>Shift</kbd>+<kbd>A</kbd> |
+| Backwards tab trigger | <kbd>Shift</kbd>+<kbd>Tab</kbd> | <kbd>Shift</kbd>+<kbd>Tab</kbd> | <kbd>Shift</kbd>+<kbd>Tab</kbd> |
+| Beginning of file | <kbd>Ctrl</kbd>+<kbd>Home</kbd> | <kbd>Cmd</kbd>+<kbd>Up</kbd> | <kbd>Ctrl</kbd>+<kbd>Home</kbd> |
+| Beginning of line |  | <kbd>Ctrl</kbd>+<kbd>A</kbd> |  |
+| Beginning of line text | <kbd>Home</kbd> | <kbd>Home</kbd> | <kbd>Home</kbd> |
+| Build | <kbd>Ctrl</kbd>+<kbd>B</kbd> | <kbd>Cmd</kbd>+<kbd>B</kbd> | <kbd>Ctrl</kbd>+<kbd>B</kbd> |
+| Close | <kbd>Ctrl</kbd>+<kbd>W</kbd> | <kbd>Cmd</kbd>+<kbd>W</kbd> | <kbd>Ctrl</kbd>+<kbd>W</kbd> |
+| Close all | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>W</kbd> | <kbd>Shift</kbd>+<kbd>Cmd</kbd>+<kbd>W</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>W</kbd> |
+| Continue | <kbd>F5</kbd> | <kbd>F5</kbd> | <kbd>F5</kbd> |
+| Copy | <kbd>Ctrl</kbd>+<kbd>C</kbd> | <kbd>Cmd</kbd>+<kbd>C</kbd> | <kbd>Ctrl</kbd>+<kbd>C</kbd> |
+| Cut | <kbd>Ctrl</kbd>+<kbd>X</kbd> | <kbd>Cmd</kbd>+<kbd>X</kbd> | <kbd>Ctrl</kbd>+<kbd>X</kbd> |
+| Delete | <kbd>Delete</kbd> | <kbd>Delete</kbd> | <kbd>Delete</kbd> |
+| Delete backward | <kbd>Backspace</kbd> | <kbd>Backspace</kbd> | <kbd>Backspace</kbd> |
+| Delete line |  | <kbd>Ctrl</kbd>+<kbd>D</kbd> |  |
+| Delete next word | <kbd>Ctrl</kbd>+<kbd>Delete</kbd> | <kbd>Alt</kbd>+<kbd>Delete</kbd> | <kbd>Ctrl</kbd>+<kbd>Delete</kbd> |
+| Delete prev word | <kbd>Ctrl</kbd>+<kbd>Backspace</kbd> | <kbd>Alt</kbd>+<kbd>Backspace</kbd> | <kbd>Ctrl</kbd>+<kbd>Backspace</kbd> |
+| Delete to end of line | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Delete</kbd> | <kbd>Cmd</kbd>+<kbd>Delete</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Delete</kbd> |
+| Documentation | <kbd>F1</kbd> | <kbd>F1</kbd> | <kbd>F1</kbd> |
+| Down | <kbd>Down</kbd> | <kbd>Down</kbd> | <kbd>Down</kbd> |
+| End of file | <kbd>Ctrl</kbd>+<kbd>End</kbd> | <kbd>Cmd</kbd>+<kbd>Down</kbd> | <kbd>Ctrl</kbd>+<kbd>End</kbd> |
+| End of line | <kbd>End</kbd> | <kbd>Ctrl</kbd>+<kbd>E</kbd> | <kbd>End</kbd> |
+| Enter | <kbd>Enter</kbd> | <kbd>Enter</kbd> | <kbd>Enter</kbd> |
+| Erase tool | <kbd>Shift</kbd>+<kbd>E</kbd> | <kbd>Shift</kbd>+<kbd>E</kbd> | <kbd>Shift</kbd>+<kbd>E</kbd> |
+| Escape | <kbd>Esc</kbd> | <kbd>Esc</kbd> | <kbd>Esc</kbd> |
+| Find next | <kbd>Ctrl</kbd>+<kbd>G</kbd> | <kbd>Cmd</kbd>+<kbd>G</kbd> | <kbd>Ctrl</kbd>+<kbd>G</kbd> |
+| Find prev | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>G</kbd> | <kbd>Shift</kbd>+<kbd>Cmd</kbd>+<kbd>G</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>G</kbd> |
+| Find text | <kbd>Ctrl</kbd>+<kbd>F</kbd> | <kbd>Cmd</kbd>+<kbd>F</kbd> | <kbd>Ctrl</kbd>+<kbd>F</kbd> |
+| Frame selection | <kbd>F</kbd> | <kbd>F</kbd> | <kbd>F</kbd> |
+| Goto line | <kbd>Ctrl</kbd>+<kbd>L</kbd> | <kbd>Cmd</kbd>+<kbd>L</kbd> | <kbd>Ctrl</kbd>+<kbd>L</kbd> |
+| Hide selected | <kbd>Ctrl</kbd>+<kbd>E</kbd> | <kbd>Cmd</kbd>+<kbd>E</kbd> | <kbd>Ctrl</kbd>+<kbd>E</kbd> |
+| Hot reload | <kbd>Ctrl</kbd>+<kbd>R</kbd> | <kbd>Cmd</kbd>+<kbd>R</kbd> | <kbd>Ctrl</kbd>+<kbd>R</kbd> |
+| Left | <kbd>Left</kbd> | <kbd>Left</kbd> | <kbd>Left</kbd> |
+| Move down | <kbd>Alt</kbd>+<kbd>Down</kbd> | <kbd>Alt</kbd>+<kbd>Down</kbd> | <kbd>Alt</kbd>+<kbd>Down</kbd> |
+| Move tool | <kbd>W</kbd> | <kbd>W</kbd> | <kbd>W</kbd> |
+| Move up | <kbd>Alt</kbd>+<kbd>Up</kbd> | <kbd>Alt</kbd>+<kbd>Up</kbd> | <kbd>Alt</kbd>+<kbd>Up</kbd> |
+| New file | <kbd>Ctrl</kbd>+<kbd>N</kbd> | <kbd>Cmd</kbd>+<kbd>N</kbd> | <kbd>Ctrl</kbd>+<kbd>N</kbd> |
+| Next word | <kbd>Ctrl</kbd>+<kbd>Right</kbd> | <kbd>Alt</kbd>+<kbd>Right</kbd> | <kbd>Ctrl</kbd>+<kbd>Right</kbd> |
+| Open | <kbd>Ctrl</kbd>+<kbd>O</kbd> | <kbd>Cmd</kbd>+<kbd>O</kbd> | <kbd>Ctrl</kbd>+<kbd>O</kbd> |
+| Open asset | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>R</kbd> | <kbd>Cmd</kbd>+<kbd>P</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>R</kbd> |
+| Page down | <kbd>Page Down</kbd> | <kbd>Page Down</kbd> | <kbd>Page Down</kbd> |
+| Page up | <kbd>Page Up</kbd> | <kbd>Page Up</kbd> | <kbd>Page Up</kbd> |
+| Paste | <kbd>Ctrl</kbd>+<kbd>V</kbd> | <kbd>Cmd</kbd>+<kbd>V</kbd> | <kbd>Ctrl</kbd>+<kbd>V</kbd> |
+| Preferences | <kbd>Ctrl</kbd>+<kbd>Comma</kbd> | <kbd>Cmd</kbd>+<kbd>Comma</kbd> | <kbd>Ctrl</kbd>+<kbd>Comma</kbd> |
+| Prev word | <kbd>Ctrl</kbd>+<kbd>Left</kbd> | <kbd>Alt</kbd>+<kbd>Left</kbd> | <kbd>Ctrl</kbd>+<kbd>Left</kbd> |
+| Proposals | <kbd>Ctrl</kbd>+<kbd>Space</kbd> | <kbd>Ctrl</kbd>+<kbd>Space</kbd> | <kbd>Ctrl</kbd>+<kbd>Space</kbd> |
+| Quit | <kbd>Ctrl</kbd>+<kbd>Q</kbd> | <kbd>Cmd</kbd>+<kbd>Q</kbd> | <kbd>Ctrl</kbd>+<kbd>Q</kbd> |
+| Realign camera | <kbd>Period</kbd> | <kbd>Period</kbd> | <kbd>Period</kbd> |
+| Rebuild | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>B</kbd> | <kbd>Shift</kbd>+<kbd>Cmd</kbd>+<kbd>B</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>B</kbd> |
+| Rebundle | <kbd>Ctrl</kbd>+<kbd>U</kbd> | <kbd>Cmd</kbd>+<kbd>U</kbd> | <kbd>Ctrl</kbd>+<kbd>U</kbd> |
+| Redo | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Z</kbd> | <kbd>Shift</kbd>+<kbd>Cmd</kbd>+<kbd>Z</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Z</kbd> |
+| Reindent | <kbd>Ctrl</kbd>+<kbd>I</kbd> | <kbd>Ctrl</kbd>+<kbd>I</kbd> | <kbd>Ctrl</kbd>+<kbd>I</kbd> |
+| Reload stylesheet |  | <kbd>Ctrl</kbd>+<kbd>R</kbd> |  |
+| Rename | <kbd>F2</kbd> | <kbd>F2</kbd> | <kbd>F2</kbd> |
+| Replace next | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>H</kbd> | <kbd>Alt</kbd>+<kbd>Cmd</kbd>+<kbd>G</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>H</kbd> |
+| Replace text |  | <kbd>Alt</kbd>+<kbd>Cmd</kbd>+<kbd>F</kbd> |  |
+| Right | <kbd>Right</kbd> | <kbd>Right</kbd> | <kbd>Right</kbd> |
+| Rotate tool | <kbd>E</kbd> | <kbd>E</kbd> | <kbd>E</kbd> |
+| Save all | <kbd>Ctrl</kbd>+<kbd>S</kbd> | <kbd>Cmd</kbd>+<kbd>S</kbd> | <kbd>Ctrl</kbd>+<kbd>S</kbd> |
+| Scale tool | <kbd>R</kbd> | <kbd>R</kbd> | <kbd>R</kbd> |
+| Scene stop | <kbd>Ctrl</kbd>+<kbd>T</kbd> | <kbd>Cmd</kbd>+<kbd>T</kbd> | <kbd>Ctrl</kbd>+<kbd>T</kbd> |
+| Search in files | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>F</kbd> | <kbd>Shift</kbd>+<kbd>Cmd</kbd>+<kbd>F</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>F</kbd> |
+| Select all | <kbd>Ctrl</kbd>+<kbd>A</kbd> | <kbd>Cmd</kbd>+<kbd>A</kbd> | <kbd>Ctrl</kbd>+<kbd>A</kbd> |
+| Select beginning of file | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Home</kbd> | <kbd>Shift</kbd>+<kbd>Cmd</kbd>+<kbd>Up</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Home</kbd> |
+| Select beginning of line |  | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>A</kbd> |  |
+| Select beginning of line text | <kbd>Shift</kbd>+<kbd>Home</kbd> | <kbd>Shift</kbd>+<kbd>Home</kbd> | <kbd>Shift</kbd>+<kbd>Home</kbd> |
+| Select down | <kbd>Shift</kbd>+<kbd>Down</kbd> | <kbd>Shift</kbd>+<kbd>Down</kbd> | <kbd>Shift</kbd>+<kbd>Down</kbd> |
+| Select end of file | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>End</kbd> | <kbd>Shift</kbd>+<kbd>Cmd</kbd>+<kbd>Down</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>End</kbd> |
+| Select end of line | <kbd>Shift</kbd>+<kbd>End</kbd> | <kbd>Shift</kbd>+<kbd>Alt</kbd>+<kbd>Down</kbd> | <kbd>Shift</kbd>+<kbd>End</kbd> |
+| Select left | <kbd>Shift</kbd>+<kbd>Left</kbd> | <kbd>Shift</kbd>+<kbd>Left</kbd> | <kbd>Shift</kbd>+<kbd>Left</kbd> |
+| Select next occurrence | <kbd>Ctrl</kbd>+<kbd>D</kbd> | <kbd>Cmd</kbd>+<kbd>D</kbd> | <kbd>Ctrl</kbd>+<kbd>D</kbd> |
+| Select next word | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Right</kbd> | <kbd>Shift</kbd>+<kbd>Alt</kbd>+<kbd>Right</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Right</kbd> |
+| Select page down | <kbd>Shift</kbd>+<kbd>Page Down</kbd> | <kbd>Shift</kbd>+<kbd>Page Down</kbd> | <kbd>Shift</kbd>+<kbd>Page Down</kbd> |
+| Select page up | <kbd>Shift</kbd>+<kbd>Page Up</kbd> | <kbd>Shift</kbd>+<kbd>Page Up</kbd> | <kbd>Shift</kbd>+<kbd>Page Up</kbd> |
+| Select prev word | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Left</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Left</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Left</kbd> |
+| Select right | <kbd>Shift</kbd>+<kbd>Right</kbd> | <kbd>Shift</kbd>+<kbd>Right</kbd> | <kbd>Shift</kbd>+<kbd>Right</kbd> |
+| Show last hidden | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>E</kbd> | <kbd>Shift</kbd>+<kbd>Cmd</kbd>+<kbd>E</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>E</kbd> |
+| Show palette | <kbd>Space</kbd> | <kbd>Space</kbd> | <kbd>Space</kbd> |
+| Split selection into lines | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>L</kbd> | <kbd>Shift</kbd>+<kbd>Cmd</kbd>+<kbd>L</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>L</kbd> |
+| Step into | <kbd>F11</kbd> | <kbd>F11</kbd> | <kbd>F11</kbd> |
+| Step out | <kbd>Shift</kbd>+<kbd>F11</kbd> | <kbd>Shift</kbd>+<kbd>F11</kbd> | <kbd>Shift</kbd>+<kbd>F11</kbd> |
+| Step over | <kbd>F10</kbd> | <kbd>F10</kbd> | <kbd>F10</kbd> |
+| Stop debugger | <kbd>Shift</kbd>+<kbd>F5</kbd> |  | <kbd>Shift</kbd>+<kbd>F5</kbd> |
+| Tab | <kbd>Tab</kbd> | <kbd>Tab</kbd> | <kbd>Tab</kbd> |
+| Toggle breakpoint | <kbd>F9</kbd> | <kbd>F9</kbd> | <kbd>F9</kbd> |
+| Toggle comment | <kbd>Ctrl</kbd>+<kbd>Slash</kbd> | <kbd>Cmd</kbd>+<kbd>Slash</kbd> | <kbd>Ctrl</kbd>+<kbd>Slash</kbd> |
+| Toggle component guides | <kbd>Ctrl</kbd>+<kbd>H</kbd> | <kbd>Ctrl</kbd>+<kbd>Cmd</kbd>+<kbd>H</kbd> | <kbd>Ctrl</kbd>+<kbd>H</kbd> |
+| Toggle pane bottom | <kbd>F7</kbd> | <kbd>F7</kbd> | <kbd>F7</kbd> |
+| Toggle pane left | <kbd>F6</kbd> | <kbd>F6</kbd> | <kbd>F6</kbd> |
+| Toggle pane right | <kbd>F8</kbd> | <kbd>F8</kbd> | <kbd>F8</kbd> |
+| Toggle visibility filters | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>I</kbd> | <kbd>Shift</kbd>+<kbd>Cmd</kbd>+<kbd>I</kbd> | <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>I</kbd> |
+| Undo | <kbd>Ctrl</kbd>+<kbd>Z</kbd> | <kbd>Cmd</kbd>+<kbd>Z</kbd> | <kbd>Ctrl</kbd>+<kbd>Z</kbd> |
+| Up | <kbd>Up</kbd> | <kbd>Up</kbd> | <kbd>Up</kbd> |
+| Up major | <kbd>Shift</kbd>+<kbd>Up</kbd> | <kbd>Shift</kbd>+<kbd>Up</kbd> | <kbd>Shift</kbd>+<kbd>Up</kbd> |
+| Zoom in | <kbd>Ctrl</kbd>+<kbd>'</kbd>+<kbd>'</kbd> | <kbd>Cmd</kbd>+<kbd>'</kbd>+<kbd>'</kbd> | <kbd>Ctrl</kbd>+<kbd>'</kbd>+<kbd>'</kbd> |
+| Zoom out | <kbd>Ctrl</kbd>+<kbd>'-'</kbd> | <kbd>Cmd</kbd>+<kbd>'-'</kbd> | <kbd>Ctrl</kbd>+<kbd>'-'</kbd> |
+
+
+### Кастомизация сокращений
+
+Клавиатурные сокращения можно настроить, если создать конфигурационный файл (например, `keymap.edn` в домашней директории). Затем необходимо выполнить <kbd>File ▸ Preferences</kbd> и в строку <kbd>Path to custom keymap</kbd> прописать путь к созданному файлу. Необходимо перезапустить Defold после изменения этой настройки, а также каждый раз при редактировании файла keymap.
+
+Просмотреть и скачать файлы конфигурации клавиш можно здесь: [Windows](examples/keymap_win.edn), [MacOS](examples/keymap_macos.edn), [Linux](examples/keymap_linux.edn)
+
+## Журнал событий редактора
+При возникновении проблем с редактором и при необходимости [сообщить о проблеме](/manuals/getting-help/#getting-help), лучше всего предоставить лог-файлы из самого редактора. Лог-файлы редактора можно найти в следующих расположениях:
+
+  * Windows: `C:\Users\ **Your Username** \AppData\Local\Defold`
+  * macOS: `/Users/ **Your Username** /Library/Application Support/` или `~/Library/Application Support/Defold`
+  * Linux: `~/.Defold`
+
+Получить доступ к журналу редактора можно также во время его работы, если он запущен из терминала/командной строки. Для запуска редактора из терминала на macOS:
+
+```
+$ > ./path/to/Defold.app/Contents/MacOS/Defold
+```
+
+
+## FAQ
+:[Editor FAQ](../shared/editor-faq.md)

+ 180 - 0
docs/ru/manuals/glossary.md

@@ -0,0 +1,180 @@
+---
+title: Глоссарий Defold
+brief: В этом руководстве с кратким описанием перечислено все, с чем приходится сталкиваться при работе в Defold.
+---
+
+# Глоссарий Defold
+
+В этом глоссарии дается краткое описание всех элементов и понятий, с которыми сталкиваются пользователи Defold. В большинстве случаев будет дана ссылка на более подробную документацию.
+
+## Набор анимации (Animation Set)
+
+![Animation Set](images/icons/animationset.png){.left} Набор анимации - это ресурс, содержащий список ``.dae``-файлов или других ``.animationset``-файлов, из которых можно считывать анимацию. Вложение одного ``.animationset``-файла в другой удобно при использовании частичных наборов анимации совместно между несколькими моделями. За подробностями обращайтесь к [руководству по 3D-графике](/manuals/graphics/).
+
+## Атлас (Atlas)
+
+![Atlas](images/icons/atlas.png){.left} Атлас - это ресурс, представляющий собой набор отдельных изображений, которые по причинам производительности и эффективности использования памяти формируются на одном большом холсте. Может содержать неподвижные изображения или мультипликации. В качестве общих графических ресурсов атласы используются компонентами GUI, спрайтами, Spine-моделями и частицами. За подробностями обращайтесь к [руководству по атласам](/manuals/atlas).
+
+## Встроенные ресурсы (папка ``builtins``)
+
+![Builtins](images/icons/builtins.png){.left} Проектная папка ``builtins`` - это папка с атрибутом "только для чтения", содержащая полезные ресурсы, доступные по умолчанию. Здесь можно найти стандартныу рендер, рендер-скрипт, материалы и многое другое. Если требуются пользовательские изменения в любом из этих ресурсов, просто скопируйте их в свой проект и отредактируйте на свое усмотрение.
+
+## Камера (Camera)
+
+![Camera](images/icons/camera.png){.left} Камера - это компонент, помогающий определить, какая часть игрового пространства должна быть видимой и как она должна быть спроецирована. Обычно используется для прикрепления камеры к объекту игрового персонажа или для создания отдельного игрового объекта с камерой, который следует за игроком с каким-либо алгоритмом стабилизации движения. За подробностями обращайтесь к [руководству по камерам](/manuals/camera).
+
+## Объект столкновения (Collision Object)
+
+![Collision Object](images/icons/collision-object.png){.left} Объекты столкновения - это компоненты, расширяющие игровые объекты физическими свойствами (такими как пространственная форма, вес, трение и реституция). Эти свойства определяют, как объект столкновения должен сталкиваться с другими объектами столкновения. Наиболее распространенными типами объектов столкновения являются кинематические объекты, динамические объекты и триггеры. Кинематический объект предоставляет подробную информацию о столкновении, на которое необходимо ответить вручную. Динамический объект автоматически моделируется физическим движком, подчиняясь ньютоновским законам физики. Триггеры - это простые формы, которые определяют, вошли ли другие формы в триггер или вышли из него. За подробностями обращайтесь к [руководству по физике](/manuals/physics).
+
+## Компоненты
+
+Компоненты используются для придания игровым объектам определенной выразительности и/или функциональности, таких как графика, анимация, программируемое поведение и звук. Они не существуют сами по себе, они должны содержаться внутри игровых объектов. В Defold существует множество доступных компонентов, описание которых см. в [руководстве по структурным элементам](/manuals/building-blocks).
+
+## Коллекция (Collection)
+
+![Collection](images/icons/collection.png){.left} Коллекция - это механизм Defold для создания шаблонов (что в других движках называется "префабами"), в которых иерархии игровых объектов могут быть использованы повторно. Коллекции - это древовидные структуры, в которых хранятся игровые объекты и другие коллекции. Коллекция всегда хранится в файле и вносится в игру либо статически, вручную средствами редактора, либо динамически, посредством порождения. Описание коллекций см. в  [руководстве по структурным элементам](/manuals/building-blocks).
+
+## Фабрика коллекций (Collection Factory)
+
+![Collection Factory](images/icons/collection-factory.png){.left} Фабрика коллекций используется для динамического порождения иерархий игровых объектов в запущенной игре. За подробностями обращайтесь к [руководству по фабрикам коллекций](/manuals/collection-factory).
+
+## Прокси-коллекция (Collection Proxy)
+
+![Collection](images/icons/collection.png){.left} Прокси-коллекция - это компонент, используемый для загрузки и включения коллекций на лету во время работы приложения или игры. Наиболее распространенным вариантом использования прокси-коллекции является загрузка уровней по мере их воспроизведения. За подробностями обращайтесь к [руководству по прокси-коллекциям](/manuals/collection-proxy).
+
+## Кубическая карта (Cubemap)
+
+![Cubemap](images/icons/cubemap.png){.left} Кубическая карта - это ресурс, представляющий собой особый тип текстуры, состоящий из 6 отдельных частей, отображаемых по аналогии со сторонами куба. Часто используется при рендеринге скайбоксов и различных видов карт отражения и освещения.
+
+## Отладка (Debugging)
+
+В какой-то момент ваша игра будет вести себя непредсказуемо, и придется выяснять, в чем заключается проблема. Научиться отлаживать - это искусство, и, к счастью, Defold поставляется со встроенным отладчиком, который поможет вам в этом. За подробностями обращайтесь к [руководству по отладке](/manuals/debugging).
+
+## Профили отображения (Display Profiles)
+
+![Display profiles](images/icons/display-profiles.png){.left} Профили отображения - это ресурс, используемый для определения компоновки графического интерфейса в зависимости от ориентации, соотношения сторон или модели устройства. Он помогает адаптировать пользовательский интерфейс для любого типа устройств. За подробностями обращайтесь к [руководству по компоновкам](/manuals/gui-layouts).
+
+## Фабрика (Factory)
+
+![Factory](images/icons/factory.png){.left} В некоторых ситуациях не удастся вручную разместить все необходимые игровые объекты в коллекции, и придется создавать игровые объекты динамически, на лету. Например, игрок может стрелять пулями, и каждый выстрел должен быть динамически порожден и отправлен при нажатии игроком на спусковой механизм. Для динамического создания игровых объектов (из предварительно распределенного пула объектов) используется компонент Factory. За подробностями обращайтесь к [руководству по фабрикам](/manuals/factory).
+
+## Шрифт (Font)
+
+![Font file](images/icons/font.png){.left} Шрифт - это ресурс, который создается из файла шрифтов TrueType или OpenType. Шрифт определяет, какой размер и какой тип оформления (контур и тень) должен быть у визуализируемого шрифта. Шрифт используется компонентами GUI и Label. За подробностями обращайтесь к [руководству по файлам шрифтов](/manuals/font/).
+
+## Фрагментный шейдер (Fragment Program)
+
+![Fragment shader](images/icons/fragment-shader.png){.left} Это программа, которая запускается на графическом процессоре для каждого пикселя (фрагмента) в полигоне, при отрисовке его на экране. Целью фрагментного шейдера является определение цвета каждого полученного фрагмента. Это делается путем вычисления, выборки текстур (по одной или несколько) или комбинации выборки и вычислений. За подробностями обращайтесь к [руководству по шейдерам](/manuals/shader).
+
+## Геймпады (Gamepads)
+
+![Gamepads](images/icons/gamepad.png){.left} Геймпады - это файл ресурса, определяющий, как конкретный ввод устройства геймпада соотносится с триггерами ввода геймпада на определенной платформе. За подробностями обращайтесь к [руководству по вводу](/manuals/input).
+
+## Игровой объект (Game Object)
+
+![Game object](images/icons/game-object.png){.left} Игровые объекты - это простые объекты, которые имеют свою отдельную продолжительность жизни во время выполнения игры. Игровые объекты - это контейнеры, которые обычно оснащены визуальными или звуковыми компонентами, такими как звук или спрайт. Они также могут быть оснащены поведением через компоненты Script. Игровые объекты создаются и помещаются в коллекции средствами редактора, либо динамически порождаются во время выполнения приложения посредством фабрик. Описание игровых объектов см. в [руководстве по блокам построения](/manuals/building-blocks).
+
+## Графический пользовательский интерфейс (GUI)
+
+![GUI component](images/icons/gui.png){.left} GUI - это компонент, содержащий элементы, используемые для построения пользовательских интерфейсов: текстовые и закрашенные и/или текстурированные блоки. Элементы могут быть организованы в иерархические структуры, заскриптованы и анимированны. Компоненты GUI обычно используются для создания HUD, систем меню и экранных уведомлений. Управляются с помощью GUI-скриптов, которые определяют поведение графического интерфейса и контролируют взаимодействие с пользователем. За подробностями обращайтесь к [руководству по GUI](/manuals/gui).
+
+## GUI-скрипт (GUI Script)
+
+![GUI script](images/icons/script.png){.left} Для управления поведением компонентов графического интерфейса используются GUI-скрипты. Они управляют анимацией GUI и взаимодействием пользователя с GUI-элементами. Подробнее о том, как скрипты Lua используются в Defold, см. в [руководстве Lua в Defold](/manuals/lua).
+
+## Горячая перезагрузка (Hot Reload)
+
+Редактор Defold позволяет обновлять контент в уже запущенной игре на рабочем столе и устройстве. Такая возможность является чрезвычайно мощной и может повысить эффективность процесса разработки. За подробностями обращайтесь к [руководству по горячей перезагрузке ресурсов](/manuals/hot-reload).
+
+## Привязка ввода (Input Binding)
+
+![Input binding](images/icons/input-binding.png){.left} Файлы привязки ввода определяют, как игра должна интерпретировать аппаратный ввод (мышь, клавиатура, сенсорный экран и геймпад). Файл связывает аппаратный ввод с вводом _действий_ высокого уровня вида "jump" и "move_forward". В скриптовых компонентах, которые прослушивают ввод, можно написать сценарий действий, которые игра или приложение должны принять с учетом определенного ввода. За подробностями обращайтесь к [руководству по вводу](/manuals/input).
+
+## Текстовая метка (Label)
+
+![Label](images/icons/label.png){.left} Текстовая метка - это компонент, позволяющий прикрепить текстовое содержимое к любому игровому объекту. Он отображает фрагмент текста с определенным шрифтом на экране в пространстве игры. За подробностями обращайтесь к [руководству по меткам](/manuals/label).
+
+## Библиотека
+
+![Game object](images/icons/builtins.png){.left} Defold позволяет обмениваться данными между проектами с помощью мощного механизма библиотек. Это может использоваться для настройки общих библиотек, которые доступны из всех ваших проектов, как для себя, так и для всей команды. За подробностями о механизме работы библиотек обращайтесь к [руководству по библиотекам](/manuals/libraries).
+
+## Язык Lua
+
+Язык программирования Lua используется в Defold для создания логики игры. Lua - это мощный, эффективный и компактный скриптовый язык. Он поддерживает процедурное, объектно-ориентированное, функциональное программирование, программирование на основе данных и описание данных. Подробнее о языке можно прочитать на официальной домашней странице Lua по адресу https://www.lua.org/ и в [руководстве Lua в Defold](/manuals/lua).
+
+## Lua-модуль
+
+![Lua module](images/icons/lua-module.png){.left} Lua-модули позволяют структурировать проект и создавать библиотечный код многоразового использования. За подробностями обращайтесь к [руководству по Lua-модулям](/manuals/modules/).
+
+## Материал (Material)
+
+![Material](images/icons/material.png){.left} Материалы определяют, как должны быть визуализированы различные объекты посредством определения шейдеров и их свойств. За подробностями обращайтесь к [руководству по материалам](/manuals/material).
+
+## Сообщение
+
+Компоненты общаются друг с другом и с другими системами посредством передачи сообщений. Компоненты также реагируют на набор предопределенных сообщений, которые влияют на них или вызывают определенные действия. Сообщения отправляются, например, с целью скрыть графику или подтолкнуть физические объекты. Движок также использует сообщения для уведомления компонентов о событиях, например, при столкновении физических форм. Механизму передачи сообщений необходим получатель для каждого отправленного сообщения. Поэтому все в игре адресовано уникально. Чтобы обеспечить связь между объектами, Defold расширяет Lua возможностью передачи сообщений. Defold также предоставляет библиотеку полезных функций.
+
+Например, Lua-код, необходимый для того, чтобы скрыть компонент спрайта в игровом объекте, выглядит следующим образом:
+
+```lua
+msg.post("#weapon", "disable")
+```
+
+Здесь `"#weapon"` - это адрес компонента спрайта текущего объекта. `"disable"` - это сообщение, на которое реагируют компоненты спрайта. См. [руководство по передачи сообщений](/manuals/message-passing) чтобы подробнее узнать как это работает.
+
+## Модель (Model)
+
+![Model](images/icons/model.png){.left} С помощью компонента 3D-модели можно импортировать в игру Collada-сетку, скелет и анимационные ассеты. За подробностями обращайтесь к [руководству по моделям](/manuals/model/).
+
+## Эффект частиц (ParticleFX)
+
+![ParticleFX](images/icons/particlefx.png){.left} Частицы очень полезны для создания приятных визуальных эффектов, особенно в играх. Вы можете использовать их для создания тумана, дыма, огня, дождя или падающих листьев. Defold содержит мощный редактор эффектов частиц, позволяющий создавать и корректировать эффекты во время выполнения игра. Подробнее о том, как это работает см. в [руководстве по эффектам частиц](/manuals/particlefx).
+
+## Профилирование
+
+Хорошая производительность является ключевым фактором в играх, и очень важно, чтобы была возможность выполнять профилирование производительности и памяти, с целью оценки игры и определения узких мест в производительности и проблем с памятью, подлежащих устранению. Подробнее об инструментах профилирования, доступных в Defold, см. в [руководстве по профилированию](/manuals/profiling).
+
+## Рендер (Render)
+
+![Render](images/icons/render.png){.left} Файлы ``.render`` содержат настройки, используемые при рендеринге игры на экран. Файлы ``.render`` определяют, какой рендер-скрипт и какие материалы использовать для рендеринга. За подробностями обращайтесь к [руководству по рендеру](/manuals/render/).
+
+## Рендер-скрипт (Render Script)
+
+![Render script](images/icons/script.png){.left} Рендер-скрипт - это Lua-скрипт, который управляет выводом игры или приложения на экран. Существует рендер-скрипт по умолчанию, который охватывает большинство распространенных случаев, но также можно написать свой собственный, если требуются пользовательские модели освещения и других эффектов. За подробностями о процессе рендеринга обращайтесь к [руководству по рендеру](/manuals/render/), о том, как Lua-скрипты используются в Defold - к [руководству Lua в Defold](/manuals/lua).
+
+## Скрипт (Script)
+
+![Script](images/icons/script.png){.left} Скрипт - это компонент, который содержит программу, определяющую поведение игрового объекта. С помощью скриптов можно указать правила игры, реакцию объекта на различные взаимодействия (как с игроком, так и с другими объектами). Все сценарии написаны на языке программирования Lua. Чтобы иметь возможность работать с Defold, вы или кто-то из вашей команды должны научиться программировать на Lua. Для обзора Lua и подробностей о том, как Lua-скрипты используются в Defold обращайтесь к [руководству Lua в Defold](/manuals/lua).
+
+## Звук (Sound)
+
+![Sound](images/icons/sound.png){.left} Звук - это компонент, отвечающий за воспроизведение определенного звука. В настоящее время Defold поддерживает звуковые файлы в форматах WAV и Ogg Vorbis. За подробностями обращайтесь к [руководству по звукам](/manuals/sound).
+
+## Spine-модель (Spine Model)
+
+![Spine model](images/icons/spine-model.png){.left} Spine-модель - это компонент, используемый для оживления скелетной Spine-анимации в Defold. За информацией о том, как его использовать, обращайтесь к [руководству по Spine-моделям](/manuals/spinemodel).
+
+## Spine-сцена (Spine Scene)
+
+![Spine scene](images/icons/spine-scene.png){.left} Spine-сцена - это ресурс, связывающий файл данных Spine JSON и файл атласа изображения Defold, используемого для заполнения графикой слотов костей. [Руководство по Spine-анимации](/manuals/spine) содержит более подробную информацию.
+
+## Спрайт (Sprite)
+
+![Sprite](images/icons/sprite.png){.left} Спрайт - это компонент, расширяющий игровые объекты графикой. Он отображает изображение либо из тайлового источника, либо из атласа. Спрайты имеют встроенную поддержку флипбук и костевой анимации. Обычно используются для персонажей и предметов.
+
+## Текстурные профили (Texture Profiles)
+
+![Texture profiles](images/icons/texture-profiles.png){.left} Текстурные профили - это ресурс, используемый в процессе пакетирования для автоматической обработки и сжатия данных изображения (в атласах, тайловых источниках, кубических картах и автономных текстурах, используемых для моделей, GUI и т. д.). За подробностями обращайтесь к [руководству по текстурным профилям](/manuals/texture-profiles).
+
+## Тайловая карта (Tile Map)
+
+![Tile map](images/icons/tilemap.png){.left} Тайловые карты - это компонены, отображающие изображения из тайловых источников на одной или нескольких перекрывающихся сетках. Они чаще всего используются для создания игровых сред: земли, стен, зданий и препятствий. Тайловая карта может отображать несколько слоев, выровненных друг над другом с заданным режимом смешивания. Это полезно, например, для нанесения листьев поверх травяных фоновых тайлов. Также можно динамически изменять отображаемое изображение в тайле. Это позволяет, например, разрушить мост и сделать его непроходимым, просто заменив один тайл на другой, изображающий разрушенный мост и содержащий соответствующую физическую форму. За подробностями обращайтесь к [руководству по тайловым картам](/manuals/tilemap).
+
+## Тайловый источник (Tile Source)
+
+![Tile source](images/icons/tilesource.png){.left} Тайловый источник описывает текстуру, состоящую из нескольких уменьшенных изображений, каждое из которых имеет одинаковый размер. Можно определить флипбук-анимацию из последовательности изображений в тайловом источнике. Тайловые источники также могут автоматически вычислять формы столкновений из данных изображений. Это очень полезно при создания плиточных уровней, с которыми могут сталкиваться и взаимодействовать объекты. Тайловые источники используются тайловыми картами (а также спрайтами и частицами) для совместного использования графических ресурсов. Стоит заметить, что атлас часто подходит лучше, чем тайловый источник. За подробностями обращайтесь к [руководству по тайловым источникам](/manuals/tilemap).
+
+## Вертексный шейдер (Vertex Program)
+
+![Vertex shader](images/icons/vertex-shader.png){.left} Вертексный шейдер вычисляет экранную геометрию примитивных полигональных форм компонента. Для любого типа визуального компонента, будь то спрайт, Spine-модель или модель, форма представлена набором позиций полигональных вершин. Вертексный шейдер обрабатывает каждую вершину (в мировом пространстве) и вычисляет результирующую координату, которую должна иметь каждая вершина примитива. За подробностями обращайтесь к [руководству по шейдерам](/manuals/shader).

BIN
docs/ru/manuals/images/addressing/absolute.png


BIN
docs/ru/manuals/images/addressing/bean.png


BIN
docs/ru/manuals/images/addressing/bean_buddy.png


BIN
docs/ru/manuals/images/addressing/bean_editor.png


BIN
docs/ru/manuals/images/addressing/bean_shield.png


BIN
docs/ru/manuals/images/addressing/bean_shield_editor.png


BIN
docs/ru/manuals/images/addressing/collection_team.png


BIN
docs/ru/manuals/images/addressing/manager_editor.png


BIN
docs/ru/manuals/images/addressing/name_collision.png


BIN
docs/ru/manuals/images/addressing/relative_same.png


BIN
docs/ru/manuals/images/addressing/team_editor.png


BIN
docs/ru/manuals/images/addressing/teams_editor.png


BIN
docs/ru/manuals/images/addressing/teams_manager.png


BIN
docs/ru/manuals/images/application_lifecycle/application_lifecycle_final.png


BIN
docs/ru/manuals/images/application_lifecycle/application_lifecycle_init.png


BIN
docs/ru/manuals/images/application_lifecycle/application_lifecycle_overview.png


BIN
docs/ru/manuals/images/application_lifecycle/application_lifecycle_update.png


BIN
docs/ru/manuals/images/atlas/add.png


BIN
docs/ru/manuals/images/atlas/[email protected]


BIN
docs/ru/manuals/images/atlas/add_animation.png


BIN
docs/ru/manuals/images/atlas/[email protected]


BIN
docs/ru/manuals/images/atlas/animation_group.png


BIN
docs/ru/manuals/images/atlas/[email protected]


BIN
docs/ru/manuals/images/atlas/atlas_properties.png


BIN
docs/ru/manuals/images/atlas/[email protected]


BIN
docs/ru/manuals/images/atlas/image_properties.png


BIN
docs/ru/manuals/images/atlas/[email protected]


BIN
docs/ru/manuals/images/atlas/single_images.png


BIN
docs/ru/manuals/images/atlas/[email protected]


BIN
docs/ru/manuals/images/building_blocks/bean_collection.png


BIN
docs/ru/manuals/images/building_blocks/[email protected]


BIN
docs/ru/manuals/images/building_blocks/building_blocks.png


BIN
docs/ru/manuals/images/building_blocks/[email protected]


BIN
docs/ru/manuals/images/building_blocks/building_blocks_collection_instances.png


BIN
docs/ru/manuals/images/building_blocks/building_blocks_collection_properties.png


BIN
docs/ru/manuals/images/building_blocks/building_blocks_gameobject_alter.png


BIN
docs/ru/manuals/images/building_blocks/building_blocks_gameobject_clones.png


BIN
docs/ru/manuals/images/building_blocks/building_blocks_gameobject_file.png


BIN
docs/ru/manuals/images/building_blocks/building_blocks_gameobject_instance.png


BIN
docs/ru/manuals/images/building_blocks/building_blocks_gameobject_instance_child.png


BIN
docs/ru/manuals/images/building_blocks/building_blocks_properties.png


BIN
docs/ru/manuals/images/building_blocks/building_blocks_properties_embedded.png


BIN
docs/ru/manuals/images/building_blocks/child_transform.png


BIN
docs/ru/manuals/images/building_blocks/[email protected]


BIN
docs/ru/manuals/images/building_blocks/childing.png


BIN
docs/ru/manuals/images/building_blocks/[email protected]


BIN
docs/ru/manuals/images/building_blocks/collection.png


BIN
docs/ru/manuals/images/building_blocks/[email protected]


BIN
docs/ru/manuals/images/building_blocks/go_instance.png


BIN
docs/ru/manuals/images/building_blocks/go_instance2.png


BIN
docs/ru/manuals/images/building_blocks/[email protected]


BIN
docs/ru/manuals/images/building_blocks/[email protected]


BIN
docs/ru/manuals/images/building_blocks/instance.png


BIN
docs/ru/manuals/images/building_blocks/[email protected]


BIN
docs/ru/manuals/images/editor/2-panes.png


BIN
docs/ru/manuals/images/editor/[email protected]


BIN
docs/ru/manuals/images/editor/add_file.png


BIN
docs/ru/manuals/images/editor/create_file.png


BIN
docs/ru/manuals/images/editor/[email protected]


BIN
docs/ru/manuals/images/editor/create_file_name.png


BIN
docs/ru/manuals/images/editor/[email protected]


BIN
docs/ru/manuals/images/editor/editor2_overview.png


BIN
docs/ru/manuals/images/editor/icon_move.png


BIN
docs/ru/manuals/images/editor/icon_rotate.png


BIN
docs/ru/manuals/images/editor/icon_scale.png


BIN
docs/ru/manuals/images/editor/import.png


BIN
docs/ru/manuals/images/editor/[email protected]


BIN
docs/ru/manuals/images/editor/move.jpg


BIN
docs/ru/manuals/images/editor/new_project.png


BIN
docs/ru/manuals/images/editor/[email protected]


BIN
docs/ru/manuals/images/editor/rotate.jpg


BIN
docs/ru/manuals/images/editor/scale.jpg


BIN
docs/ru/manuals/images/editor/select.jpg


BIN
docs/ru/manuals/images/editor/toolbar.png


BIN
docs/ru/manuals/images/editor/[email protected]


BIN
docs/ru/manuals/images/editor/update-main.png


BIN
docs/ru/manuals/images/editor/[email protected]


BIN
docs/ru/manuals/images/editor/update-project-selection.png


BIN
docs/ru/manuals/images/editor/[email protected]


BIN
docs/ru/manuals/images/graphics/atlas.png


BIN
docs/ru/manuals/images/graphics/[email protected]


BIN
docs/ru/manuals/images/graphics/gui.png


BIN
docs/ru/manuals/images/graphics/[email protected]


BIN
docs/ru/manuals/images/graphics/import.png


BIN
docs/ru/manuals/images/graphics/[email protected]


BIN
docs/ru/manuals/images/graphics/model.png


BIN
docs/ru/manuals/images/graphics/[email protected]


BIN
docs/ru/manuals/images/graphics/particles.png


BIN
docs/ru/manuals/images/graphics/[email protected]


BIN
docs/ru/manuals/images/graphics/spine.png


BIN
docs/ru/manuals/images/graphics/[email protected]


BIN
docs/ru/manuals/images/graphics/sprite.png


BIN
docs/ru/manuals/images/graphics/[email protected]


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません