温度センサーを使い、「温度が一定以上になると“自動で動く”UWPアプリ」を作るラズパイ3&Toradex、Windows 10 IoT Coreで楽しみながら検証するIoT実践入門(5)(2/4 ページ)

» 2016年07月11日 05時00分 公開
[薬師寺国安PROJECT KySS]

Unity 5.3のプロジェクトを用意する

 今回作成するUnity 5.3のプロジェクトは、画面上にガイコツのキャラクターがダンスを踊るプロジェクトを流用する。現時点の温度を表示する「uGUIのText」も配置しているが、Unity 5.3だけではセンサーから得られるデータを取得していないので、温度は0と表示されている(動画1)。

動画1 Unityで作成した、ガイコツが踊るプロジェクト。その上に温度を表示するuGUIのTextの領域を設けている

 このガイコツが踊るプロジェクトに、センサーから情報を取得して、温度を表示するスクリプトを追加する(リスト1)。追加するスクリプト名は「SkeletonDanceScript.cs」である。

using UnityEngine;
using System;
public class SkeletonDanceScript : MonoBehaviour
{
    static public int Temperature;
    GameObject obj;
    void Start()
    {
        obj = GameObject.Find("skeletonDark");
        Temperature = 0;
     }
    // Update is called once per frame
    void Update()
    {
          obj.GetComponent<Animation>().Play("dance");
     } 
}
リスト1 「SkeletonDanceScript.cs」の中身

 「SkeletonDanceScript.cs」のポイントは以下の通りだ。

変数の宣言

 今回のUnity 5.3内では使わないが、UWPへ書き出した場合に、温度センサーに関するコードを追加する場合に必要となる、グローバルなint型変数Temperatureを宣言しておく。また、GameObject型の変数objを宣言しておく。

Start()メソッドの処理

 Find()メソッドでScene上に配置したskeletonDarkにアクセスし、変数objで参照しておく。グローバルな変数Temperatureを0で初期化しておく。

Update()メソッドの処理

 danceというアニメーションを実行する。Update()メソッドは常に呼び出されているので、ここでダンスをさせるアニメーションを実行しておくと、UWPでは永遠にダンスを踊り続ける処理となる。

 次に、uGUIのTextに「TemperatureScript.cs」を追加する(リスト2)。

using UnityEngine;
using UnityEngine.UI;
public class TemperatureScript : MonoBehaviour {
    Text uText;
    void Start () {
        uText = GetComponent<Text>();
     }
	
void Update()
    {
        uText.text = SkeletonDanceScript.Temperature.ToString();
    }
}
リスト2 追加する「TemperatureScript.cs」の中身

 「TemperatureScript.cs」のポイントは以下の通りだ。

名前空間の読み込み

 uGUIを使用するために、UnityEngine.UI名前空間を読み込んでおく。

変数の宣言

 Text型のuText変数を宣言しておく。

Start()メソッドの処理

 GetComponent();と記述し、取得するコンポーネントの型をTextとしてuText変数で参照しておく。

Update()メソッドの処理

 uText変数のtextプロパティに、SkeletonDanceScript内で宣言していた、グローバルな変数Temperatureの値を文字列に変換して表示する。ここでは0としか表示されない。

UWPにプロジェクトを書き出す

 コードを追記したら、UWPにプロジェクトを書き出す。プロジェクトの書き出し方は、第2回目の「Unity 5.3プロジェクトをUWPに書き出す」の章を参照いただきたい。適当な名前のフォルダを作成して、そこへ書き出せば完了だ。

 これで、準備は整った。Unity 5.3から書き出したUWPをVisual Studio 2015(以下、VS2015)で読み込み、コードを仕上げよう。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。