こんにちは、Unityエンジニアのオオバです。

UnityでOSCやってみます。

ググればこういった先人たちのありがたい情報が出てきますが、本ブログは知らないこと・分からないことは自分で書いてやってみることを重視しているので、参考にさせて頂きつつ自分で動かしてみます。

今回はOSCを使ってiPhoneアプリからMacのUnityを動かすという事をやってみます。

成果物はコチラ

UnityでOSCを使って通信する_0

iPhone側をコントロールするとMacで立ち上がっているUnityエディタ上のイメージエフェクトのパラメータが変更されてノイズが走るというサンプルです。

先人たちが利用したUnityOSCを使わせてもらっています。

GitHub - jorgegarcia/UnityOSC: Open Sound Control (OSC) C# classes interface for the Unity3d game engine

若干使いづらかったので元コード変更は最小限のラッパークラスを今回作成しました。

👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!

使用方法

受信側

osc_receiver_part.cs · GitHub

受信側はサンプルコードの通り、OSCReceiverを生成・初期化してonListenToOSCMessageイベントに受信時の処理を登録します。

送信側

osc_sender_part.cs · GitHub

送信側はOSCSenderを生成・初期化して、Sendメソッドを実行します。

UnityOSCからの変更点とポイント

注意点

このサンプルは同じ無線LAN内の機器同士しかつながりません。
また原因不明なんですがiOSの場合、IL2CPPでビルドしないとSendができなくなります(Receiveは可能)。

補足

今回のサンプルはiPhone Macでしたが、iPhone同士ということも可能ですし、Mac同士も可能です。

ソースはこちら
GitHub - baobao/UnityOSCWrapper: UnityOSCWrapper is a wrapper for UnityOSC.

オススメ記事
検証環境