Powtórka: modułowa wieżyczka
Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 5 z 64.
Wyzwanie
ŁatwyZbuduj broń Turret1. TurretControl i Cannon są gotowe.
- W
Ammonapiszpublic bool Take(): użyj pocisku i zwróćtruealbo zapisz w loguname + " is empty"i zwróćfalse. - Utwórz abstrakcyjną klasę
Weaponz[RequireComponent(typeof(Ammo))], aFire()zadeklaruj jakoprotected abstract, bez treści. Pull()nic nie robi podczascooldown; w przeciwnym razie, jeśliTake()zwróci prawdę, uruchom ponownie czas odnowienia i wywołajFire().
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
1Komponenty, nie hierarchie
Małe komponentyBazowy skrypt przeciwnikaKomponenty abstrakcyjneWspółpracujące komponentyPowtórka: modułowa wieżyczkaPowtórka: podwójne działo4Dane serializowane
Klasy serializowalneListy w InspectorzeEnumy w InspectorzePodsumowanie: tabela łupówPodsumowanie: losowanie łupów2Interfejsy w Unity
IDamageableInterfejsy i TryGetComponentGetComponentsPowtórka: klawisz interakcjiPowtórka: najbliższy w zasięgu5ScriptableObjects
Zasoby danychStatystyki broniWspółdzielone ustawieniaOcal wiatrFale jako danePowtórka: Baza przedmiotówPowtórka: Kupowanie w sklepie8Kod wielokrotnego użytku
Metody rozszerzająceGeneryczny singletonGeneryczne metody pomocniczePodsumowanie: FindNearestPoćwicz samodzielnie: Edytor online Unity