Unity3d 5.x 学习笔记(2)—— 键盘控制物体移动与转向 (move and rotate)

判断输入结果需要用 Input 类

  • Input.GetKey() 获取键盘哪个键被按下。
  • Input.GetAxis("Horizontal") 获取水平方向。
    • 例如按下 A 或者方向键左返回-1,按下 D 或者方向键右返回1。
  • Input.GetAxis("Vertical")获取垂直方向。
    • 例如按下 S 或者方向键下返回-1,按下 W 或者方向键上返回1。

表示键盘按钮需要用 Keycode 类

  • 例如 KeyCode.Space 代表空格键
  • 例如 KeyCode.Q 代表Q键

让物体移动和转向需要用 Transform 类

  • 让物体移动需要用 Transform.Translate()
  • 让物体转向需要用 Transform.Rotate()

实例代码

using UnityEngine;
using System.Collections;

public class move : MonoBehaviour {

    public float speed_move = 5.0f;
    public float speed_rotate = 25.0f;

    void Update () {

        /*前后左右移动(以自身为参考)*/
        float x = Input.GetAxis ("Horizontal") 
                * Time.deltaTime * speed_move;
        float z = Input.GetAxis ("Vertical") 
                * Time.deltaTime * speed_move;
        transform.Translate (x, 0, z);

        /* 左右旋转摄像头(以自身为参考)*/

        //按q向左旋转
        if (Input.GetKey (KeyCode.Q)) {
            //以自身为轴旋转
            transform.Rotate (0, 
                              -(speed_rotate) * Time.deltaTime, 
                              0, 
                              Space.Self);

            //以世界为轴旋转
            /*
            transform.Rotate (0, 
                                -(speed_rotate) * Time.deltaTime, 
                                0, 
                                Space.Self);
            */
        }

        //按e向右旋转
        if (Input.GetKey (KeyCode.E)) {
            transform.Rotate(0,
                            speed_rotate * Time.deltaTime,
                            0, 
                            Space.Self);
        }
    }

    public static void stop(){
        stop_number = 1;
    }
}

你可能感兴趣的:(Unity3d)