繁体   English   中英

我如何禁用多个组件Unity 3D C#

[英]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字段。 BehaviourMonoBehaviour的父类的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM