Wie strukturiert Unity ein Spiel?
GameObject, Komponente und Lebenszyklus verstehen
Die in diesem Blog verfassten Artikel wurden mit dem Ziel erstellt, zu unterrichten. Außerdem können die Informationen im Artikel falsch sein, also seien Sie bitte vorsichtig.
Unity ist eine Engine, die Spiele konfiguriert, indem sie Spielobjekten notwendige Funktionen als Komponenten hinzufügt. Es geht eher darum, kleine Funktionen zu kombinieren, als die Vererbungsstruktur zu vertiefen.
GameObject ähnelt eher einem leeren Gefäß
Die meisten in der Szene sichtbaren Charaktere, Kameras und Lichter sind GameObjects. Allerdings erscheint oder bewegt sich das GameObject allein nicht auf dem Bildschirm.
Player GameObject
├─ Transform
├─ SpriteRenderer
├─ Rigidbody2D
└─ PlayerController
Transformhat Position, Drehung und Größe. SpriteRendererzeichnet ein Bild,Rigidbody2Dnimmt an physikalischen Berechnungen teil. Ein von einem Entwickler erstelltes C#-Skript wird ebenfalls zu einer Komponente.
Lebenszyklus von MonoBehaviour
Einheit zu einem bestimmten ZeitpunktMonoBehaviourRufen Sie die Funktion auf.
using UnityEngine;
public class PlayerMover : MonoBehaviour
{
[SerializeField] private float speed = 5f;
private void Start()
{
Debug.Log("Der Spieler ist bereit");
}
private void Update()
{
float x = Input.GetAxisRaw("Horizontal");
transform.position += Vector3.right * x * speed * Time.deltaTime;
}
}
AwakeBei der Vorbereitung des AusgangszustandesStartwird oft verwendet, wenn vor dem ersten Frame eine Verbindung zu einem anderen Objekt hergestellt wird. Updatewird bei jedem Frame aufgerufen und eignet sich daher gut für die Verarbeitung von Eingaben und allgemeinen Aktualisierungen.
Wenn Sie eine physikalische Kraft anwenden, wird diese in festgelegten Abständen aufgerufen.FixedUpdateHalten. den ganzen CodeUpdateAnstatt es einzutragen, sollten Sie zunächst bei jedem Frame prüfen, ob es tatsächlich notwendig ist.
Szenen und Fertighäuser
Eine Szene ist eine Reihe von Objekten, die aktuell auf dem Bildschirm platziert sind. Prefab ist eine GameObject-Konfiguration, die als Asset gespeichert und wiederverwendet werden kann.
Fertighäuser können dupliziert werden, ohne dass die Komponente jedes Mal zurückgesetzt werden muss, wenn derselbe Feind mehrmals platziert wird. Geänderte Inhalte können basierend auf dem Prefab auch in mehreren Instanzen widergespiegelt werden.
Wenn Sie Unity starten, empfiehlt es sich, in einer Szene nur den Spieler, die Etage und den Zielpunkt zu erstellen und dann den Ablauf von der Eingabe bis zur Kollision abzuschließen. Es ist wichtiger zu unterscheiden, welche Verantwortlichkeiten jede Komponente hat, als zu unterscheiden, was ein GameObject ist.