Unity游戏启动时随机显示单个GameObject需求实现求助
实现随机显示单个GameObject的方案
你的原有代码仅修改了对象位置,要实现显示/隐藏需要通过SetActive()方法控制对象的激活状态,以下是正确实现:
步骤1:定义GameObject数组
在脚本中替换原有单个player变量,改为存储三个目标对象的数组:
public GameObject[] targetObjects; // 在Unity Inspector面板中拖入你的三个GameObject
步骤2:编写随机显示逻辑
在Start()方法中,先统一隐藏所有对象,再随机选中一个激活显示:
private void Start() { // 隐藏所有对象 foreach (var obj in targetObjects) { obj.SetActive(false); } // 生成0-2的随机索引(对应三个对象) int randomIdx = Random.Range(0, targetObjects.Length); // 激活选中的对象 targetObjects[randomIdx].SetActive(true); }
注意事项
- 务必在Unity编辑器的Inspector面板中,将三个GameObject拖入
targetObjects数组 - 如果场景中默认有对象处于激活状态,上述代码的循环会先统一隐藏,再确保只有随机选中的对象显示
内容的提问来源于stack exchange,提问作者monkey from Tanzania
相关产品推荐
相关产品推荐

