OSC in Unity: Unterschied zwischen den Versionen

Aus hyperdramatik
Zur Navigation springen Zur Suche springen
Zeile 32: Zeile 32:
[[Datei:create-osc-gameobject.jpg|600px]]<br>
[[Datei:create-osc-gameobject.jpg|600px]]<br>
Dann wählen wir das eben erstellte Gameobject in unserer Hierarchy an und ziehen das OSC.cs Script aus dem Ordner OSC in unserem Project Tab in den Inspector:<br>
Dann wählen wir das eben erstellte Gameobject in unserer Hierarchy an und ziehen das OSC.cs Script aus dem Ordner OSC in unserem Project Tab in den Inspector:<br>
[[Datei:place-osc-script-on-gameobject.jpg]]
[[Datei:place-osc-script-on-gameobject.jpg|600px]]





Version vom 14. April 2021, 15:09 Uhr

OSC in Unity

Um von anderen Programmen (z.B. Processing) Daten an Unity zu senden, verwenden wir das IP Protokoll und eine OSC Library. Das heisst, das Device auf dem das Unity Programm laufen soll (Computer oder Tablet) muss mit einem Netzwerk verbunden sein und eine IP-Adresse besitzen.

externen OSC Code in unser Projekt einfügen

Herunterladen des externen OSC Codes

Code für die Implementierung von OSC in Unity gibt es auf der github Seite von Thomas Fredericks unter Releases, eine kurze Erklärung und ein Beispiel auf seiner Webseite. Für uns ist der Release For Unity 2018 relevant (funktioniert auch bis Unity 2020.3).

Nachdem wir den SourceCode als .zip heruntergeladen haben, erstellen wir am Besten ein neues Unity Projekt mit dem Standard Template (3D). Wenn ihr bereits ein Unity Projekt habt, in dem ihr OSC verwenden möchtet, dann könnt ihr diesen Schritt gerne überspringen. :-)
New-osc-test-project.jpg

Einfügen des externen OSC Codes in unser Projekt

Nachdem wir das Projekt erstellt haben, und der Unity Editor das Projekt geöffnet hat, kopieren wir den Inhalt der heruntergeladenen .zip Datei in den Projektordner unseres neu erstellten Projekts, wie hier angezeigt:
Copy osc to new unity project.jpg

Windows fragt, ob wir einige der zu kopierenden Dateien überschreiben oder überspringen wollen. In diesem Fall würden wir sie überspringen. Beides ist aber okay.

Wenn wir zurück zu Unity wechseln, werden nach einem kurzen Moment des Importierens im Project Tab einige neue Dateien angezeigt:
Imported-Osc-unity.jpg

Aufräumen

Für die Anleitung hier im Wiki werden wir nicht vom mitgelieferten beispiel ausgehen, deswegen würde ich die 5 Dateien die von OSC direkt in den Assets Folder kopiert worden sind direkt in den Extras-Ordner verschieben, um die Übersicht im Projekt zu behalten:
Move-unnecessary-example-osc-unity.jpg
Ebenso lohnt es sich, direkt im Assets Folder einen Ordner zu erstellen, den wir Scripts nennen, und in dem wir unsere eigenen Scripte speichern werden:
Unity-scripts-folder-osc-example.jpeg


OSC in die Szene einfügen

Nachdem wir den OSC Code erfolgreich ins Projekt importiert haben, können wir nur beispielhaft damit arbeiten. Hierfür müssen wir das externe OSC.cs Script auf ein GameObject in unserer Szene legen. Dafür erstellen wir am Besten ein neues, leeres Gameobject in unserer Hierarchy und nennen es "OSC"(wir könnten es auch anders nennen) :
Create-osc-gameobject.jpg
Dann wählen wir das eben erstellte Gameobject in unserer Hierarchy an und ziehen das OSC.cs Script aus dem Ordner OSC in unserem Project Tab in den Inspector:
Place-osc-script-on-gameobject.jpg


Wir haben für Be Bernd OSC zur Kommunikation zwischen den verschiedenen Komponenten benutzt.

Dabei haben wir den Code und die Anleitung dieser Website verwendet. Das GitHub Projekt wäre hier zu finden. Das dazu passende Beispiel kann hier oder hier herunter geladen werden.

MQTT in Unity

tbd.