微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c#-“组件”不包含“已启用”的定义,也没有扩展方法“已启用”

我试图禁用和禁用存储在列表中的组件.当我尝试这样做时,出现以下错误

‘Component’ does not contain a deFinition for ‘enabled’ and no
extension method ‘enabled’ accepting a first argument of type
‘Component’ Could be found (are you missing a using directive or an
assembly reference?)

我也试过

 components[4].SetActive(false);

并得到类似的错误

public List<Component> components;
...
components = new List<Component>();
components.Add(player.GetComponent<_2dxFX_HSV1>());
components.Add(player.GetComponent<_2dxFX_HSV2>());
components.Add(player.GetComponent<_2dxFX_HSV3>());
components.Add(player.GetComponent<_2dxFX_HSV4>());
components.Add(player.GetComponent<_2dxFX_Negative>());
components.Add(player.GetComponent<_2dxFX_Lightning>());
components.Add(player.GetComponent<_2dxFX_MetalFX>());
components.Add(player.GetComponent<_2dxFX_Pixel8bitsC64>());
components.Add(player.GetComponent<_2dxFX_GoldFX>());
components.Add(player.GetComponent<_2dxFX_Waterfall>());
components.Add(player.GetComponent<_2dxFX_Hologram>());
components.Add(player.GetComponent<_2dxFX_plasmaRainbow>());

components[4].enabled = false;

如何禁用列表中的组件类型?

解决方法:

您不能启用/禁用Unity的Component类型.

您正在寻找Behaviour.行为是可以启用或禁用的组件.

如果将脚本引用存储为Component并希望启用或禁用它,请将其强制转换为Behavior,则可以启用或禁用它.

更换

components[4].enabled = false;

BehavIoUr bhvr = (BehavIoUr)components[4];
bhvr.enabled = false;

阅读this,以了解两者之间的区别.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐