読者です 読者をやめる 読者になる 読者になる

<IoT×Unity>MQTTをUnityで受けてみた!

今回はMQTTをUnityで受けてみた
Unity自体はゲームの開発ツールということでIoTとあまり関係ないのでは?
と思うかもしれないが最終的に加速度の値をキックにして
ゲームになんらかの影響を与えるということなんかやってみたいなーと思いやってみた

Unity側のDLLは下記のM2mqtt4Unityを利用した
MQTT Client Library for .Net and WinRT - Source Code

ちなみにダウンロードは下記の関連ページの”m2mqtt4unity-3.6.0.0.zip”と書かれているところをダブルクリックして行った
M2Mqtt4Unity-release - Download: 3.6.0.0

zipファイルをダウンロードすると

M2Mqtt>bin>Debug  > M2Mqtt.dll
                         M2Mqtt.pdb
                   >Release > M2Mqtt.dll
                                 M2Mqtt.pdb

というフォルダ構成になっていた。
今回はReleaseの方のDLLファイルを利用した

UnityでのDLLの設定は以下のサイトを参考にした
dllファイルの読み込み方 - Unity@Wiki

ただ全部を行ったわけではなく
AssetsにPluginフォルダをつくって、そこにDLLをドラックアンドドロップしただけで終えた。
DLLのインポートは
m2mqtt(.net 2.0対応fork版)をUnityで使うときの、Unity側呼び出しサンプル

のコードをそのまま活用させていただいた

そしこのスクリプト
Unity上のゲームオブジェクトにアタッチしてスタートさせて
Mac上からgolangの環境設定を行ってからmqttcliで下記のようにpublishさせた(なんかterminalの立ち上げのたびにgolangの環境設定が必要になっているなぜ?)

source ~/.basic
mqttcli pub --conf settings.json -t "topic" -m "Hello, Unity on MQTT"

すると

f:id:xhatenen:20141223230559p:plain

のようにPublisherのメッセージを受信するようにできた!
これから色々応用ききそうで楽しみだwww
※ちなみにまだMQTT3.1.1に対応していないとかいう噂もあったそんなこともなくMQTT3.1.1 MQTT3.1.0両方に対応していた