本記事について
UnityのSDKをいれるところからtoio実機で動かすまでの流れとポイントを書く。
実機が動くまで、これでいいのか..?とちょっと戸惑ったりしたので備忘録
アプリのビルドはやっていないので本記事には書かない。
環境
mac os 12.5 silicon
toio SDK for Unity v1.5.1
Unity 2021.3.7f1
流れ
基本的にはドキュメントのセットアップを見てやればよい。
プロジェクト作成、SDKインストール
toio SDK for Unity のインストールの通りにやればOK
この通り、プロジェクトはURPではなくLegacyなレンダリングパイプラインの方で作成。URPではShaderが無効になってピンクになった。
UniTaskのインストールは2022/12現在 gitのURLでやるよりもscoped registry使う方がバージョンアップが容易で都合よいのでそっちでやる。
toioのSDKは2022/12現在ドキュメントにUPMについては記載なかったので、unitypackage使ってインストールする。(ぜひ対応してほしい)
シミュレーターでの確認もサクッとすむ
Macからtoio実機への接続
MacBLE利用方法を見てやればBLE通信できるようにする
11.x または 12.x の場合はbleplugin_11.bundle.zip
12.xのときはbleplugin_12ではなくbleplugin_11ってところに注意(ないからわかるだろうけども)
次にSample_ConnectTypeのシーンを開く。
シーンを開いてそのまま再生を押すと画面上のtoioが回転することが確認できた。
sceneというオブジェクトをクリックするとConnectTypeが確認できる。
async void Start()
{
// ConnectType.Auto - ビルド対象に応じて内部実装が自動的に変わる
// ConnectType.Simulator - ビルド対象に関わらずシミュレータのキューブで動作する
// ConnectType.Real - ビルド対象に関わらずリアル(現実)のキューブで動作する
cm = new CubeManager(connectType);
await cm.MultiConnect(2);
}
「内部実装が自動的に変わる」の具体的な中身が知りたい。
public class CubeConnecter : CubeConnecterInterface
{
private CubeConnecterInterface impl;
public CubeConnecter(ConnectType type = ConnectType.Auto)
{
if (ConnectType.Auto == type)
{
#if (UNITY_EDITOR || UNITY_STANDALONE)
this.impl = new SimImpl();
#elif (UNITY_IOS || UNITY_ANDROID || UNITY_WEBGL)
this.impl = new RealImpl();
#endif
}
else if (ConnectType.Simulator == type)
{
this.impl = new SimImpl();
}
else if (ConnectType.Real == type)
{
this.impl = new RealImpl();
}
UnityEditorだとSimulatorを使うってことだった。
つまり、Sample_ConnectTypeのサンプルで実機toioと接続するためにはConnectTypeをRealにすれば良い。
ということでinspectorでRealに切り替える。
toioの電源を入れて再生ボタンを押す。
するとmacの画面で「UnityHubでBluetoothを許可しますか?」みたいなポップアップが出たので許可(スクショとってなかった)。
で、しばらく待っても何も起こらなかった。
一度再生を止めて、toio再起動し、再度Unityを再生したところtoioから接続音が出て本記事の冒頭のgifのように回転し始めた。
Unityの再生をやめたところ接続も切れた。