Wpis z mikrobloga

Na starcie gry skrypt tworzy dwie instancje samochodu: s1 i s2. Jak wewnętrzny skrypt w samochodzie może się dowiedzieć czy jest w s1 czy w s2 przed pojawieniem się?

W funkcji Start to jest proste bo wystarczy mu przesłać zmienną ale jak to zrobić w Awake?
#unity3d #csharp
  • 3
@jacku: Dobre zasady mówią żeby w Awake inicjalizować siebie, a dopiero w Start odwoływać się do innych obiektów.
Jeśli będziesz korzystał w Awake z innych obiektów to niekoniecznie one same się zainicjalizują i będziesz natrafił na race conditions, gdy raz wykona się Awake w jednym skrypcie pierwszy a za innym razem Awake w drugim skrypcie.
via Wykop Mobilny (Android)
  • 1
@jacku: Awake się wywołuje w trakcie Insantiate więc się nie da. Albo zedytujesz prefab z którego tworzysz instancje i już będzie to info w trakcie Awake w serializowanym polu albo zapiszesz to na zewnątrz.
Ja używam osobnej metody Init po instantiate do ustawienia instancji, więc dzieje się to odrazu po Awake ale długo przed Start.
@zibizz1: też tak zrobiłem ale myślałem że to jakieś druciarstwo i na pewno są lepsze sposoby. Ale w sumie to jest logiczne że jak jest Awake i Start i nic pomiędzy to można sobie odpalić skrypty po kolei po Awake