[英]How i can disable multiple components Unity 3d c#
我如何禁用游戏对象的多个组件?
public void SaveComponents(GameObject obj, out List<Package> lista)
{
print("SAVE");
//Pobieramy wszystkie komponenty z obiektu
Component[] components = obj.GetComponents(typeof(Component));
}
那个例子
components[1].enable = false;
对我不起作用,“启用”它不可用:/
这是因为Component
没有名为enable
字段。 该Behaviour
在MonoBehaviour
的父类的Behaviour
中可用。
因此,如果要禁用所有组件, GameObject
需要禁用父GameObject
但是如果要禁用自己的数据类型的组件,请使用:
public void SaveComponents(GameObject obj, out List<Package> lista)
{
print("SAVE");
//Pobieramy wszystkie komponenty z obiektu
foreach(Behaviour behaviour in obj.GetComponents<Behaviour>()){
behaviour.enabled = false;
}
}
“ Component []组件= obj.GetComponents(typeof(Component)); <---这是我的数组,我想禁用数组中选定的元素” :
// list of all components without enable field in it
Component[] components = obj.GetComponents(typeof(Component));
int indexOfComponentToChange = 1; // index of the component to disable
Behaviour castedToBehaviour = components[indexOfComponentToChange] as Behaviour;
if ( castedToBehaviour != null )
{
castedToBehaviour.enabled = false;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.