Vale, entiendo.Estaba equivocado en el concepto del addForce.Lo de la polémica me refería en cuanto a mover un gameobject dentro de unity, con .velocity, translate, movepositio, addForce, o directamente el transform.posicion.x, y o z. En el script del objeto tengo este código. public void AplicarFuerza(float Fuerza)
{ // Mirig es el rigidbody del Objeto
Mirig.AddForce(new Vector3(0, Fuerza, 0));
}
void OnCollisionEnter(Collider other)
{//coloco la velocidad a cero para que el personaje que esta ascendiendo se pare
GetComponent<Rigidbody>().velocity = new Vector3(0, 0, 0);//aplico la fuerza que le dará el elemento con el que ha chocado, la variable FuerzaElemento es publica en el elemento chocado. Equivale a 1500f.
AplicarFuerza(other.GetComponent<Elemento>().FuerzaElemento);//destruyo el elemento con el que ha chocado el personaje, dado que es una moneda y tiene que desaparecer.
Destroy(other.gameObject);
} EL colocar a cero la velocidad, es para cuando aplique la fuerza siempre sea el mismo impulso del personaje, y que no se vayan añadiendo fuerzas que luego hagan que el personaje suba mas y mas.Bien debería pasar esto que expongo, pero no. La primera fuerza que aplico, utilizando la misma función, sale perfecto, pero cuando coge la moneda se para al poner a cero la velocidad, y al aplicar la fuerza el impulso es minimo, y repito que es la misma fuerza con la que empieza.Alguna Idea. Gracias por el post anterior, y perdonar si resulto novato, soy primerizo con unity y sus físicas. Un saludo
{ // Mirig es el rigidbody del Objeto
Mirig.AddForce(new Vector3(0, Fuerza, 0));
}
void OnCollisionEnter(Collider other)
{//coloco la velocidad a cero para que el personaje que esta ascendiendo se pare
GetComponent<Rigidbody>().velocity = new Vector3(0, 0, 0);//aplico la fuerza que le dará el elemento con el que ha chocado, la variable FuerzaElemento es publica en el elemento chocado. Equivale a 1500f.
AplicarFuerza(other.GetComponent<Elemento>().FuerzaElemento);//destruyo el elemento con el que ha chocado el personaje, dado que es una moneda y tiene que desaparecer.
Destroy(other.gameObject);
} EL colocar a cero la velocidad, es para cuando aplique la fuerza siempre sea el mismo impulso del personaje, y que no se vayan añadiendo fuerzas que luego hagan que el personaje suba mas y mas.Bien debería pasar esto que expongo, pero no. La primera fuerza que aplico, utilizando la misma función, sale perfecto, pero cuando coge la moneda se para al poner a cero la velocidad, y al aplicar la fuerza el impulso es minimo, y repito que es la misma fuerza con la que empieza.Alguna Idea. Gracias por el post anterior, y perdonar si resulto novato, soy primerizo con unity y sus físicas. Un saludo