Як стати кращим програмістом в Unity

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

Тому ніколи не пізно удосконалити свої знання з програмування на Unity, щоб стати не лише ефективнішим програмістом, але й, коли прийде час, здатним контролювати код, написаний іншими, і направляти їх в правильному напрямку.

1. Передчасна оптимізація не завжди є коренем усього зла

Поширеною є думка, що передчасну оптимізацію називають непотрібним кроком під час створення прототипу, однак це не завжди має бути так, особливо під час додавання дрібниць, які, як ви точно знаєте, мають великий вплив на продуктивність, і коли настав час виконайте справжню оптимізацію, час уже було заощаджено, подбавши про менші речі. Давайте використаємо gameObject.name як приклад:

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

    void Update()
    {
        objectName = gameObject.name;
		Debug.Log(objectName);
    }
}

Хоча використання gameObject.name може виглядати нешкідливим, як ми виявили в публікації «Unity Оптимізуйте свою гру за допомогою Profiler», отримання назви об’єкта виділяє досить багато пам’яті, що посилює проблему, викликаючи його кожен кадр. Отже, ми можемо відразу перемістити це призначення до функції Start (якщо ім’я об’єкта не змінюється часто, у такому випадку було б ефективніше взагалі пропустити ім’я та використати замість нього змінну).

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

    void Start()
    {
        objectName = gameObject.name;
    }

    void Update()
    {
        Debug.Log(objectName);
    }
}

2. Напишіть коротший код

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

Є багато способів написати коротший код, а у випадку Unity — код C#. Наприклад, спрощення оператора if/else за допомогою символу «?»:

int numA = 10;
int numB = 5;
int result;
if (numA > numB) {
    result = numA;
} else {
    result = numB;
}
Debug.Log(result);

Той самий код можна скоротити до:

int numA = 10;
int numB = 5;
int result = (numA > numB) ? numA : numB;
Debug.Log(result);

Ще один спосіб скоротити код – помістити повторюваний код у власну функцію, а потім використовувати цю функцію замість цього.

3. Спочатку кодуйте, а потім задавайте запитання

Хоча планування є невід’ємною частиною будь-якого проекту, якщо це прототип або якщо ідея ще не закладена в камінь, важливо почати кодувати якомога швидше, оскільки незалежно від обсягу планування, як тільки ви дійдете до працюючи, ви завжди виявите щось, що можна зробити краще/ефективніше, або що деякі ідеї не такі гарні на практиці, як інші, і навпаки.

Загалом, небагато речей допоможе вам краще програмувати, як-от взятися за роботу та почати писати код.

4. Playtest, перш ніж вносити будь-які зміни

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

Як тільки ви опануєте мистецтво ігрового тестування та збору відгуків, ви станете більш ефективним програмістом, точно знаючи, де шукати, щоб покращити код.

Unity звичайно, надає багато корисних інструментів, таких як Console (для виявлення попереджень і помилок), Profiler для налагодження продуктивності та решта інтерфейсу (Scene, Hierarchy, Inspector тощо для моніторингу потік гри/проекту).

5. Оптимізація – це поступовий процес

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

Ми обговорили багато методів налагодження, оптимізації та пошуку вузьких місць у коді гри.

Щоб дізнатися більше про те, як оптимізувати свою настільну або мобільну гру, ви можете переглянути дописи нижче:

  1. Unity Оптимізуйте свою гру за допомогою Profiler
  2. Покращення продуктивності мобільної гри в Unity 3D
  3. Unity Поради щодо оптимізації

Якщо у вас є власні поради щодо того, як стати кращим програмістом у Unity, не соромтеся опублікувати їх у коментарях.

Рекомендовані статті
Робота з масивами та списками в Unity Code
Як відтворювати відеофайли в Unity
Як додати ефект снайперського прицілу в Unity
Як запустити катсцену в Unity
Unity Як створити шейдер
Оператори Unity C#, які потрібно знати
Створення GrabPack в Unity за мотивами Poppy Playtime