こんにちは、Unityエンジニアのオオバです。
UnityでOSCやってみます。
ググればこういった先人たちのありがたい情報が出てきますが、本ブログは知らないこと・分からないことは自分で書いてやってみることを重視しているので、参考にさせて頂きつつ自分で動かしてみます。
- Unity OSCを使いOSCを送受信する - Qiita
- UnityからProcessingへOSCを投げる - Qiita
- [Unity] [OSC] UnityでOSCを使う(UnityOSC) - The jonki
今回はOSCを使ってiPhoneアプリからMacのUnityを動かすという事をやってみます。
成果物はコチラ
iPhone側をコントロールするとMacで立ち上がっているUnityエディタ上のイメージエフェクトのパラメータが変更されてノイズが走るというサンプルです。
先人たちが利用したUnityOSCを使わせてもらっています。
若干使いづらかったので元コード変更は最小限のラッパークラスを今回作成しました。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
使用方法
受信側
受信側はサンプルコードの通り、OSCReceiverを生成・初期化してonListenToOSCMessageイベントに受信時の処理を登録します。
送信側
送信側はOSCSenderを生成・初期化して、Sendメソッドを実行します。
UnityOSCからの変更点とポイント
- 送信側はOSCSenderクラス、受信側はOSCReceiverクラスを使用する構成
- 受信側は受信したときだけ通知するイベント登録式
- OSCPacketを引数として受信イベントを受け取る
- 特に必要ないのでMonoBehaviourは継承しない
注意点
このサンプルは同じ無線LAN内の機器同士しかつながりません。
また原因不明なんですがiOSの場合、IL2CPPでビルドしないとSendができなくなります(Receiveは可能)。
補足
今回のサンプルはiPhone Macでしたが、iPhone同士ということも可能ですし、Mac同士も可能です。
ソースはこちら
GitHub - baobao/UnityOSCWrapper: UnityOSCWrapper is a wrapper for UnityOSC.
この記事が気に入ったらフォローしよう
- Unity2018.2.7f1