c# - Unity3D防止添加某些内置组件

标签 c# unity-game-engine components

我制作了自己的组件,它与一些 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/

相关文章:

c# - 如何将二维 JSON 数组发布到 Web 服务

c# - 有没有办法以管理员权限运行 UWP 应用程序?

c# - 如何在 Android 设备上访问 Unity 中的 SDCard 路径?

c# - Unity-Monodevelop变量同步问题

iframe - 带有 DomSanitationService 的 iFrame 中的 Angular2 不安全资源 URL

c# - 错误 CS1935 'Select' 未找到

c# - 使用 MVC + 存储库模式,业务逻辑应该在哪里?

c# - 实例化一颗子弹朝向玩家位置

delphi - 使用一些行颜色扩展 DBGrid

angular - 尝试使用具有不同模板的相同组件