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);
}
