Hi!
I created a simple Trigger component:
public class Trigger : MonoBehaviour {
public enum DisableMode
{
None,
Enter,
Exit
}
public DisableMode disableMode;
[System.Serializable]
public class TriggerEvent : UnityEvent { }
public TriggerEvent onTriggerEnter;
public TriggerEvent onTriggerExit;
// privates
private Collider m_collider;
private bool m_triggered;
void Awake()
{
m_collider = GetComponentInChildren<Collider>();
}
void OnEnable()
{
m_collider.enabled = true;
m_triggered = false;
}
public void Nothing()
{
}
void OnTriggerEnter(Collider other)
{
if (m_triggered)
return;
m_triggered = true;
onTriggerEnter.Invoke();
if (disableMode == DisableMode.Enter)
m_collider.enabled = false;
}
void OnTriggerExit(Collider other)
{
onTriggerExit.Invoke();
if (disableMode == DisableMode.Exit)
m_collider.enabled = false;
}
}
I created the Nothing method for demonstration purpose and assigned it to onTriggerEnter event:
As you can see from this screenshot, Invoking an event with an empty action will generate 0.6KB garbage. Is there something I’m doing wrong? I’m sure this shouldn’t happen.
Thank you!