渋谷ほととぎす通信

新しいこと、枯れたこと問わず大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。

UnityでOSCを使って通信する


f:id:esakun:20150730215258g:plain:w450

UnityでOSCやってみます。

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

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

成果物はコチラ

f:id:esakun:20170402032355g:plain

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

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

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

使用方法

受信側

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

送信側

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

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

  • 送信側はOSCSenderクラス、受信側はOSCReceiverクラスを使用する構成
  • 受信側は受信したときだけ通知するイベント登録式
  • OSCPacketを引数として受信イベントを受け取る
  • 特に必要ないのでMonoBehaviourは継承しない

注意点

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

補足

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

ソースはこちら

環境

  • Unity2018.2.7f1 (2018.12.31に更新しました)

あわせてどうぞ

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info