示例#1
0
    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();
    }