Unity Events
Unity Events Ă€r en variation pĂ„ samma designmönster som C# delegater. En hĂ€ndelse â en "event" â knyts till en eller flera metoder. SĂ„ nĂ€r hĂ€ndelsen aktiveras, sĂ„ körs alla metoder som kopplats till den.
Skillnaden mellan Events och delegater Àr att med Events sker anknytningen mellan hÀndelse och metoder i första hand via Unity-editorns grÀnssnitt snarare Àn med kod.
MÄnga system i Unity anvÀnder Events som ett sÀtt att bygga logik direkt i editorn. UI-systemet anvÀnder till exempel Events för att knyta knapptryck till metodanrop, utan att den som designar grÀnssnittet behöver skriva nÄgon kod.
I editorn
Bilden ovan visar tre exempel pĂ„ UnityEvents som visas i Unity-editorn. Det första eventet har Ă€nnu inga metoder kopplade till sig â listan Ă€r tom. Listan utökas genom knappen +.
För att koppla en metod till ett Event behövs tre eller fyra bitar information:
NĂ€r eventet ska vara aktivt â normalt "Runtime only", alltsĂ„ att eventet bara kan aktiveras nĂ€r spelet körs.
Objektet som innehÄller den komponent vars metod ska anropas.
Komponenten och metoden som ska anropas.
Eventuellt: en parameter som skickas in i metoden nÀr den anropas.
Eventet "Normal Event" i exemplet anropar metoden SayHello pÄ komponenten Hello, som i sin tur befinner sig i objektet TestObject.
Eventet "String Event" anropar istÀllet metoden SaySomething, med parametern "What is Love?", pÄ samma komponent (Hello) och samma objekt (TestObject).
Objektet behöver vÀljas först, dÀrefter komponenten, metoden och det eventuella parametervÀrdet.
UnityEvent
UnityEvent Àr datatypen för unity events. För att anvÀnda den behöver man ocksÄ inkludera UnityEngine.Events.
Invoke()
Aktiverar eventet â det vill sĂ€ga, kör alla metoder som knutits till det.
AddListener()
Normalt anvÀnds Unity-grÀnssnittet för att lÀgga till metoder som ska anropas nÀr eventet aktiveras, men man kan ocksÄ göra det i kod via AddListener().
UnityEvent<>
För att skapa events som skickar parametervÀrden till sina metoder, och vars metoder tar emot parametervÀrden, lÀggs parametrarnas datatyp till mellan < och >.
Last updated