public override void Dispose() { if (this.IsDisposed) { return; } base.Dispose(); if (OnCollisionEnterHandler != null) { var enterDelegates = OnCollisionEnterHandler.GetInvocationList(); for (int i = 0; i < enterDelegates.Length; i++) { OnCollisionEnterHandler -= enterDelegates[i] as Action <Unit, Vector3>; } } if (OnCollisionExitHandler != null) { var exitDelegates = OnCollisionExitHandler.GetInvocationList(); for (int i = 0; i < exitDelegates.Length; i++) { OnCollisionExitHandler -= exitDelegates[i] as Action <Unit, Vector3>; } } if (OnCollisionStayHandler != null) { var stayDelegates = OnCollisionStayHandler.GetInvocationList(); for (int i = 0; i < stayDelegates.Length; i++) { OnCollisionStayHandler -= stayDelegates[i] as Action <Unit>; } } }
public void OnCollisionStay(Unit unit) { OnCollisionStayHandler?.Invoke(unit); }