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

Unity 3d wyłączanie danych komponentów c#
K6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 28
0

Witam
Potrzebuje wyłączać wybrane komponenty obiektach.

Kopiuj
 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

Kopiuj
 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:

Kopiuj
 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 :/

E9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 395
0
Kopiuj
foreach(var component in components)
            component.enabled = false;
JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0

Jesteś pewien, że nie działa

Kopiuj
 components[i].enable = false;

a nie:

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

?

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

K6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 28
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

K6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 28
0

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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.