Exemplo n.º 1
0
    public void Bleed(SplatterActivator activator, Collision collision)
    {
        this.activator = activator;
        Vector3 velocity;

        int midLength = collision.contacts.Length / 2;

        if (activator.forceType == SplatterActivator.ForceType.Pierce)
        {
            velocity = activator.transform.forward;
        }
        else
        {
            var position = this.transform.position;
            position.y = collision.contacts[midLength].point.y;
            velocity   = position - collision.contacts[midLength].point;
        }
        EmitAtLocation(new ContactData(collision.contacts[midLength].point, collision.contacts[midLength].normal, velocity));
    }
    public void Bleed(SplatterActivator activator, Collision collision)
    {
        this.activator = activator;
        Vector3 velocity;

        if (activator.forceType == SplatterActivator.ForceType.Pierce)
        {
            velocity = activator.GetComponent <Rigidbody>().velocity;
        }
        else
        {
            var position = this.transform.position;
            position.y = collision.contacts[0].point.y;
            velocity   = position - collision.contacts[0].point;
        }

        for (int i = 0; i < collision.contacts.Length; i++)
        {
            EmitAtLocation(new ContactData(collision.contacts[i].point, collision.contacts[i].normal, velocity));
        }
    }