private void OnDeadTarget(ICoreDisposable disposable) { if (disposable is ICoreMonoObject obj) { var targetable = obj.GameObject.GetComponent <ITargetable>(); m_Targetables.Remove(targetable); OnTargetExitRange?.Invoke(targetable); } }
private void OnTriggerEnter(Collider other) { var targetable = other.GetComponent <ITargetable>(); if (!m_Targetables.Contains(targetable) && targetable != null) { m_Targetables.Add(targetable); ICoreDisposable dispose = targetable.GameObject.GetComponent <ICoreDisposable>(); if (dispose != null) { dispose.OnDispose += OnDeadTarget; } OnTargetEnterRange?.Invoke(targetable); } }
private void OnDeadTarget(ICoreDisposable disposable) { IUnit unit = GetComponent <IUnit>(); unit.Instantiate(); }