オブジェクトをクリックしてから、1秒間だけtrueを返すスクリプトを作ってみましょう。
Cubeをクリックしてから1秒間だけtrueが表示され、その後またfalseに戻ります。
クリックした瞬間、少しだけ効果を持続させたい場合に、使える仕組みです。
関連記事:
コルーチンを使って1秒後にテキストを消す
クリックするたびに色を切り替える方法
クリックのあとn秒間だけ処理を持続
Cubeを作成し、CubeClick.csを追加します。
CubeClick.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 26 27 28 29 30 31 32 33 34 35 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeClick : MonoBehaviour { public bool flag; void Start() { flag = false; } void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(ray, out hit)) { StartCoroutine("ChangeColor"); } } Debug.Log(flag); } IEnumerator ChangeColor() { flag = true; yield return new WaitForSeconds(1.0f); flag = false; } } |
ゲームプレイして、Cubeをクリック。
コンソールを確認しましょう。
クリックしてから1秒間だけ、trueが維持されます。