🤍

Unityからtoioの傾き(姿勢)を検出する

2022/02/18に公開

はじめに

toio-SDK-for-Unityの導入等は公式のgithubを参考にしました.
この記事では,

  1. Unityからtoioへ接続する
  2. Unityからtoioの傾きを検知する

の2点について書きます.

Unityからtoioへ接続する

私はMacを使用しているので公式ドキュメントにあるようにこのプラグインを導入.
このプラグインによってエディターモードでもtoioとBluetooth接続することが可能.

toioへの接続は,toio-sdk/Samples/Sample_Bluetooth/Sample_ConnectType.csを参考にした.
接続するだけだと,このコードをコピペするだけで十分.
インスペクターでConnect TypeをRealに設定すると,toioと接続可能になる.
toioが急に回転し出したら接続完了.

Unityからtoioの傾き(姿勢)を検出する

cubeの姿勢検出のドキュメントは以下.
https://toio.github.io/toio-spec/docs/2.1.0/ble_sensor/#姿勢検出-

cube.pose

で姿勢を検出できる.
具体的には以下のようなコードになると思う.

Bluetooth.cs
public class Bluetooth : MonoBehaviour
{
    public ConnectType connectType;
    CubeManager cm;
    Cube cube;

    async void Start()
    {
        cm = new CubeManager(connectType);
        await cm.MultiConnect(1);
    }


    void Update()
    {        
        foreach (var cube in cm.syncCubes)
        {
            Debug.Log(cube.pose);
        }
    }
}

出力される内容は以下のようになる.
FrontとBackの違いなど,少しだけややこしいので,括弧内に面の特徴をメモ.

出力 キューブの姿勢(どの面が上か)
Up 上面 (凸凹)
Down 下面(タイヤ)
Front 背面(前面の逆)
Back 前面(toioという文字)
Right
Left

Discussion