Unity 3d wyłączanie danych komponentów c#

0

Witam
Potrzebuje wyłączać wybrane komponenty obiektach.

 public void SaveComponents(GameObject obj, out List<Package> lista)
    {
        print("SAVE");
        //Pobieramy wszystkie komponenty z obiektu
        Component[] components = obj.GetComponents(typeof(Component));
}

Widziałem że kiedyś robili to tak

 components[1].enable = false;

lecz niestety teraz ta opcja nie działa i nie wiem czym ją zastąpili.
Jedyną znana mi opcja jest ten przykład:

 obj.getcomponent<komponent>().enable = false;

ale jak w nawias ostrokątny mam wstawić komponent z tablicy?
nie wiem w jaki sposób mam wydobyć referencje z komponentu :/

0
foreach(var component in components)
            component.enabled = false;
0

Jesteś pewien, że nie działa

 components[i].enable = false;

a nie:

 Component[] components = obj.GetComponents(typeof(Component));

?

Od którejś wersji Unity, komponenty pobiera się generycznie. Czyli: obj.GetComponents<Component>();

0

W przypadku error91 i Juhas wyskakuje ten sam błąd "'Component' does not contain a definition for 'enable' and no extension method 'enable' accepting a first argument of type 'Component' could be found (are you missing a using directive or an assembly reference?)'"
title

0

Wrzucam działający kod, wszystkim dzięki za pomoc :P

 for (int o = 0; o < components.Length; o++)
        {
            var tak = obj.GetComponents<Behaviour>();
            tak[5].enabled = false;
            print(tak[5]);
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1