今回作成するUnity 5.3のプロジェクトは、画面上にガイコツのキャラクターがダンスを踊るプロジェクトを流用する。現時点の温度を表示する「uGUIのText」も配置しているが、Unity 5.3だけではセンサーから得られるデータを取得していないので、温度は0と表示されている(動画1)。
このガイコツが踊るプロジェクトに、センサーから情報を取得して、温度を表示するスクリプトを追加する(リスト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"); } }
「SkeletonDanceScript.cs」のポイントは以下の通りだ。
今回のUnity 5.3内では使わないが、UWPへ書き出した場合に、温度センサーに関するコードを追加する場合に必要となる、グローバルなint型変数Temperatureを宣言しておく。また、GameObject型の変数objを宣言しておく。
Find()メソッドでScene上に配置したskeletonDarkにアクセスし、変数objで参照しておく。グローバルな変数Temperatureを0で初期化しておく。
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(); } }
「TemperatureScript.cs」のポイントは以下の通りだ。
uGUIを使用するために、UnityEngine.UI名前空間を読み込んでおく。
Text型のuText変数を宣言しておく。
GetComponent
uText変数のtextプロパティに、SkeletonDanceScript内で宣言していた、グローバルな変数Temperatureの値を文字列に変換して表示する。ここでは0としか表示されない。
コードを追記したら、UWPにプロジェクトを書き出す。プロジェクトの書き出し方は、第2回目の「Unity 5.3プロジェクトをUWPに書き出す」の章を参照いただきたい。適当な名前のフォルダを作成して、そこへ書き出せば完了だ。
これで、準備は整った。Unity 5.3から書き出したUWPをVisual Studio 2015(以下、VS2015)で読み込み、コードを仕上げよう。
Copyright © ITmedia, Inc. All Rights Reserved.