一个角色旋转身体在向前行走的代码

var targetTransform: Transform;
var rotationSpeed : float=1.0;
var canRun=false;
var speed : float = 1.0;
function Update ()
{
   var direction:Vector3=targetTransform.position - transform.position;
   direction.y=0;
   transform.rotation = Quaternion.RotateTowards (transform.rotation, Quaternion.LookRotation(direction), rotationSpeed);
   //transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(direction), 2);
   print(transform.rotation);
  
   if (transform.rotation.eulerAngles .y == Quaternion.LookRotation(direction).eulerAngles.y)
   {
    canRun=true;
   }
   if (canRun == true)
   {
        var controller : CharacterController = GetComponent(CharacterController);
    var forward : Vector3 = transform.TransformDirection(Vector3.forward);
    var curSpeed : float = speed ;
    var dist = Vector3.Distance(targetTransform.position, transform.position);
    if (dist >= 2)
    {
         controller.SimpleMove(forward * curSpeed);
   }
   }
}

 ---------------------------------------------------------------------

var targetTransform: Transform;
var rotationSpeed : float=5;
var direction:Vector3;
function Update ()

{
  direction=targetTransform.position-transform.position;
  direction.y=0;

  var angle = Vector3.Angle(direction, transform.forward);
 
  transform.rotation = Quaternion.RotateTowards (transform.rotation, Quaternion.LookRotation(direction), rotationSpeed);
   if(angle<5)
   transform.position.x+=-0.1;
 
}

posted @ 2012-03-21 14:29  渡蓝  阅读(229)  评论(0)    收藏  举报