Messaging Alternative
using System;
using UnityEngine;
public class Element : MonoBehaviour
{
public Action<Element> OnInteract;
private void Start()
{
Interact();
}
private void Interact()
{
OnInteract?.Invoke(this);
}
}
public class Manager : MonoBehaviour
{
[SerializeField] private Element[] elements;
private void OnEnable()
{
for (int i = 0; i < elements.Length; i++)
{
elements[i].OnInteract += OnInteract;
}
}
private void OnDisable()
{
for (int i = 0; i < elements.Length; i++)
{
elements[i].OnInteract -= OnInteract;
}
}
private void OnInteract(Element element)
{
// Something Happens
}
}Last updated