Unity3d 實現滑鼠左鍵點擊地形使角色移動到指定地點[指令碼]

來源:互聯網
上載者:User

其中涉及,移動速度,主角對象,目標點,射線碰撞等!~ [javascript]  var moveSpeed:int=5;//player移動速度  var player:Transform;//定義一個人物的Transform  private var endposition : Vector3;    function Start()  {      endposition = player.transform.position;  }    function Update ()   {           if(Input.GetButtonUp("LeftMouse")){ //LeftMouse是在inputManager中設定的,左索引值為mouse 0         PlayerMove();     }     var targetposition=player.TransformPoint(Vector3(0,48.8,-30));     transform.position=targetposition;//相機的目標位置,這兩句代碼的作用是讓人物一直處於相機的視野下     if(endposition != player.transform.position){  www.2cto.com       player.position=Vector3.MoveTowards(player.position,endposition,Time.deltaTime*moveSpeed);     }  }      function PlayerMove()  {      var cursorScreenPosition:Vector3=Input.mousePosition;//滑鼠在螢幕上的位置      var ray:Ray=Camera.main.ScreenPointToRay(cursorScreenPosition);//在滑鼠所在的螢幕位置發出一條射線(暫名該射線為x射線)      var hit:RaycastHit;      if(Physics.Raycast(ray,hit)){         if(hit.collider.gameObject.tag=="Terrain"){//設定地形Tag為Terrain             endposition = hit.point;         }      }  }      

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.