in my game im using
this.transform.Translate(0, 0, m_m_speedForwardCurrent * Time.deltaTime);
to move my model because its a arcade style game.
is there a figure that can be used to convert m_m_speedForwardCurrent to the correct physics velocity.
so i can at the moment of damage i can apply gravity and do
rigidbody.velocity = new vector3(0,0, m_m_speedForwardCurrent );
i tryed this , but the speed differnce was a fair bit.
is there a magic number which i can simple do
rigidbody.velocity = new vector3(0,0, m_m_speedForwardCurrent * MAGIC_NUMBER);
The velocity is the same for Translate and the rigidbody. I suspect your problem has a different cause: Translate uses local space by default, while rigidbody.velocity is in world coordinates - the object will go in the wrong direction unless it’s rotation is null.
You could solve this problem using the current forward direction:
rigidbody.velocity = m_m_speedForwardCurrent * transform.forward;
NOTE: You should have rigidbody.isKinematic set to true while moving via Translate, and set it to false when you want physics control. Also make sure that you don’t use Translate while under physics control.