Gateboxの人感センサーを使ってゲームを作りました!!
こちらの書籍を元ネタにネコが矢をよけるゲームにしました。
Unityの教科書
コーディング
お作法でレシーバを登録します。
void Start()
{
HumanSensor.RegisterListener(gameObject.name, "GateboxHumanSensorFunc");
}
センサーの検知はBooleanで処理しています。
こちらの処理はセンサーの状態が変化しないと再処理されないので、移動はUpdateで行います。
public void GateboxHumanSensorFunc(string message)
{
// Parse
HumanSensor.Result result = JsonUtility.FromJson<HumanSensor.Result>(message);
GameObject.Find("MoveText").GetComponent<Text>().text = "センサーの状態\n左:" + result.left + "右:" + result.right;
// Move Player
if (result.left == "true" && result.right == "false")
{
leftSensor = true;
rightSensor = false;
} else if (result.left == "false" && result.right == "true")
{
leftSensor = false;
rightSensor = true;
} else
{
leftSensor = false;
rightSensor = false;
}
}
センサーのBooleanに応じてネコを移動させます。
(左センサー -> 左移動 / 右センサー -> 右移動)
ポジションの上限 / 下限は良しなに。
void Update()
{
// Left Move
if (leftSensor && !rightSensor)
{
if (transform.position.x > -4.0f)
{
transform.Translate(moveX * (-1f), 0, 0);
}
}
// Right Move
if (!leftSensor && rightSensor)
{
if (transform.position.x < 4.0f)
{
transform.Translate(moveX, 0, 0);
}
}
}
いざ、実行
良い感じに動いています。
結構激しく運動する必要があります!!