1 of 13

toio SDK for Unityに

プルリクした話

2021/06/08 ヅラChu @zurachu

2 of 13

自己紹介

  • ヅラChu      @zurachu
  • 小〜中からマイコンBASICマガジンを読んだりゲームプログラムを投稿したりしていた元パソコン少年の現おっさん
  • 高専(情報系)
  • 大学(情報系)
  • 某ゲーム会社(C/C++メイン)
  • 某ソシャゲ会社でサーバ(Ruby on Rails)とクライアント(Unity/C#)両方
  • 個人開発:Unity1週間ゲームジャム勢 #unity1week

3 of 13

toio歴

  • 個人的に電子工作やプログラミング教育系の話題、ガジェットに興味
    • ラズパイ, IchigoJam, P/ECE, etc...
  • toioはUnity SDKのリリースや2020年末のキャンペーンを機に購入
  • 幼稚園児の娘2人と、toioDo, ロジーボ, ゲズンロイド, トイオコレクション

4 of 13

toio SDK for Unity

  • https://morikatron.com/t4u/
  • モリカトロン株式会社が開発
  • GitHubにて提供(OSS, MIT License)

5 of 13

開発中のゲーム『COMPLEX WALLS』

  • 画面内のユニティちゃんと�リアルのtoioコアキューブの�座標が連動
  • スタートからまっすぐ進み、�画面内での壁衝突または�toioモーションセンサーの�衝突検知で右に曲がる
  • ユニティちゃんをゴールに�連れて行ったらクリア

6 of 13

開発中に発生した問題点

  • 1回目しかモーションセンサーの衝突検知コールバック�(Cube.collisionCallback)が呼ばれない

コールバックが返ってこない 😭

衝突検知

コールバック

7 of 13

2回目のコールバックが呼ばれない理由

toio SDK for Unity

アプリ

衝突なし状態になっても

自動通知されない

衝突

0x01

Cube.isCollisionDetected

false⇒true

右を向いて直進する

collisionCallback

.Notify()

衝突

0x01

Cube.isCollisionDetected

true⇒true

0x01

(衝突あり)

0x00

(衝突なし)

0x01

(衝突あり)

isCollisionDetectedが

立ち上がる時しか

コールバックを呼び出さない

8 of 13

対策

  • 既存アプリの挙動が変わってしまうような仕様変更はNG
  • 衝突なし状態の通知を受けてisCollisionDetectedを下げておきたい
  • 手動でモーション検出情報の要求を行うと、必ず1回通知が行われる!

9 of 13

解決!!

toio SDK for Unity

アプリ

衝突

0x01

Cube.isCollisionDetected

false⇒true

右を向いて直進する

collisionCallback

.Notify()

衝突

0x01

Cube.isCollisionDetected

false⇒true

0x01

(衝突あり)

0x00

(衝突なし)

0x01

(衝突あり)

Cube.isCollisionDetected

true⇒false

0x00

0x81

モーション

検出情報の

要求

右を向いて直進する

collisionCallback

.Notify()

RequestSensor()

ここを実装

10 of 13

プルリクエストを出しました

11 of 13

ver1.2.1にmergeしていただきました

12 of 13

最後に

  • みんなでどんどん使って改良していきましょう!
    • Android対応された黒川さんは(私iOS端末持ってなかったので)
    • macOSのUnityEditor対応のプルリク出されている小森さんも
  • BLE プロトコルバージョン v2.3.0の追加機能(姿勢角、磁気センサー)も�さわれるようになるとうれしいです
    • メジャーアップデート(Cubeの派生classの追加)までも手元で勝手対応して�プルリクするのはちょっとどうかな、というお気持ち…w

13 of 13

本当に最後に

  • もしよければゲームもちょっと遊んでみてください!
    • WebGLブラウザ版を仮公開中�https://zurachu.github.io/toio-move/
    • ステージギミックなど追加予定
    • ぜひご感想、フィードバックを m(_ _)m

  • 参考:問題調査時のツイート