protected virtual void OnCollision(GameObject collision) { if (m_NextStatus != Status.None) { return; } if (m_Status == Status.Shoot) { Rigidbody2D rigi = collision.gameObject.GetComponent <Rigidbody2D>(); if (rigi != null) { Vector2 f = m_Rigi.mass * m_CurSpeed / Time.deltaTime; rigi.AddForce(f); } IHealth health = collision.gameObject.GetComponent <IHealth>(); if (health != null) { health.OnHit(this.gameObject); } IWeak weak = collision.gameObject.GetComponent <IWeak>(); Missile m = collision.gameObject.GetComponent <Missile>(); if (weak == null && m == null) { m_NextStatus = Status.Over; GameObject go = ResourcesMrg.Instance.Load(ResourcesMrg.ResourceType.Effect, "Explode", isCache: true); go.transform.position = transform.position; EazySoundManager.PlayUISound(m_OverClip); } } }
private void OnTriggerEnter2D(Collider2D collision) { IWeak weak = collision.GetComponent <IWeak>(); if (weak != null) { return; } Collect(); }