Unity3D 控制物體移動、旋轉、縮放

來源:互聯網
上載者:User

標籤:

轉載自 脫莫柔Unity3D學習之旅  原文地址: Unity3D 控制物體移動、旋轉、縮放 Transform基本移動函數:

1.指定方向移動:

//移動速度 float TranslateSpeed = 10f;//Vector3.forward 表示“向前”transform.Translate(Vector3.forward *TranslateSpeed);

2.全方向移動:

//x軸移動速度移動速度 float xSpeed = -5f;//z軸移動速度移動速度 float  zSpeed = 10f;//向x軸移動xSpeed,同時想z軸移動zSpeed,y軸不動 transform.Translate(xSpeed,0,zSpeed);

3.重設座標:

//x軸座標 float xPostion = -5f;//z軸座標 float zPostion = 10f;//直接將當前物體移動到x軸為xPostion,y軸為0,z軸為zPostion的三維空間位置。transform.position = Vector3(xPostion,0,zPostion);

 

 

輸入控制:

1.輸入指定按鍵:

//按下鍵盤“上方向鍵”if(Input.GetKey ("up"))  print("Up!");//按下鍵盤“W鍵”if(Input.GetKey(KeyCode.W);)  print("W!");

2.滑鼠控制

//按下滑鼠左鍵(0對應左鍵 , 1對應右鍵 , 2對應中鍵) if(Input.GetMouseButton(0))  print("Mouse Down!");Input.GetAxis("Mouse X");//滑鼠橫向增量(橫向移動) Input.GetAxis("Mouse Y");//滑鼠縱向增量(縱向移動)

3.擷取軸:

//水平軸/垂直軸 (控制器和鍵盤輸入時此值範圍在-1到1之間)Input.GetAxis("Horizontal");//橫向 Input.GetAxis ("Vertical");//縱向

 

按住滑鼠拖動物體旋轉和自訂角度旋轉物體:

float speed = 100.0f;float x;float z;void Update () {  if(Input.GetMouseButton(0)){//滑鼠按著左鍵移動     y = Input.GetAxis("Mouse X") * Time.deltaTime * speed;                   x = Input.GetAxis("Mouse Y") * Time.deltaTime * speed;   }else{    x = y = 0 ;  }    //旋轉角度(增加)  transform.Rotate(new Vector3(x,y,0));  /**---------------其它旋轉方式----------------**/  //transform.Rotate(Vector3.up *Time.deltaTime * speed);//繞Y軸 旋轉   //用於平滑旋轉至自訂目標   pinghuaxuanzhuan();}//平滑旋轉至自訂角度 void OnGUI(){  if(GUI.Button(Rect(Screen.width - 110,10,100,50),"set Rotation")){    //自訂角度    targetRotation = Quaternion.Euler(45.0f,45.0f,45.0f);    // 直接設定旋轉角度     //transform.rotation = targetRotation;    // 平滑旋轉至目標角度     iszhuan = true;  }}bool iszhuan= false;Quaternion targetRotation;void pinghuaxuanzhuan(){  if(iszhuan){    transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 3);  }}

 

 

鍵盤控制物體縮放:

float speed = 5.0f;float x;float z;void Update () {    x = Input.GetAxis("Horizontal") * Time.deltaTime * speed;    //水平               z = Input.GetAxis("Vertical") * Time.deltaTime * speed;      //垂直//"Fire1","Fine2","Fine3"映射到Ctrl,Alt,Cmd鍵和滑鼠的三鍵或腰杆按鈕。新的輸入軸可以在Input Manager中添加。    transform.localScale += new Vector3(x, 0, z);          /**---------------重新設定角度(一步到位)----------------**/    //transform.localScale = new Vector3(x, 0, z);}

 

Unity3D 控制物體移動、旋轉、縮放

聯繫我們

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