我制作了自己的组件,它与一些 Unity 内置组件冲突(例如 Rigidbody 与 Rigidbody2D 冲突)。所以我需要确保这些组件不会同时存在于同一个游戏对象中。有办法做到吗?看起来很容易检查自己的组件何时添加(通过 Reset ),但是如果添加了 Unity 内置组件怎么办?当新组件附加到游戏对象时是否发送一些回调、消息或事件?
精度
我不需要在编辑器中隐藏组件,也不需要阻止添加我自己的组件。我询问如何在附加组件时防止添加某些 Unity 内置组件。来自编辑器 GUI(通过“add component ”按钮)和 Unity API(通过 GameObject.AddComponent )。
最佳答案
有 [DisallowMultipleComponent]
属性可防止两个相同类型的对象被添加到同一游戏对象中。这也适用于子类型(这就是 Rigidbody 和 Rigidbody2d 的处理方式)。
我不确定这是否适合您,因为您没有说您的组件彼此相关,但这是我能找到的。
关于c# - Unity3D防止添加某些内置组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47888646/