Menu
CoddyTech

Powtórka: modułowa wieżyczka

Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 5 z 64.

challenge icon

Wyzwanie

Łatwy

Zbuduj broń Turret1. TurretControl i Cannon są gotowe.

  1. W Ammo napisz public bool Take(): użyj pocisku i zwróć true albo zapisz w logu name + " is empty" i zwróć false.
  2. Utwórz abstrakcyjną klasę Weapon z [RequireComponent(typeof(Ammo))], a Fire() zadeklaruj jako protected abstract, bez treści.
  3. Pull() nic nie robi podczas cooldown; w przeciwnym razie, jeśli Take() zwróci prawdę, uruchom ponownie czas odnowienia i wywołaj Fire().

Naciśnij „Graj” i strzelaj, aż skończy się amunicja. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

using UnityEngine;

// To, co jest wspólne dla wszystkich działek wieżyczki.
public class Weapon : MonoBehaviour
{
    public GameObject shellPrefab;
    public float cooldown = 1f;

    public void Pull()
    {
        // poczekaj, aż minie cooldown, pobierz pocisk z Ammo, a następnie wystrzel
    }

    // Każde działko strzela na swój sposób.
    protected virtual void Fire()
    {
    }

    // Pocisk wystrzelony z tego miejsca względem wieżyczki, lecący w kierunku, w którym jest ona zwrócona.
    protected void Launch(Vector3 offset)
    {
        Instantiate(shellPrefab, transform.position + transform.rotation * offset, transform.rotation);
    }
}

Wszystkie lekcje w sekcji Architektura gier w Unity

Poćwicz samodzielnie: Edytor online Unity