Wpis z mikrobloga

Czy trzeba przestać subskrybować event w momencie zniszczenia obiektu ? Chodzi mi o sytuacje kiedy mamy brodcast z obiektu A na B a obiekt B już nie istnieje. Czy jest konieczne zaprzestanie subsktrybcji np w OnDestroy na B ? #unity #unity3d
  • 7
@applicattura: Jasne xD
Jak zapiszesz się do eventu w Start() i zrobisz

B.SetActive(false);

a potem

B.SetActive(true);

i wywołasz event, to metoda już dawno będzie odpięta od eventu i się nie wykona nigdy więcej
W nowym Unity masz C#7 więc możesz używać nowej składni ze znakiem zapytania, (sprawdza czy obiekt istnieje, jeśli istnieje wywoła obsługę eventu, jeśli nie, to nie): myEvent?.Invoke(). Wtedy nie musisz się martwić zdejmowaniem subskrypcji z eventu