最近 项目 因为 使用 active 代替 instantiate机制,很多时候 OnEnable 代理 OnStart.

然后发现一个 奇怪的 问题 

    void Awake() {
        Debug.Log("Awake");
    }

    void OnEnable()
    {
        Debug.Log("OnEnable");
        gameObject.SetActive(false);
    }

你如果在 OnEnable 中 gameObject.SetActive(false);

那么 这个 物体 就再也 无法 生成生成了。

Unity3dBug - OnEnable

 

我认为 可能OnEnable 中 如果 set false 就等于 没产生,没产生自然也就没有物体会出现。

可是 我又错了。

1     void Awake() {
2         Debug.Log("Awake");
3         gameObject.SetActive(false);
4     }
5 
6     void OnEnable()
7     {
8         Debug.Log("OnEnable");
9     }

 

直接上结果

Unity3dBug - OnEnable

Unity3dBug - OnEnable

 

 

Unity3dBug - OnEnable

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-22
  • 2021-12-30
  • 2022-12-23
  • 2021-09-30
  • 2021-10-22
相关资源
相似解决方案