Unity3d 角色轉身在向前走的指令碼

來源:互聯網
上載者:User

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;

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.