7、用户输入管理

1、虚拟轴

Unity3D的虚拟轴在ProjectSetting中可以查看


虚拟轴

编写脚本如下

public class Test : MonoBehaviour {
    void Update() {
        float horizontal = Input.GetAxis("Horizontal");
        float vertical = Input.GetAxis("Vertical");
        if (horizontal != 0) {
            // 左右移动
            transform.position = new Vector3(transform.position.x + horizontal * 0.1f, transform.position.y, transform.position.z);
            // y轴旋转
            transform.eulerAngles = new Vector3(transform.position.x, transform.position.y + horizontal * 0.1f, transform.position.z);
        }
        if (vertical != 0) {
            // 前后移动
            transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z + vertical * 0.1f);
        }
    }
}

2、获取键盘

可以传递小写的键的名称作为参数,也可以传递一个KeyCode的值,返回值就是一个布尔值。
1、Input.GetKey某个键是否被持续按下
2、Input.GetKeyDown,某个键是否被按下
3、Input.GetKeyUp某个键是否被弹起
如下代码

public class Test : MonoBehaviour {
    void Update() {
        if (Input.GetKey("a")) {
            Debug.Log("A键被按下");
        }
    }
}

3、获取鼠标事件

1、Input.GetMouseButtonDown 当按钮按下
2、Input.GetMouseButtonUp 当按钮抬起
3、Input.GetMouseButton,某键被持续按下
4、Input.mousePosition,鼠标位置获取
点击鼠标放大物体

void Update() {
    // 点击放大
   if (Input.GetMouseButtonDown(0))
   {
       GameObject Cube = GameObject.Find("Cube");
       Cube.transform.localScale = new Vector3(2, 2, 2);
   }
}

点击鼠标移动物体

public class Test : MonoBehaviour {
    public Boolean isDown = false;
    void Update() {
        // 点击放大
        if (Input.GetMouseButtonDown(0)) {
            isDown = true;
        }
        if (Input.GetMouseButtonUp(0)) {
            isDown = false;
        }
        if (isDown)  {
            GameObject Cube = GameObject.Find("Image");
            Cube.transform.position = Input.mousePosition;
        }
    }
}

4、移动设备输入

1、Input.touchCount
最后一帧有多少根手指触碰到了,不同设备能追踪到的数量不同,苹果一般最多能支持五根手指

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。