You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中Cube控制脚本仅在停止运行后生效的问题求助

Unity对象激活状态异常问题排查

我编写了一个用于控制Cube的Unity脚本,脚本内定义了一个GameObject数组,需求是将数组中的对象设置为非激活状态。但启动程序时无任何预期效果,停止程序后脚本却突然生效。我已在论坛咨询、求助AI并自行调试,但均未解决问题。

脚本代码

using UnityEngine;

public class BlockController : MonoBehaviour
{
    public GameObject[] obje = new GameObject[2];

    void Start()
    {
        for(int x = 0; x < obje.Length; ++x)
        {
            obje[x].SetActive(false);        
        }
    }
}

状态截图

  • 程序停止状态:
    程序停止状态截图
  • 程序运行状态:
    程序运行状态截图

排查方向及解决方案

  • 确认数组赋值完整性:检查Inspector面板,确保obje数组已正确拖入目标Cube对象,空数组会导致循环执行但无实际操作。
  • 调整代码执行时机:将SetActive(false)的逻辑从Start移至Awake方法,避免其他脚本在Start之后重新激活对象。
  • 清除Unity缓存:点击菜单栏Edit -> Clear All PlayerPrefs,或重启Unity编辑器,解决播放模式下的状态缓存问题。
  • 检查父对象状态:若目标Cube有父对象,父对象的激活状态会影响子对象。确保父对象处于激活状态,或直接控制父对象的激活属性。

内容的提问来源于stack exchange,提问作者Шелухин Валентин

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:32:34