Unity: Erstelltes Object in einer Variable speichern?

...komplette Frage anzeigen

1 Antwort

Unity war bei mir lange her. Aber das Problem ist dass TestObject nicht in dieser Klasse existiert. 

Versuch mal einfach public GameObject test;
dann müsste das Feld "Test" bei dieser Kompoenten in der GUI erscheinen und da kannst du das Objekt dann mit der Maus reinziehen

Danke, mich wundert das aber sehr, dass ein GameObject nicht global existiert. Muss ich da die Box bei der Option "Static" aktivieren ( Inspector), damit es global existiert ?

Das mit dem Erscheinen in der GUI ist so eine Sache. Ich versuche gerade eine Klasse zu schreiben, in der ich alle Werte in Variablen speichere ( Native-List), so etwas wie Geschwindigkeit, Schaden, Gesundheit und so weiter, was ich dann global abrufen kann mit beispielsweise "Natives.Velocity". Das Problem ist aber, das "static", was man anscheinend braucht, um die Variable abrufbar zu machen, selbige von der Object GUI verschwinden lässt und man es nur noch im Skript selbst ändern kann. Unity aktualisiert das auch nicht, wenn man es wieder zurückändert, ich weiß nicht so Recht, woran das liegt.

0
@Crysali

Ich würde dir empfehlen die Grundlagen der Objektorientierung nocheinmal anzuschauen.

Mit Klassen kann man Objekte erstellen, das heißt wenn du ein Skript auf eine Komponente ziest, ist das an das GameObject geknüpft. Static wäre Global für alle und kann somit nicht an ein Objekt in der GUI gebunden.

Ich bin jetzt leider zu wenig in Unity drin, um dir zu sagen, wie du in Unity Settings auslagerst, mir fällt da nur ein eine Singleton Klasse zu schreiben.

1
@Serij92

Danke, das verstehe ich. Ich werde mir das alles nochmal in Ruhe durchlesen/schauen!

1
@Crysali

Also erstmal, ein Objekt im Inspector stellt man nur auf "Static" wenn es sicht nicht bewegt. Das spart dann Performance und ermöglicht z.B. das ein Objekt ins NavMesh einberechnet wir ( falls dir das was sagt, wenn nicht macht das nichts).

Hast du jetzt geschafft was du machen wolltest? Falls nein, könnte ich Versuchen dir zu helfen z.b. über Skype

LG Dosenbiiir :)

0

Was möchtest Du wissen?