void OnCollisionEnter(Collision collision) { if (!layerChanged) { return; } IAgent agent = collision.gameObject.GetComponent <IAgent>(); if (agent != null) { // Hit soldier PoolManager.instance.SetPath(poolBloodIndex); PoolObject bloodImpact = PoolManager.instance.Create(null); bloodImpact.transform.rotation = Quaternion.FromToRotation(-Vector3.back, collision.contacts[0].normal); bloodImpact.transform.position = collision.contacts[0].point + transform.up * -0.04f; agent.Damage(damage, shooterPos); } else { // Hit other PoolManager.instance.SetPath(poolBulletHoleIndex); PoolObject bulletHole = PoolManager.instance.Create(null); bulletHole.transform.rotation = Quaternion.FromToRotation(-Vector3.back, collision.contacts[0].normal); bulletHole.transform.position = collision.contacts[0].point + transform.up * -0.04f; } _poolObject.Hide(); }