Jak wykorzystać aktualizację w Unity

Funkcja aktualizacji w Unity jest wbudowaną funkcją, wywoływaną raz na klatkę i jest powszechnie używana do aktualizowania stanu obiektów gry i wykonywania innej logiki gry. Poniżej znajduje się kilka wskazówek, jak prawidłowo wykorzystać funkcję Update w kodzie Unity.

1. 'Time.deltaTime'

Ponieważ funkcje aktualizacji są wywoływane raz na klatkę, ważne jest, aby używać 'Time.deltaTime', aby mieć pewność, że aktualizacje będą niezależne od liczby klatek na sekundę. Oznacza to, że aktualizacje będą wykonywane z tą samą szybkością niezależnie od liczby klatek na sekundę, dzięki czemu gra będzie działać spójnie na różnych urządzeniach.

Na przykład, aby poruszać obiektem ze stałą prędkością, wektor ruchu należy pomnożyć przez 'Time.deltaTime', aby mieć pewność, że obiekt porusza się z tą samą prędkością niezależnie od liczby klatek na sekundę:

void Update() {
    transform.position += Vector3.forward * speed * Time.deltaTime;
}

2. Unikaj drogich obliczeń

Jak wspomniano wcześniej, ponieważ aktualizacja jest wywoływana raz na klatkę, ważne jest, aby unikać wykonywania kosztownych obliczeń, które mogłyby mieć wpływ na wydajność. Na przykład, jeśli istnieje złożony algorytm, którego wykonanie zajmuje dużo czasu, lepszym rozwiązaniem może być przeniesienie go do osobnego wątku lub podzielenie go na mniejsze części, które można wykonać w wielu klatkach.

3. Użyj FixedUpdate dla fizyki

Podczas pracy z fizyką w grze zaleca się użycie funkcji FixedUpdate zamiast Aktualizuj. FixedUpdate wywoływany jest ze stałą szybkością, określoną przez krok czasowy fizyki i jest przeznaczony do obsługi obliczeń fizycznych, takich jak wykrywanie kolizji i ruch ciała sztywnego. Używanie FixedUpdate do obliczeń fizyki może pomóc zapewnić, że fizyka gry zachowuje się spójnie i dokładnie przy różnych częstotliwościach klatek.

4. Rozważ użycie współprogramów

Aby przeprowadzić aktualizację, która nie jest powiązana z liczbą klatek na sekundę, lepszym rozwiązaniem może być użycie Korutyny zamiast Aktualizacji. Współprogramy zapewniają funkcję wstrzymywania wykonywania funkcji na określony czas, umożliwiając następnie wykonywanie aktualizacji opartych na czasie, takich jak odradzanie wrogów lub opóźnianie animacji.

IEnumerator SpawnEnemy() {
    while (true) {
        Instantiate(enemyPrefab, spawnPoint.position, Quaternion.identity);
        yield return new WaitForSeconds(spawnDelay);
    }
}

Aby uruchomić Coroutine, wystarczy raz wywołać StartCoroutine w następujący sposób:

StartCoroutine(SpawnEnemy());

Aby zatrzymać Coroutine, użyj metody StopCoroutine, która pobiera odwołanie do Coroutine, IEnumerator lub nazwy metody (Przechowywanie odniesienia z StartCoroutine i użycie go do zatrzymania jest preferowanym podejściem, ponieważ wie dokładnie, które wystąpienie Coroutine ma zostać zatrzymane ):

Coroutine a = StartCoroutine(SpawnEnemy());

StopCoroutine(a);

Wniosek

Przestrzeganie tych najlepszych praktyk zapewni prawidłowe wykorzystanie funkcji aktualizacji w skryptach Unity.

Sugerowane artykuły
Unity Zoptymalizuj swoją grę za pomocą Profilera
Ustawienia importu klipów audio Unity w celu uzyskania najlepszej wydajności
Wskazówki dotyczące optymalizacji dla Unity
Generator billboardów dla Unity
Poprawianie wydajności gry mobilnej w Unity
Jak sztuczna inteligencja wpłynie na hosting?
Jak zarabiać pieniądze dzięki AI