Skripting in Unity Grundkurs

Zugriff auf Komponenten: Durchführung

Testen Sie unsere 1985 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Ist der Zugriff auf externe Objekte und Komponenten vorbereitet und eine Referenz hergestellt, gilt es nun, den Remote-Zugriff durchzuführen. Dabei ist der sog. Access-Modifier wichtig.
06:27

Transkript

Wenn ich von einem externen Objekt auf ein anderes Objekt zugreifen möchte, muss ich zunächst die Referenz herstellen in dem Controller Skript. Habe ich das getan, geht es an die Durchführung. Und das gucken wir uns jetzt an. Hier haben wir schon in unserem externen Controller zwei Referenzen vorbereitet für unseren Menschen, für unseren Unity Mechaniker, ich ändere hier das mal gerade ab und sage statt playerTransform, ich möchte jetzt auf unsere Box zugreifen, dann sollte der Name auch passen. Was jetzt passiert. Dieses Feld wird geleert, eil die Referenz plötzlich eine andere ist und dann ziehe ich unsere Box hier rein. Den Menschen blende ich aus und die Box dafür ein. Wenn wir nun also die Referenz hergestellt haben, können wir in diesem Skript mit ihr arbeiten und zwar über den Namen. Das werde ich auch direkt mal tun. BoxTransform, ich sage dem Skript also ja, jetzt möchte ich mit der Referenz arbeiten und jetzt werde ich hier ein Punkt hinschreiben und das ist der sogenannte Access Modifier. Dieser tut gleichzeitig mehrere Dinge. Zum einen trennt er die Anweisung OK, ich arbeite jetzt mit dem boxTransform, dann mit etwas Neuem und gleichzeitig geht er eine Ebene tiefer rein in dieser Komponente, in dieser Referenz. Machen wir ein ganz einfaches Beispiel, wir haben ja hier eine Referenz auf eine Transform Komponente. Und genau so hat unsere Box natürlich die Transform Komponente, auf die greifen wir hinzu, die haben wir hier ja schließlich zugewiesen. Und hier in dieser Transform Komponente sehen wir auch direkt welche Ebenen es gibt. Wir merken uns hier mal Position,Rotation, und nach diesem Punkt werden wir hier jetzt auch Position, Rotation und Scale wiederfinden. Gut hier heißt es localScale, aber das ist damit gemeint. Natürlich sind hier noch eine ganze Menge andere Dinge drin, aber was wir mit diesen Access Modifier zunächst einmal tun ist eben eine Ebene tiefer in dieser Komponente einzusteigen. Das können wir auch noch weiterführen, in dem ich zum Beispiel bei Position nochmal ein Punkt hineinsetze und dann werden wir sehen hier geht es noch eine Ebene tiefer, denn jetzt komme ich an X, Y und Z ran. Nämlich X, Y und Z. Danach komme ich nicht wirklich noch eine Ebene tiefer, jetzt sind nur Funktionen noch hier zur Verfügung, die vom Framework selbst angeboten werden, alles Unity-Spezifische ist hier beendet, ich komme nicht weiter als Y. Was dieser Access Modifier mir also sagt, bitte diese Komponente, Punkt, eine Ebene tiefer, ein Punkt noch eine Ebene tiefer und so weiter, so weit es eben geht. Wenn ich jetzt mit dieser Referenz wirklich arbeiten möchte, ich möchte hier jetzt wirklich ein Zugriff durchführen und dann möchte ich zum Beispiel auf die Position zugreifen, werde ich mir hier zunächst einen neuen Vector3 anlegen und sage zum Beispiel lieber Vector3 du heißt jetzt newPos. Und in diesen newPos, in diesen Vector3 speichere ich sofort die Position der Referenz auf unsere Box. Also genau das, was hier drin steht. Jetzt werde ich newPos direkt ein neuen Wert, beziehungsweise 3 neue Werte, es ist ja ein Vector3 mitgeben zum Beispiel 0,5 und 0 für X, Y und Z. Ich tue ja also verschiedene Dinge gleichzeitig. Zuerst lege ich einen neuen Vector3 an, in ihn hinein schmeiße ich sozusagen die Positionsdaten von unserer Referenz, von unserer Box und sofort im Anschluss besetze ich newPos mit 3 neuen Werten. Die werden also überschrieben, die da vorher drin sind. Wir schauen uns in Unity an was passiert. Der Controller hat die Referenz noch drin und wenn ich die Scene starte, sehen wir nichts. OK, die Kamera guckt jetzt von oben darauf, aber hier sehen wir ja welche Position die Box zurzeit 0, 0, 0. Das Stimmt nicht überein mit unseren gerade eingegebenen Werten. Was hier nämlich passiert, wir haben zwar die Position unserer Referenz in diesen neuen Vector3 gespeichert, aber das heißt nicht automatisch, wenn wir diesen neuen Vector3 irgendwie verändern, dass unsere boxTransform, unsere Referenz davon Notiz nimmt. Das ist dieser Referenz völlig egal. Um jetzt wirklich darauf Zugriff zu nehmen, müsste ich auch komplett unsere Referenz hernehmen, dann natürlich mit dem Access Modifier auf die Position, denn die möchte ich ja nun mal verändern und hier dann new Vector3 0, 5, 0 benutzen und jetzt würde ich einen direkten Schreibzugriff auf unsere Referenz, auf unsere Box vornehmen. Und jetzt zurück in Unity und wenn wir dann in den Playmode gehen, sehen wir aha, unsere Box scheint jetzt etwas zu schweben, ja, alles gut, 0, 5, 0 das hat geklappt. Genau so können wir natürlich auch auf gewisse Skripts zugreifen. Wir haben ja hier unseren Controller noch mit Player_Human belegt Und wir wissen,OK, im Player_Human_Control gibt es gewisse public Variablen und weil die public sind kann ich auch auf sie zugreifen. Genau so wie ich das zum Beispiel auf Position X, Y und Z könnte. Wir haben in diesen Video also gelernt wie wir einen Zugriff von externen Objekt auf ein anderes durchführen können. Und zwar in dem wir mit der Referenz, dem Access Modifier und der jeweiligen Ebene, beziehungsweise dem jeweiligen Unterelemente, das wir verändern möchten, arbeiten. Experimentieren Sie einfach mal damit herum, vielleicht auch direkt mit Player_Human_Control und schauen Sie was sich da so alles verändern lässt. Viel Spaß dabei.

Skripting in Unity Grundkurs

Greifen Sie mithilfe von C#-Skripts dynamisch in Ihr Unity-Projekt ein. Auch Programmier-Neulinge lernen Schritt für Schritt den Einstieg ins Skripting.

4 Std. 50 min (40 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Anleitung für Unity 5-Nutzer:

  • Schritt 1: Projekt in Unity 5 öffnen und die Meldung bestätigen, dass das Projekt ein Upgrade bekommt.
  • Schritt 2: Wenn die Meldung kommt, dass die API upgedatet werden muss, diese auch bestätigen

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!