Коли і як уникати використання вузлів для всього

Вузли дешеві у виробництві, але навіть вони мають свої межі. Проєкт може мати десятки тисяч вузлів, які все роблять. Чим складнішою є їх поведінка, тим більше напруження кожен з них додає до проєкту.

Godot забезпечує легкіші об'єкти для створення API, які використовують вузли. Обов’язково пам’ятайте про них, як про варіанти, під час розробки функцій свого проєкту.

  1. Об'єкт: Самий легкий об'єкт, оригінальний Об'єкт повинен використовувати ручне управління пам'яттю. З огляду на це, не надто складно створити свої власні структури даних, навіть структури вузлів, які також легші за клас Вузла.

    • Зразок: Дивіться вузол Дерево. Він підтримує високий рівень налаштування змісту із довільною кількістю рядків і стовпців. Дані, які він використовує для створення своєї візуалізації, насправді є деревом об'єктів TreeItem.

    • Переваги: Спрощення власного API для об’єктів меншого масштабу допомагає покращити його доступність і покращити час ітерації. Замість того, щоб працювати з усією бібліотекою Вузлів, ви створюєте скорочений набір Об’єктів, з яких вузол може генерувати та управляти відповідними під-вузлами.

    Примітка

    Потрібно бути обережним при поводженні з ними. Можна зберегти об’єкт у змінній, але ці посилання без попередження можуть стати недійсними. Наприклад, якщо творець об’єкта вирішить видалити його з нізвідки, це спричинить стан помилки, при наступній спробі отримати доступ до нього.

  2. Reference (Посилання): Тільки трохи складніше за Object. Вони відстежують посилання на себе, лише видаляючи завантажену пам'ять, коли подальших посилань на них не існує. Вони корисні в більшості випадків, коли потрібні дані у власному класі.

    • Зразок: Дивіться об'єкт Файл. Функціонують так само, як звичайний Об'єкт, за винятком того, що їх не потрібно видаляти самостійно.

    • ** Переваги: ** ті самі, що і в Об'єкта.

  3. Ресурс: Тільки трохи складніший, за Посилання. Ресурс мають вроджену здатність серіалізувати/десеріалізувати (тобто зберігати та завантажувати) властивості об’єкта до/з файлів ресурсів Godot.

    • Зразок: Скрипти, PackedScene (для файлів сцен) та інші типи, як кожен із класів AudioEffect. Все це можна зберегти та завантажити, тому воно поширюється як ресурс.

    • Переваги: Багато вже було сказано про переваги Ресурсів в порівнянні з традиційнішими методами зберігання даних. Однак, у контексті використання Ресурсів чи Вузлів, їх головна перевага полягає у сумісності з Інспектором. Хоча вони майже такі ж легкі, як Об'єкти/Посилання, вони все одно можуть відображати та експортувати властивості в Інспектор. Це дозволяє їм виконувати цілі, подібні до підвузлів зі сторони користувачів, а також покращувати продуктивність, якщо хтось планує мати багато таких ресурсів/вузлів у своїх сценах.