Aktywne Wpisy
kamil150794 +130
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 +378
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;
Popatrz na to tak: twoja metoda przyjmuje argument typu Type. Ten Type jest w zasadzie takim samym typem zmiennej jak choćby string, int czy twoje cosTam. Zmienna typu
Type
przechowuje informację o dowolnym typie (trochę taka incepcja), czyli może np. zawierać informację o intach, o stringach czy czymkolwiek innym, ale sama zawsze pozostaje zmienną typu Type.Kompilator nie próbuje się domyślić zawartości tego argumentu w metodzie, bo parametry zostaną przekazane do niej dopiero w trakcie działania programu, nawet jeśli wykorzystałeś operator typeof do zdefiniowania sobie typu na zewnątrz.
Z kolei w metodach generycznych (te z takimi dodatkowymi nawiasami: ) niezależnie od tego z jakimi danymi je wywołasz, parametr T musi być znany już w momencie kompilacji. Technicznie dla każdego takiego typu tworzona jest pod spodem oddzielna metoda. Musisz sobie poczytać o kowariancji i kontrawariancji.