using System.Collections; using System.Collections.Generic; using UnityEngine; public class cs01 : MonoBehaviour { // Start is called before the first frame update void Start() { } // 要監測鍵盤, 必須在update裡面監測 // 注意1:使用變數前,要先宣告 // 注意2:使用變數前,要先給起始值 void Update() { float dx,dz,dy; float v1=0.05f, v2=0.05f, v3=0.09f; //1.移動 dx = Input.GetAxis("Horizontal")*v1; dz = Input.GetAxis("Vertical")*v2; dy = Input.GetAxis("Jump")*v3; //1.動力學移動 this.gameObject.transform.Translate(dx, dy, dz); //發生問題:球會(消失,亂跳) //原因:使用Rigidbody會有重力效果,是力學移動模式(造成滾動),但是Translate()是動力學移動, //矛盾:同時使用2種移動模式:『力學模式,動力學模式移動』,會造成衝突➜球會(消失,亂跳) //☎結論:只要開啟rigidbody重力模式了➜移動,就必須用力學模式移動(剛體.addforce(),或是剛體.velocity()) //☎禁止:開啟rigidbody➜就不可以用Translate()動力學移動 //2.旋轉 float rx, ry, rz; rx = 0; ry = Input.GetAxis("Rotate")*0.2f; rz = 0; this.gameObject.transform.Rotate(rx, ry, rz); } }