代码之家  ›  专栏  ›  技术社区  ›  AustinWBryan ravenspoint

如何在ExecuteEdit模式下删除Unity中的对象

  •  0
  • AustinWBryan ravenspoint  · 技术社区  · 6 年前

    我想做的

    int

    这是一个问题,但是,做的方式 Update 使用 ExecuteInEditMode ,因为每当场景发生变化时,它都会被执行,这就更加困难了。

    [ExecuteInEditMode]
    public class Floor : MonoBehaviour
    {
        [SerializeField] GameObject gameObject;
        [SerializeField] bool destroy;
    
        private void Update()
        {
            if (destroy)
            {
                destroy = !destroy;
                gameObject.Destroy();
            }
        }
    }
    

    bool 它会自动关闭,其行为更像编辑器中的一个按钮,非常方便。这样我就可以按了 destroy 然后摧毁这个物体。显然,如果没有支票,它会毁了你 gameObject 更新 如果再次调用,它将再次破坏它,以此类推。

    我想通过加上这个布尔值检查

    我也试过用腐蚀剂,但没能解决任何问题。

    有没有办法删除一个对象 执行编辑模式 不会引起无限循环? 更新 在场景变化中?

    2 回复  |  直到 6 年前
        1
  •  2
  •   Game Generator    6 年前
        2
  •  0
  •   victor dabija    6 年前

    使用 DestroyImmediate() 在编辑模式下 Destroy() 延迟(在编辑模式下,将永远不会执行延迟解构)。

    https://docs.unity3d.com/ScriptReference/Object.DestroyImmediate.html