Unterschied gameObject vs GameObject?

3 Antworten

In Unity gibt es Objekte vom Datentyp GameObject, das sind deine Spielobjekte in der Spielwelt. Jedes dieser Objekte hat Komponenten. Um in deiner Komponente, deinem Skript, herauszufinden, zu welchem Spielobjekt die Komponente gehört, kannst du die Eigenschaft gameObject verwenden.

GameObject ist der Name einer Klasse in Unity bzw. der Name eines Datentyps.

https://docs.unity3d.com/ScriptReference/GameObject.html

Sie stellt die Basisklasse für alle Entitäten dar, die in Szenen eingesetzt werden. Capsules, Spheres, Cylinder oder Cubes sind bspw. GameObjects. Oder Charakter-Objekte. Jedes Objekt in deinem Spiel ist ein GameObject.

Aufgrund dieser Vererbungshierarchie kannst du auf solchen Entitäten Methoden wie GetComponents, AddComponent oder SetActive anwenden. Zudem können GameObject-Instanzen mit einem Tag versehen werden und die Klasse selbst stellt zudem statische Methoden zur Verfügung, über die man GameObject-Instanzen in einer Szene finden kann.

gameObject hingegen ist ein öffentliches Feld von Components. Components können an GameObject-Instanzen angehängt werden (z.B. Transform, Audio Listener, Light, ...). Die GameObjects sind also im gewissen Sinne Behälter für Component-Objekte, welche letzten Endes die eigentlichen Funktionen ausführen.

Damit diese Objekte wissen, an welches GameObject sie gehängt wurden, besitzen sie dieses Feld (gameObject). Es verweist also auf ihr Besitzerobjekt.

GameObject wird zur Initialisierung genutzt.

public GameObject Auto;

Transform Rad;

Hat man z.b. nur ein Transform, man will aber das GameObject des Transforms abfragen nutzt man Rad.gameObject

Woher ich das weiß:Berufserfahrung

regex9  09.03.2020, 23:55

Dein Beispiel zeigt eine Deklaration, keine Initialisierung.

0