Aktywne Wpisy

hansoloxd +244
Treść przeznaczona dla osób powyżej 18 roku życia...

Lujdziarski +685
No debil no xD
źródło: temp_file7947764484655278937
PobierzSkopiuj link
Skopiuj link

źródło: temp_file7947764484655278937
PobierzRegulamin
Reklama
Kontakt
O nas
FAQ
Osiągnięcia
Ranking
a = GetComponent ();
a = GameObject.FindObjectOfType(typeof(cosTam)) as cosTam;
Dlaczego w Unity, C#, wymagane jest dopowiedzenie jeszcze, że poszukiwanym obiektem jest np. CosTam jako (as) coś tam? Dlaczego muszę doprecyzowywać po "as" jeszcze to, skoro już wcześniej wyraziłem się, że typeoff to jest właśnie cosTam? :)
#unity3d #unity #unity #gamedev #csharp
Dziękuję za odpowiedź.
EDIT: i dlaczego musze jeszcze powiedzieć że a to weź komponent od skoro już na dzień dobry stwierdziłem/zdefniowałem sobie, że
cosTam a;
@Szmerg: to zwraca Object, a nie cosTam. Nawet jak wpisujesz typeof(cosTam)
źródło: comment_nXuQ3Smm3ENIijtjWXgWuSX7gpEbSAIY.jpg
Pobierzźródło: comment_er2J4rMrFMzeTLzbggM04sGT3X7F0MLN.jpg
PobierzMechanizm wnioskowania typów nie jest w stanie na tej podstawie wywnioskować konkretnego typu zwracanego funkcji. Gdybyś miał ten typ podany jako parametr generyczny to zadziałałoby.
Zwracany jest zapewne System.Object który castujesz sobie z użyciem 'as'.
Funkcja FindObjectOfType() zwraca obiekt typu
Objectdlatego rzutowanie przy uzyciuASjest potrzebne.@3THU5_9r3W: chyba pomyliłeś z
costam.GetType(), typeof jest ewaluowane przy kompilacjiKomentarz usunięty przez moderatora
as. Mozesz traktowac zwrocony obiekt jakoObjectaczkolwiek jesli chcesz uzyc wlasciwosci konkretnego obiektucosTamto musisz go zrzutowac na dany typ i sprawdzic czy rzutowanie uzywajacassie powiodlo.@Szmerg: GetComponent to metoda generyczna, musisz wtedy podać typ. Sygnatura tej metody to mniej więcej: T GetComponent() . W ciele tej metody wykonywana jest logika dla której niezbędne jest podanie w parametrze generycznym T, typu jaki chcesz mieć zwrócony. Generalnie to C# jest językiem TypeSafe i nie będzie