Skip to content

Instantly share code, notes, and snippets.

@willis81808
Last active March 11, 2020 22:27
Show Gist options
  • Save willis81808/9b969e40aa0a681ec917b6b9ba53b4ce to your computer and use it in GitHub Desktop.
Save willis81808/9b969e40aa0a681ec917b6b9ba53b4ce to your computer and use it in GitHub Desktop.
using UnityEngine;
public interface IReceiver
{
void OnComponentRemoved(Component component);
void OnComponentAdded(Component component);
void OnComponentEnabled(Component component);
void OnComponentDisabled(Component component);
}
public class NotifierBehaviour : MonoBehaviour
{
private void Awake()
{
var receivers = GetComponentsInParent<IReceiver>();
foreach (var r in receivers)
{
r.OnComponentAdded(this);
}
}
private void OnDestroy()
{
var receivers = GetComponentsInParent<IReceiver>();
foreach (var r in receivers)
{
r.OnComponentRemoved(this);
}
}
private void OnEnable()
{
var receivers = GetComponentsInParent<IReceiver>();
foreach (var r in receivers)
{
r.OnComponentEnabled(this);
}
}
private void OnDisable()
{
var receivers = GetComponentsInParent<IReceiver>();
foreach (var r in receivers)
{
r.OnComponentDisabled(this);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment