"rigidbody.velocity+=Vector3(0,-9.807,0)*Time.deltaTime;"=Ускорение свободного падения (9.8 м/с)-вместо "Use Gravity"
Проблема в этой строке: "transform.Translate(Vector3.forward * Time.deltaTime * (engineForce + pitchForce));"
"transform.Translate"-засовывает объект в коллайдер другого объекта, затем физика изменяет его скорость чтобы "выплюнуть"
Можно двигать Rigidbody форсами:
Используется javascript
@script RequireComponent(Rigidbody)
private var ForceVector : Vector3;
private var ShipRigidbody : Rigidbody;
ShipRigidbody = rigidbody;
var maxSpeed : float = 50;
var Speed : float = 50;
var tar:Transform;
private var FV : Vector3;
private var tr:Transform;
tr=transform;
function Update ()
{
FV=(tar.position-tr.position).normalized;
}
function FixedUpdate ()
{
ForceVector = FV*Speed;
var newVel = ShipRigidbody.velocity+ForceVector;
if(newVel.magnitude>maxSpeed)
{
ForceVector-=newVel-newVel.normalized*maxSpeed;
}
ForceVector.y=0;
ShipRigidbody.AddForce(ForceVector*Time.deltaTime*2, ForceMode.VelocityChange);
}
С вращениями тот-же прикол.