Jak zostać lepszym programistą w Unity

Wraz z rozwojem AI i uczenia maszynowego łatwo założyć, że programiści nie będą potrzebni w przyszłości. Jednak może upłynąć naprawdę dużo czasu, zanim sztuczna inteligencja będzie w stanie zinterpretować bardziej złożone zadania, takie jak abstrakcja, optymalizacja, połączenia wzajemne itp.

Dlatego nigdy nie jest za późno na udoskonalenie swojej wiedzy programistycznej w Unity, aby stać się nie tylko wydajniejszym programistą, ale także, gdy nadejdzie czas, móc nadzorować kod pisany przez innych i kierować nimi w dobrym kierunku.

1. Nie zawsze przedwczesna optymalizacja jest przyczyną wszelkiego zła

Powszechnym tematem jest oczernianie przedwczesnej optymalizacji jako niepotrzebnego kroku podczas tworzenia prototypu czegoś, jednak nie powinno tak być zawsze, zwłaszcza podczas dodawania małych rzeczy, o których wiesz na pewno, że mają ogromny wpływ na wydajność, i kiedy nadchodzi czas na wykonaj prawdziwą optymalizację, czas został już zaoszczędzony, zajmując się mniejszymi rzeczami. Użyjmy gameObject.name jako przykładu:

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

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

Chociaż użycie gameObject.name może wyglądać nieszkodliwie, jak odkryliśmy w poście „Unity Optymalizuj swoją grę za pomocą Profilera”, uzyskanie nazwy obiektu przydziela sporo pamięci, co zwielokrotnia problem, wywołując go każda rama. Zatem od razu możemy przenieść to przypisanie do funkcji Start (chyba że nazwa obiektu często się zmienia, w takim przypadku bardziej efektywne byłoby pominięcie używania nazwy w ogóle i zamiast tego użycie zmiennej).

using UnityEngine;

public class ObjectNameScript : MonoBehaviour
{
    public string objectName;

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

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

2. Napisz krótszy kod

Pisanie krótszego kodu zawsze oszczędza czas, czyniąc go bardziej czytelnym i łatwiejszym w utrzymaniu w przyszłości.

Istnieje wiele sposobów na napisanie krótszego kodu, a w przypadku Unity, kodu C#. Na przykład upraszczając instrukcję if/else za pomocą symbolu „?”:

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

Ten sam kod można skrócić do:

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

Innym sposobem na skrócenie kodu jest umieszczenie powtarzającego się kodu w jego własnej funkcji, a następnie użycie tej funkcji.

3. Najpierw koduj, później zadawaj pytania

Chociaż planowanie jest istotną częścią każdego projektu, jeśli jest to prototyp lub pomysł nie jest jeszcze utwierdzony w kamieniu, ważne jest, aby rozpocząć kodowanie tak szybko, jak to możliwe, ponieważ niezależnie od ilości planowania, gdy tylko dojdziesz do pracując, zawsze odkryjesz, że coś można zrobić lepiej/bardziej efektywnie lub że niektóre pomysły nie sprawdzają się w praktyce tak dobrze jak inne, i odwrotnie.

Podsumowując, niewiele rzeczy sprawi, że będziesz lepszy w programowaniu, tak jak przyjście do pracy i rozpoczęcie pisania kodu.

4. Przetestuj grę przed wprowadzeniem jakichkolwiek zmian

Kiedy masz grywalną wersję demonstracyjną, ważne jest, aby jak najszybciej rozpocząć jej testowanie, aby określić, gdzie można coś ulepszyć, ponieważ często może nie być to oczywiste po samym spojrzeniu na kod.

Gdy opanujesz sztukę testowania gry i zbierania opinii, staniesz się bardziej wydajnym programistą, wiedząc dokładnie, gdzie szukać ulepszenia kodu.

Unity oczywiście zapewnia wiele przydatnych narzędzi, takich jak konsola (do wykrywania ostrzeżeń i błędów), Profiler do debugowania wydajności i reszta interfejsu (scena, hierarchia, inspektor itp. do monitorowania przebieg gry/projektu).

5. Optymalizacja jest procesem stopniowym

Wszyscy możemy się zgodzić, że wydajność gry może to zadecydować lub zepsuć i jest jednym z podstawowych filarów udanej premiery. Jednak wydajność gry można ocenić jedynie przeprowadzając testy gry w różnych scenariuszach i warunkach, aby symulować grę z punktu widzenia zwykłych graczy.

Omówiliśmy wiele metod debugowania, optymalizacji i znajdowania wąskich gardeł w kodzie gry.

Aby dowiedzieć się więcej o tym, jak zoptymalizować grę na komputer stacjonarny lub mobilny, możesz sprawdzić poniższe posty:

  1. Unity Zoptymalizuj swoją grę za pomocą Profilera
  2. Poprawianie wydajności gry mobilnej w Unity 3D
  3. Unity Wskazówki dotyczące optymalizacji

Jeśli masz własne wskazówki, jak zostać lepszym programistą w Unity, nie wahaj się opublikować ich w komentarzach.

Sugerowane artykuły
Praca z tablicami i listami w kodzie Unity
Operatory Unity C#, które trzeba znać
Jak odtwarzać pliki wideo w Unity
Jak dodać efekt lunety snajperskiej w Unity
Tworzenie prostego systemu pocisków 2D w Unity
Jak wstrzymać grę w Unity
Jak wywołać przerywnik filmowy w Unity