예제 #1
0
    private void OnCollisionExit(Collision collision)
    {
        Hitter hitter = collision.transform.gameObject.GetComponent <Hitter>();

        if (hitter != null)
        {
            OnHitterExit?.Invoke(hitter);
        }
    }
예제 #2
0
    private void OnTriggerExit(Collider other)
    {
        Hitter hitter = other.transform.gameObject.GetComponent <Hitter>();

        if (hitter != null)
        {
            OnHitterExit?.Invoke(hitter);

            if (hitter is ActivatableHitter)
            {
                ActivatableHitter activatableHitter = (ActivatableHitter)hitter;

                if (registeredHitters.Contains(activatableHitter))
                {
                    activatableHitter.OnActivate -= onHitterActivated;
                    int index = registeredHitters.IndexOf(activatableHitter);
                    registeredHitters.RemoveAt(index);
                }
            }
        }
    }