Menu
CoddyTech

Podsumowanie: modułowa wieżyczka

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

challenge icon

Wyzwanie

Łatwy

Zbuduj z części dwie wieżyczki na poligonie testowym. TurretControl.cs już obraca każdą wieżyczkę za pomocą strzałek w lewo i w prawo, a Shell.cs wystrzeliwuje pocisk do przodu. Scena przypisuje Turret1 komponent Cannon i Ammo z 4 pociskami, a Turret2 komponent TwinCannon i Ammo z 3 pociskami. Napisz te części:

  • Ammo: publiczne int shells i publiczna metoda bool Take(). Jeśli pozostał pocisk, metoda zużywa go i zwraca true. Jeśli nie ma już żadnego, wypisuje nazwę obiektu i is empty, na przykład Turret2 is empty, a następnie zwraca false.
  • Weapon: abstrakcyjny komponent, który zawsze ma komponent Ammo, z publicznym shellPrefab (GameObject), publicznym float cooldown (Inspector ustawia wartość 1) i publiczną metodą Pull(). Naciśnięcie spustu w trakcie odnowienia nie robi nic i nie zużywa pocisku. W przeciwnym razie, jeśli Take() zwróci pocisk, rozpoczyna się odnowienie i uruchamiana jest metoda Fire(), abstrakcyjna metoda implementowana przez każdą broń.
  • Cannon wystrzeliwuje jeden pocisk z miejsca oddalonego o 1 jednostkę przed wieżyczką. TwinCannon wystrzeliwuje dwa pociski za jeden pocisk amunicji: jeden z miejsca przesuniętego o 0.4 w lewo, a drugi o 0.4 w prawo względem tego punktu. Pocisk rozpoczyna lot w punkcie transform.position + transform.rotation * offset, z obrotem takim jak wieżyczka (transform.rotation), gdzie offset to punkt widziany z perspektywy wieżyczki, na przykład new Vector3(0f, 0f, 1f).
  • W komponencie TurretControl naciśnięcie spacji pociąga za spust dowolnej broni, którą ma wieżyczka.

Naciśnij Play, obracaj wieżyczki i strzelaj, aż w obu skończy się amunicja, a następnie naciśnij Check.

Spróbuj swoich sił

using UnityEngine;

// To, co łączy wszystkie rodzaje uzbrojenia wieżyczek.
public class Weapon : MonoBehaviour
{
}

Wszystkie lekcje w sekcji Architektura gier w Unity