UnityEvents and the Inspector
Now that we’ve exhausted ourselves with native C# types, let’s turn to the UnityEvent
type. A UnityEvent
works just like a C# event/delegate or action, meaning they subscribe, unsubscribe, and store a reference to a desired response when something happens. The big difference is that they can be configured in the Unity Editor, which opens a whole new world of possibilities, especially if your team has non-programmer members who need to access and test these features.
Adding Unity events
The code that goes with a UnityEvent
will look familiar to everything we’ve done previously – namely declaring an event and then invoking it when the time is right. Update Player.cs
to match the following code, which declares a new event for when the player is damaged and fires it every time an enemy collides with the player:
// 1
using UnityEngine.Events;
public class Player : Subject
{
// 2
public UnityEvent OnPlayerDamaged...