スタンプ型デバイス(2) ~UnityとBluetoothSerial通信~
まえがき
前回はデバイスを完成させましたので次は利用できるアプリケーションを作成していきたいと思います.
本題
Unityと端末がBluetoothで通信できるようにする
機器概要
・Windows10 Laptop
・Unity 2019.3.2f1
・スタンプ型デバイス(M5StickC)
手順
デバイスからの送信は前回実装したので今回はUnity側で受信するscriptを実装する
1.新規プロジェクトを作成
2.設定を変更
File/Build Settings...からUWPに変更
Switch Platformする
3.script作成
受信するためのscriptはこちらをありがたく使わせていただきます.
以下のscriptをAssetsに作成
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class ColorChanger : MonoBehaviour
{
public SerialHandler serialHandler;
private bool flag = false;
int num = 0;
public Material[] array = new Material[5];
void Start()
{
serialHandler.OnDataReceived += OnDataReceived;
}
void OnDataReceived(string message)
{
var data = message.Split(
new string[]{"\n"}, System.StringSplitOptions.None); //受信する
Debug.Log(message);
switch (data[0]){
case "ON": //ONの時
if(flag == false){ //一度だけ実行する
//オブジェクトの色を用意したMaterialの色に変更する
GetComponent<Renderer>().material.color = array[num].color;
num++;
if(num > 4) num = 0;
flag = true;
}
break;
default:
if(flag == true) flag = false;
break;
}
}
}
4.objectにアタッチ
Demo用にCubeを作成
Cubeに作成したscriptをアタッチする
Serial Handler
Port Name:作成したデバイスのBluetooth接続Portに変更
※今回はBluetoothがCOM6となっていた
ColorChanger
Serial Handler:Cubeをアタッチ
Array:変化させる色のマテリアルをいくつか作成してアタッチ
実行例
Unityで使えた!! pic.twitter.com/Iyj506nRYU
— ゆーま (@sagirin262) August 21, 2020
あとがき
次はHoloLens2での利用,スタンプデバイスの位置を取得する手法を考えようかと思います
参考
【Unity】ESP32マイコンでBluetoothでUnityと接続するコントローラを作る
Unity2018でシリアル通信できない問題
BluetoothSerialでお手軽無線通信(M5StickC)
Bluetoothの自作デバイスを作りたい
UnityでC#によりCOMポートからのデータ入力
Serial Port Utility Pro
【Unity】Serial Port Utility Proをつかってシリアル通信する(Unity2019 & Win10 ※System.IO.Portsは使用しない)
Author And Source
この問題について(スタンプ型デバイス(2) ~UnityとBluetoothSerial通信~), 我々は、より多くの情報をここで見つけました https://qiita.com/t21m092/items/acf8a5230655c5e57e45著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .