Gameobjekt

Im Prinzip besteht ein Unity-Projekt, das meist ein Videospiel darstellt, aus eine gewisse Anzahl von Gameobjekten, die untereinander kommunizieren und interagieren können. Die einzelnen Gameobjekte werden dabei durch ihre programmierten Eigenschaften bzw. Verhalten im Projekt als Softwarebausteine umgesetzt. Unter Unity konkret als Komponenten sichtbar (components). Die Abbildung visualisiert das grundsätzliche Prinzip. Im konkreten Beispiel werden dem Gameobjekt mehrere Komponenten zugewiesen. die visuelle Erscheinung wird durch die Komponente Material gesteuert. Die Beschreibung der Ausrichtung und Positionierung im virtuellen Raum übernimmt die Komponente Transform. Die Physik der Engine wirkt auf das Gameobjekt durch das Hinzufügen der Komponenten Rigidbody. Natürlich können diese Komponenten dem Gameobjekt wieder entzogen werden, je nach dessen Aufgabe in der eigentlichen Spielumgebung. Das Hinzufügen bzw. Entfernen kann per Drag and Drop mit Hilfe des Properties-Editors oder per Skript erfolgen.

Beispiel Codefragment : Zugriff per Code auf Komponente Rigidbody des Gameobjekts

 

         Rigidbody2D rigidbod;

         .

         .

         Start() {

                             rigidbod = GetComponent<Rigidbody2D>();

                        }

      Update(){

                           rigidbod.AddForce ( new Vector ( 0 , 300 ));

.

.

                        }

 

Zuerst wird die Referenz rigidbod auf die Objektkomponente Rigidbody2D des Gameobjekts gesetzt. Die Funktion GetComponent<rigidbody2D> regelt den Zugriff. In der spitzen Klammer steht die Komponente auf die der Anwender Zugriff haben möchte. Im konkreten Beispiel auf die Rigidbody-Komponente. Anschließend kann zum Beispiel innerhalb der Update-Funnktion per Skript eine physikalische Kraft durch die Angabe des Richtungsvektors durch die Physikengine simuliert werden.

Die Methode AddForce der Rigidbody Komponenten fügt die entsprechende Funktionalität pro Frame hinzu. Das zweidimensionale physikalische Objekt erfährt eine Kraft in Richtung der Y-Achse. Es wandert also nach oben.

Bemerkung : Das zweidimensionale Objekt muss eine Rigidbody und das ensprechende Codefragment als Komponenten besitzen.