複数のオブジェクトをランダム表示して、スペースキーで停止。もう一度スペースキーを押せば、動き出すしくみを作ってみましょう。
3つのオブジェクトが0.1秒おきにランダム出現をくり返します。
スペースキーを押すと止まり、もう一度押すと再びループが実行されます。
関連記事:
ランダム表示したPrefabを順に配列に入れる
配列にあるオブジェクトを要素番号で呼び出す
スペースキーを押せばスタート
キーを押している間は動きを一時停止
一時停止のオブジェクトをn秒後に再始動
ランダム表示のくり返しを止める・再開する
空のオブジェクトを作成します。
RandomChange.csを作成し、GameObject(空のオブジェクト)に追加します。
RandomChange.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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class RandomChange : MonoBehaviour { public GameObject[] myArray = new GameObject[3]; private int randomNum; private float time; private bool isStop; void Start() { time = 0; isStop = false; } void Update() { if(!isStop){ time -=Time.deltaTime; if(time <= 0.0f) { randomNum = Random.Range (0, myArray.Length); RandomAppear(); time = 0.1f; } } if(Input.GetKeyDown("space")) { if(!isStop){ isStop = true; } else if(isStop) { isStop = false; } } } void RandomAppear() { if(randomNum == 0) { myArray[0].gameObject.SetActive(true); myArray[1].gameObject.SetActive(false); myArray[2].gameObject.SetActive(false); } if(randomNum == 1) { myArray[0].gameObject.SetActive(false); myArray[1].gameObject.SetActive(true); myArray[2].gameObject.SetActive(false); } if(randomNum == 2) { myArray[0].gameObject.SetActive(false); myArray[1].gameObject.SetActive(false); myArray[2].gameObject.SetActive(true); } } } |
3Dオブジェクトを3つ作成します。
3つのフィールドに、それぞれオブジェクトを入れます。
ゲームプレイしてみましょう。
配列の中に入った3つのオブジェクトがランダムで表示されます。
スペースキーを押せば停止し、もう一度押せばランダム表示が再開されます。
関連記事:
ランダム表示したPrefabを順に配列に入れる
配列にあるオブジェクトを要素番号で呼び出す
スペースキーを押せばスタート
キーを押している間は動きを一時停止
一時停止のオブジェクトをn秒後に再始動