lentinant, Спасибо! Более-менее нормально получилось! Только вот с акселерацией траблы непонятные) хотелось чтобы ускорение накапливалось постепенно, но из-за того-что я пока не понимаю как делать я умножаю просто в общую кучу и это получается тоже дополнительной скоростью, а не постепенным ускорением.
Код
#pragma strict
var target : Vector3;
var speed : float = 10.0;
var acceleration : float = 12.0;
function Update() {
if(Input.GetMouseButton(0)) {
var distance : float = transform.position.z - Camera.main.transform.position.z;
target = Camera.main.ScreenToWorldPoint (Vector3 (Input.mousePosition.x,Input.mousePosition.y,distance)); // set target
}
}
function FixedUpdate()
{
rigidbody.velocity *= .9;
var correct_speed : float = Mathf.Clamp(Vector3.Distance(target,transform.position)*.1,0,.5);
rigidbody.AddForce((target-transform.position).normalized * speed * acceleration * correct_speed); //apply force
if (rigidbody.velocity.magnitude > speed) {
rigidbody.velocity = rigidbody.velocity.normalized * speed;
}
print("rigidbody.velocity 0: "+rigidbody.velocity.magnitude);
}