Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Коли і як уникати використання вузлів для всього
Вузли дешеві у виробництві, але навіть вони мають свої межі. Проєкт може мати десятки тисяч вузлів, які все роблять. Чим складнішою є їх поведінка, тим більше напруження кожен з них додає до проєкту.
Godot забезпечує легкіші об'єкти для створення API, які використовують вузли. Обов’язково пам’ятайте про них, як про варіанти, під час розробки функцій свого проєкту.
Object: Самий легкий об'єкт, оригінальний Об'єкт повинен використовувати ручне управління пам'яттю. З огляду на це, не надто складно створити свої власні структури даних, навіть структури вузлів, які також легші за клас Node.
Зразок: Дивіться вузол Tree. Він підтримує високий рівень налаштування змісту із довільною кількістю рядків і стовпців. Дані, які він використовує для створення своєї візуалізації, насправді є деревом об'єктів TreeItem.
Переваги: Спрощення власного API для об’єктів меншого масштабу допомагає покращити його доступність і покращити час ітерації. Замість того, щоб працювати з усією бібліотекою Вузлів, ви створюєте скорочений набір Об’єктів, з яких вузол може генерувати та управляти відповідними під-вузлами.
Примітка
Потрібно бути обережним при поводженні з ними. Можна зберегти об’єкт у змінній, але ці посилання без попередження можуть стати недійсними. Наприклад, якщо творець об’єкта вирішить видалити його з нізвідки, це спричинить стан помилки, при наступній спробі отримати доступ до нього.
RefCounted: Тільки трохи складніше, ніж Object. Вони відстежують посилання на себе, видаляючи завантажену пам’ять лише тоді, коли ні існують інші посилання на себе. Це корисно в більшості випадків, коли потрібні дані в спеціальному класі.
Приклад: Перегляньте об’єкт FileAccess. Він функціонує так само, як звичайний об’єкт, за винятком того, що його не потрібно видаляти самостійно.
Переваги: такі ж, як у Об'єкта.
Resource: Лише трохи складніше, ніж RefCounted. Вони мають вроджену здатність серіалізувати/десеріалізувати (тобто зберігати та завантажувати) свої властивості об’єктів до/з файлів ресурсів Godot.
Приклад: Сценарії, PackedScene (для файлів сцен) та інші типи, такі як кожен із класів AudioEffect. Кожне з них можна зберегти та завантажити, тому вони поширюються з Resource.
Переваги: Багато already been said про переваги Resource над традиційними даними способи зберігання. Однак у контексті використання Resources over Nodes їх головною перевагою є сумісність з Inspector. Хоча майже така ж легка, як Object/RefCounted, вони все ще можуть відображати та експортувати властивості в інспекторі. Це дозволяє їм виконувати завдання, схожі на підвузли щодо зручності використання, але також підвищити продуктивність, якщо планується мати багато таких ресурсів/вузлів у своїх сценах.