オブジェクトがアクティブになっているときの、時間を測定できるように、スクリプトを作成しましょう。
左クリックでCubeを表示、右クリックで非表示。
表示されたタイミングで、タイマーによる計測を行い、コンソールに表示しています。
関連記事:
activeSelfでオブジェクトの有無を取得
アクティブ状態のオブジェクトに当たれば消える
複数のオブジェクトをボタンで表示・非表示
オブジェクトの表示・非表示を切りかえる
キーを押すたびにオブジェクトを切り替える
アクティブ状態のオブジェクト数を取得
ActiveSelfで表示状態を確認する
Cubeと、空のオブジェクト(GameObject)を作成します。
ActiveTime.csを作成し、GameObjectに追加します。
ActiveTime.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ActiveTime : MonoBehaviour { [SerializeField] GameObject cube; private float time; void Update() { if (Input.GetMouseButtonDown(0)) cube.gameObject.SetActive (true); else if (Input.GetMouseButtonDown(1)) cube.gameObject.SetActive (false); if(cube.activeSelf) time += Time.deltaTime; else time = 0; Debug.Log(time); } } |
キューブのフィールドに、Cubeを入れます。
ゲームプレイして、動きを見てみましょう。
左クリックでCubeがアクティブになり、コンソールで秒数がカウントされていることがわかります。
右クリックすると非表示になり、タイマは0に戻ります。
関連記事:
activeSelfでオブジェクトの有無を取得
アクティブ状態のオブジェクトに当たれば消える
複数のオブジェクトをボタンで表示・非表示
オブジェクトの表示・非表示を切りかえる
キーを押すたびにオブジェクトを切り替える
アクティブ状態のオブジェクト数を取得