Unity中的物體移動-Transform.Translate

來源:互聯網
上載者:User

標籤:csharp   順時針   鍵盤   動向   控制   sharp   上下   color   horizon   

Transform.Translate通過設定下一步移動的向量方向和大小進行移動。

有兩種移動方式:

1.ADWS控制遊戲對象上下左右移動,不涉及旋轉;

2.AD通過旋轉控制方向,WS控制前後移動,也可以實現受控位移。

無論哪種方式,首先都要擷取鍵盤響應,可以通過Input.GetKey擷取,也可以通過Input.GetAxisRaw擷取。

第一種方式下的代碼如下:

float input_H = Input.GetAxisRaw("Horizontal");   //擷取X方向的移動方向,如果輸入A,輸出-1;如果輸入D,輸出1。float input_V = Input.GetAxisRaw("Vertical");     //擷取Z方向的移動方向,如果輸入W,輸出1;如果輸入S,輸出-1。                Vector3 v = new Vector3 (input_H, 0, input_V); //建立移動向量v = v.normalized;                              //如果是斜線方向,需要對其進行標準化,統一長度為1v = v * speed * Time.deltaTime;                //乘以速度調整移動速度,乘以deltaTime防止卡頓現象transform.Translate (v);                       //移動

第二種方式下的代碼如下:

float input_H = Input.GetAxisRaw("Horizontal");  //float input_V = Input.GetAxisRaw ("Vertical");   //transform.Rotate (new Vector3 (0, input_H, 0));  //繞y軸旋轉,A鍵順時針;D鍵逆時針float curSpeed = speed * input_V * Time.deltaTime;  transform.Translate (transform.forward * curSpeed,Space.World);//沿著物體前後方向移動, 由於使用了forward,因此要指定移動的座標係為全域座標

最後一句代碼也可以改為:

transform.Translate (new Vector3(0,0,curSpeed));//預設沿著物體的z軸移動,即為前後方向

上述代碼均需要在update方法中實現。 

  

  

Unity中的物體移動-Transform.Translate

相關文章

聯繫我們

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