void OnCollisionEnter2D(Collision2D col) { GameObject particles = (GameObject)SolGame.SpawnResourceByName("ProjectileParticles", col.contacts[0].point, 1.0f); Vector2 normal = col.contacts[0].normal; particles.transform.rotation = Quaternion.FromToRotation(Vector3.forward, normal); ProjectileParticles pp = particles.GetComponent <ProjectileParticles>(); if (pp) { pp.SetColor(GetComponent <SpriteRenderer>().color); } PhysicsEntity pEntity = col.gameObject.GetComponent <PhysicsEntity>(); if (pEntity) { pEntity.OnHit(); } if (m_Bounce) { if (m_CurBounce >= m_NumBounce) { Destroy(gameObject); } else { ++m_CurBounce; m_Rigidbody.velocity = Vector2.Reflect(m_Velocity, normal); m_Velocity = m_Rigidbody.velocity; } } else { Destroy(gameObject); } }
void OnCollisionEnter2D(Collision2D col) { if (m_IsDash) { string tag = col.gameObject.tag; if (tag != "Enemy" && tag != "Projectile") { InterruptDash(); } PhysicsEntity pEntity = col.gameObject.GetComponent <PhysicsEntity>(); if (pEntity) { pEntity.OnHit(); DashCooldown cd = GetFirstActiveCooldown(); if (cd) { cd.Reset(); } } } }