Hola a todos.
A ver si me podéis ayudar...
Tengo dos gameobjects con RigidBody y collider asociados, movidos por la física.
A es el padre y B es el hijo en la jerarquía, situado encima del objeto A (pos Y más arriba)
Ya sé que el rigidbody del hijo no se actualiza aunque se mueva el padre.
La situación es la siguiente:
Si en el objeto B hago esto en el método FixedUpdate:
A ver si me podéis ayudar...
Tengo dos gameobjects con RigidBody y collider asociados, movidos por la física.
A es el padre y B es el hijo en la jerarquía, situado encima del objeto A (pos Y más arriba)
Ya sé que el rigidbody del hijo no se actualiza aunque se mueva el padre.
La situación es la siguiente:
El objeto A se mueve de izquierda a derecha de forma continua empleado su rigidbody y método MovePosition
El objeto B se mueve con el objeto A, manteniendo su posición relativa.
Si en el objeto B hago esto en el método FixedUpdate:
Debug.Log("Transform:" + transform.position + "- RigidBody" + rb.position);
[/quote]
compruebo que su rigidbody.position no se mueve, pero sí su posición GLOBAL (transform.position). Su posición relativa (transform.localPosition) no se mueve.Hasta aquí lo entiendo, todo correcto. Ahora quiero mover el objeto B al pulsar una tecla, pero que siga desplazándose al mismo tiempo, por lo que tengo este código asociado a B:
private void FixedUpdate()
{
float hor = Input.GetAxis("Horizontal") * 50 * Time.deltaTime;
float ver = Input.GetAxis("Vertical") * 50 * Time.deltaTime;
Debug.Log("Transform:" + transform.position + "- RigidBody" + rb.position);
rb.MovePosition(transform.position + rb.transform.forward * ver + transform.right * hor);
}
[/quote]
Esto da como resultado que el objeto B ya no se mueva con el padre y que sólo se mueva por la pulsación de las flechas (ejes virtuales).
) y por eso no me cuadra alguna cosa.