Podsumowanie: klawisz interakcji
Część sekcji Architektura gier w Unity ścieżki Unity w Coddy. Lekcja 9 z 50.
Wyzwanie
ŁatwyPrzypisz graczowi klawisz interakcji. Strzałki poruszają graczem (Mover.cs, gotowe), a spacja pozwala użyć najbliższego obiektu w zasięgu, z którego można skorzystać. Napisz następujące elementy:
- IInteractable: interfejs z jedną metodą
void Interact(). - Door: każde użycie otwiera lub zamyka drzwi. Otwarcie obraca je o 90 stopni wokół osi y i zapisuje w logu
Door opened; zamknięcie obraca je z powrotem i zapisuje w loguDoor closed. - Chest: pierwsze użycie zapisuje w logu
Found 5 coins(jegocoins, ustawiane w Inspectorze) i opróżnia skrzynię. Każde kolejne użycie zapisuje w loguThe chest is empty. - Lever: każde użycie włącza lub wyłącza
bridge(obiekt GameObject ustawiany w Inspectorze, ukryty na początku) i zapisuje w loguLever pulled. - Interactor, na graczu: po naciśnięciu spacji (odczytaj ją za pomocą
Keyboard.currentz Input System) znajdź collidery w zasięgureach(1.5) za pomocąPhysics.OverlapSpherei wywołajInteract()na tym, który ma IInteractable i którego pozycja znajduje się najbliżej gracza. Jeśli w zasięgu niczego nie ma, nic się nie dzieje.
Naciśnij Play, pochodź i użyj wszystkiego, a następnie naciśnij Check.
Spróbuj swoich sił
using UnityEngine;
using UnityEngine.InputSystem;
// Space używa najbliższego obiektu w zasięgu.
public class Interactor : MonoBehaviour
{
public float reach = 1.5f;
}
Wszystkie lekcje w sekcji Architektura gier w Unity
1Komponenty, nie hierarchie
Małe komponentyPodstawowy skrypt przeciwnikaKomponenty abstrakcyjneWspółpracujące komponentyPodsumowanie: modułowa wieżyczka4Dane serializowane
Klasy serializowalneListy w InspectorzeWyliczenia w InspectorzePodsumowanie: tabela łupów10Projekt: Arena przetrwania
BohaterTypy wrogów2Interfejsy w Unity
IDamageableInterfejsy i TryGetComponentGetComponentsPodsumowanie: klawisz interakcji5ScriptableObjects
Zasoby danychStatystyki broniWspółdzielone ustawieniaFale jako danePowtórka: baza danych przedmiotów8Kod wielokrotnego użytku
Metody rozszerzająceGeneryczny singletonGeneryczne metody pomocniczePodsumowanie: FindNearest