Aktywne Wpisy
kamil150794 +105
Dziś są moje urodziny. Kończę 30 lat.
Incel, prawik, bez znajomych, odtrącony przez rówieśników od małego.
Nie mogłem się prawidłowo rozwinąć.
Nigdy tak naprawdę nie żyłem.
... a tu jeszcze tyle lat gnicia.
Incel, prawik, bez znajomych, odtrącony przez rówieśników od małego.
Nie mogłem się prawidłowo rozwinąć.
Nigdy tak naprawdę nie żyłem.
... a tu jeszcze tyle lat gnicia.
R2D2_z_Sosnowca +303
Za to kocham ten kraj. Skręć jutro rano w prawo - jesteś na miejscu XD #r2d2zwiedza #usa
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)
Mechanizm 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
Object
dlatego rzutowanie przy uzyciuAS
jest potrzebne.@3THU5_9r3W: chyba pomyliłeś z
costam.GetType()
, typeof jest ewaluowane przy kompilacjiKomentarz usunięty przez moderatora
as
. Mozesz traktowac zwrocony obiekt jakoObject
aczkolwiek jesli chcesz uzyc wlasciwosci konkretnego obiektucosTam
to musisz go zrzutowac na dany typ i sprawdzic czy rzutowanie uzywajacas
sie 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