shuzo-kino.hateblo.jp
の続き。
本当はこちらを先にやりたかったのですがネ。
今回は、別のゲームオブジェクトに紐づいたC#スクリプトの変数を変化させ、アクションを発火させる動きをつくります。
実際のところ
capRot.cs
カプセルを回転させるスクリプト。
スペースキーをおすか、スクリプト外からrotFlagをオンにすることで赤いタイ米状のカプセルオブジェクトが高速回転するという画期的かつ創造的なサンプルとなっております。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class capRot : MonoBehaviour { float rotSpeed = 0.0f; public bool rotFlag = false; // Update is called once per frame void Update() { if( Input.GetKey(KeyCode.Space) || rotFlag) { this.rotSpeed = 10.0f; } transform.Rotate(0,0,this.rotSpeed); this.rotSpeed *= 0.96f; } }
cube2capRot.cs
ボタン代わりのキューブに割り付けるスクリプト。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class cube2capRot : MonoBehaviour { public GameObject myObj; public GameObject RotateObj_forButton; private void OnTriggerEnter(Collider other) { RotateObj_forButton.GetComponent<capRot> ().rotFlag = true; } private void OnTriggerExit(Collider other) { Destroy(RotateObj_forButton); Destroy(myObj); } }
配下のコンポネントにアクセスする構文が普段Pythonとかシェルスクリプト書いてる人間には新鮮。
LotYで一年に一個新しい言語をと書いてましたが、まさにこういう体験をするためなんでしょうね。