Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Skripting in Unity Grundkurs

Zugriff auf Komponenten: Vorbereitung

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Sozusagen "per Fernbedienung" auf andere Objekte und auch Skripts zugreifen zu können - wäre das nicht toll? In diesem Video sehen Sie, wie so etwas vorbereitet wird.
05:12

Transkript

Stellen wir uns folgendes Problem vor: Wir haben hier irgendein Objekt, in unseren Fall unseren Unity Mechaniker und wir wollen von außen per Skript dieses Objekt beeinflussen. Wie wir also Zugriff auf die gewissen Komponenten dieses Objektes bekommen, lernen wir in diesem Video. Zunächst einmal ist ganz wichtig, dass wir verstehen, dass auch von uns erstellte Skripts, hier zum Beispiel das Player_Human_ Control (Skript) eine Komponente ist. Also wird sie auch rechts hier im Inspektor angezeigt. Jetzt stellen wir uns vor, ein externes Objekt wie zum Beispiel dieser Controller, zurzeit noch ein leeres GameObject, soll unseren Unity Mechaniker irgendwie kontrollieren. Und zwar ganz genau, es soll dieses Skript hier kontrollieren. Dazu machen wir ein neues Skript, ich habe das hier einfach PlayerRemoteCTRL genannt, und ziehen es auf den Controller. Das Skript ist zurzeit auch völlig leer, es ist also gerade erst erstellt worden, mit den von Unity typischen Inhalten. Was wir jetzt als erstes vorbereiten müssen, wir müssen diesem Skript, in dem wir gerade sind, also dem Controller sozusagen, irgendwie das Objekt mitgeben, dass es nun mal kontrollieren soll. Das heißt, zunächst stellen wir die Möglichkeit her, dass wir das innerhalb von Unity tun können und hier irgendwie im Code machen müssen. Das geht wieder über den Begriff public, so stellen wir ja im Skript sicher, dass wir gleich ein Fach haben, im Inspektor, wo wir gewisse Dinge reinziehen können. Und jetzt gehen wir vor, wie bei einer normalen Variablendeklaration. Zunächst müssen wir uns den Typ merken. Dabei ist es nochmal wichtig, genau zu wissen auf was möchte ich denn hier zugreifen. Wenn ich die Komponenten mal hier einklappe, sehen wir genau auf was wir zugreifen könnten: Auf Transform, auf Animation, auf den Character Controller oder eben auch auf die Komponente, das von uns selbst erstellte Skript Player_Human_Control. OK das merken wir uns, also der Typ Player_Human_Control, wie bei eine Variable Typ, Name und dann vielleicht ein Wert zuweisen. Dem Typ haben wir jetzt, einen Namen, die vergeben wir jetzt auch noch und das können wir zum Beispiel playerOBJ Danach finalisieren wir diese Zeile mit einem Semikolon und wir geben jetzt nicht direkt mit einem Gleichheitszeichen, mit einem zuweisenden Gleichheitszeichen etwas mit, sondern wir wollen das Ganze ja dynamisch in Unity zugreifbar machen. Daher ja auch das Schlüsselwort public. Was jetzt passiert ist, wir gucken uns das Unity an, klicken auf den Controller und sehen aha, alles richtig es hat sich ja ein sozusagen eine Ablagefläche gebildet, wo wir gewisse Objekte ablegen können. In unseren Fall sagt uns Unity auch direkt was denn für ein Objekt erwartet wird, nämlich erst der Name Player OBJ und das muss von Typ Player_Human_Control sein. Alles andere lässt diese Fläche hier nicht zu. Und wenn ich jetzt zum Beispiel versuche, unseren Scene Objekt da hinzuziehen, das funktioniert nicht. Also schnappen wir uns das einzige Objekt, wo wirklich Player_Human_Control drauf liegt nämlich unseren Menschen. Das lässt Unity zu und wenn ich jetzt die Maustaste loslasse ist diese Zuweisung schon passiert. Wir haben also eine Referenz geschaffen und dieser Begriff ist relativ wichtig, reference, wir haben eine Referenz geschaffen, die jetzt hier in unserer Variable, in unseren Objekt liegt. Mit dem Namen dieser Referenz Player OBJ können wir jetzt innerhalb dieses Skriptes arbeiten. Fassen wir das also nochmal zusammen. Um einen externen Zugriff auf irgendeine Komponente zu ermöglichen, müssen wir zunächst für eine Referenz sorgen. Am besten geht das indem wir das Schlüsselwort public benutzen, uns den Typ merken, beziehungsweise hier auf den Spielerobjekt und diesen dann noch einen Namen geben. Das Ganze würde natürlich auch mit zum Beispiel der Transform-Komponente funktionieren, indem ich hier einfach sage, public Transform playerTransform, wieder speichern, zurück in Unity und dann wird sich ein zweites Fach bilden, dass diesmal nur entsprechend ein Transform akzeptiert. Jetzt könnte ich hier sogar die Scene hinzufügen, weil auch die Scene, es ist zwar ein leeres GameObject, aber sie hat eine Transformkomponente. Ich möchte hier aber unseren Human_Player_Human reinziehen und jetzt hätten wir eine weitere Referenz geschaffen. Wichtig ist also, dass unsere kontrollierendes Skript zunächst eine Referenz erhält.

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!