Jump to content
Hueggvo

Como desactivar colisión con ciertos objetoa

Recommended Posts

Básicamente quiero crear un objeto (enemigo) que al ser derrotado este quedé tirado en el suelo y pueda pasar a través de el sin chocarme con el o llevarme lo arrastrado. 

Share this post


Link to post
Share on other sites
5 hours ago, lightbug said:

También podrías ponerlo kinemático (rigidbody) al momento de morir.

Y para que sirve exactamente o que hace lo de Kinematico? 

Share this post


Link to post
Share on other sites

 

tienes que buscar un poco antes de preguntar, probar si puedes hacerlo mínimo 2 días y sino preguntas, tu pregunta esta en el manual lee un poco.

URL:  https://docs.unity3d.com/ScriptReference/Rigidbody-isKinematic.html

Controla si la física afecta al cuerpo rígido.

Si isKinematic está activado, las fuerzas, colisiones o articulaciones ya no afectarán al cuerpo rígido. El cuerpo rígido estará bajo control total de animación o control de script cambiando transform.position. Los cuerpos cinemáticos también afectan el movimiento de otros cuerpos rígidos a través de colisiones o articulaciones. Eg. puede conectar un cuerpo rígido cinemático a un cuerpo rígido normal con una articulación y el cuerpo rígido se restringirá con el movimiento del cuerpo cinemático. Los rigidbodies cinemáticos también son particularmente útiles para hacer personajes que normalmente son impulsados por una animación, pero en ciertos eventos se pueden convertir rápidamente en un ragdoll estableciendo isKinematic a false.


using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    public Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    // Let the rigidbody take control and detect collisions.
    void EnableRagdoll()
    {
        rb.isKinematic = false;
        rb.detectCollisions = true;
    }

    // Let animation control the rigidbody and ignore collisions.
    void DisableRagdoll()
    {
        rb.isKinematic = true;
        rb.detectCollisions = false;
    }
}

este es un ejemplo básico solo para la colisión y estado muerto del enemigo, si quieres chocar al enemigo y que las físicas interactúe con el enemigo muerto tienes que hacer un Ragdoll del enemigo para desactivar la animación del enemigo  y que cuando tenga 0 de vida se caiga y lo puedas mover cuando colisionas con el. 

    public void Ejemplo(float amount)
    {

        if (health < 5) //este valor depende de cuanto daño le haces al enemigo., lo que dice es si vida es menor a 5 pasa a estado de muerte.
        {
            muerte();
        }
    }


        void muerte()
        {

             Destroy(GetComponent<NavMeshAgent>()); // aca se desactiva la inteligencia Artificial.
             anim.enabled = false; //aca desactiva la animacion quedando solo el Ragdoll.

        }

 

sino sabes que es un Ragdoll acá te dejo un link :"" https://www.youtube.com/watch?v=DInV-jHm9rk&t=1s¨

 

Edited by Fabri15544
  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

×
×
  • Create New...