前提・実現したいこと
以下の画像のナビゲーションで移動するマップを作成しています。
(1~9は移動ターゲット)
ランダムにターゲットを取得してその場所に移動させていきます。
ですが条件として2回連続同じ場所に移動させないようにしたいです
例)2番に移動した後また2番を選ぶこと
つまりはランダム関数で直前に選んだもの以外を選ぶようにしたいです。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.AI; 5public class Target : MonoBehaviour 6{ 7 public NavMeshAgent player; 8 public GameObject target; 9 public GameObject[] targets; 10 11 void Start() 12 { 13 player = gameObject.GetComponent<NavMeshAgent>(); 14 } 15 16 void Update() 17 { 18 if (target != null) 19 { 20 player.destination = target.transform.position; 21 } 22 23 } 24 private void OnTriggerEnter(Collider other) 25 { 26 if (other.gameObject.tag == "Move") 27 { 28 29 30 31 int number = Random.Range(0, targets.Length); 32 33 34 target = targets[number]; 35 targets[number].GetComponent<ColliderSwitch>().enabled = true; 36 37 } 38 39 } 40 41 42}
試したこと
上記だとただランダムに選ぶので2回同じのが選ばれる可能性があり挙動不審になります。
また「ColliderSwitch」は次に移動する間に他のターゲットに反応させないようにするためのスクリプトです。
補足情報(FW/ツールのバージョンなど)
Visual Studio 2017
Unity 2019.3.9f1
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。