unity3d 检查是否处于活动状态多个游戏对象

vddsk6oq  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(134)

我正在寻找一种方法来检查多个游戏对象(数字)和5个部分显示,每个部分有3个数字,他们显示随机(0在所有部分中),如果O在部分1中有效,则不在部分2、3、4和5中再次显示0,而是随机化该部分中的其他数字(2,3,4,5)表示我只想在场景的一个部分随机显示0(部分1,2,3,4或5),另一个数字也随机显示。

我尝试了下面的代码,但我不知道我错过了什么,请帮助

private GameObject[] checkfirst;

[SerializeField]
private List < GameObject > objects = new List < GameObject > ();

public GameObject firstziro;

void Start()

{

  foreach(GameObject go in checkfirst) {
    if (go.activeSelf) {

      firstziro.gameObject.SetActive(false);

      int randomlyActiveObject = UnityEngine.Random.Range(0, objects.Count);
      for (int i = 0; i < objects.Count; i++) {
        objects[i].SetActive(i == randomlyActiveObject);
      }
    } else {

      firstziro.gameObject.SetActive(true);
      foreach(GameObject d in objects) {
        d.gameObject.SetActive(false);
      }

    }
  }
hc8w905p

hc8w905p1#

不要把所有五个部分都勾选你的勾选15个对象变成脚本很难处理,创建脚本前只勾选是段随机数,然后再创建另一个脚本来随机0,

[SerializeField] 
  private List<GameObject> objects = new List<GameObject>(); 



public GameObject five; 

  void Start() 
  { 
      if( five.gameObject.activeSelf) 
      { 
           
foreach (GameObject g in objects) 
{ 
  g.gameObject.SetActive(false); 
} 

      } 
      else{ 
              int randomlyActiveObject = UnityEngine.Random.Range(0, objects.Count); 
for (int i = 0; i < objects.Count; i++) 
{ 
  objects[i].SetActive(i == randomlyActiveObject); 
} 
} 

      } 
  }

相关问题