Input鼠标键盘输入

public class Lesson11 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        //输入相关内容都是卸载Update中的
        #region 鼠标在屏幕上的位置
        //获取位置
        //屏幕坐标原点在屏幕左下角,往右是X正轴,网上是Y正轴
        print(Input.mousePosition);
        #endregion

        #region 检测鼠标输入
        //鼠标按下的时候执行,按下的时候执行一次
        //参数0是左键,1是右键,2是中键
        if(Input.GetMouseButtonDown(0))
        {
            print("鼠标左键按下");
        }

        //鼠标放开的时候执行一次
        if(Input.GetMouseButtonUp(1))
        {
            print("鼠标右键放开");
        }

        //鼠标长按会执行,只要按住就会一直执行
        if (Input.GetMouseButton(2))
        {
            print("按住鼠标右键");
        }

        //中键滚动
        //返回值的是一个Vector2,滚动中键会改变Y值
        //返回的Y值,-1是往下滚动,0是无滚动,1是往上滚动
        print(Input.mouseScrollDelta);
        #endregion

        #region 检测键盘输入
        //键盘按下 KeyCode
        if(Input.GetKeyDown(KeyCode.W))
        {
            print("按下W键");
        }
        //传入的字符串,不能是大写
        if (Input.GetKeyDown("q"))
        {
            print("按下Q键");
        }

        //放开按键
        if(Input.GetKeyUp(KeyCode.S))
        {
            print("放开S键");
        }

        //键盘长按
        if( Input.GetKey(KeyCode.D))
        {
            print("长按D键");
        }
        #endregion

        #region 检测默认轴输入
        //鼠标键盘输入主要是用于控制玩家的行为
        //所以unity提供了更加方便的方法来帮助实现控制玩家的行为

        //键盘按下AD时返回-1到1之间的值
        //通过这个返回值控制对象的行为
        Input.GetAxis("Horizintal");
        //键盘按下WS时返回-1到1之间的值
        Input.GetAxis("Vertical");
        //鼠标左右移动时返回-1到1之间的值
        Input.GetAxis("Mouse X");
        //鼠标下上移动时返回-1到1之间的值
        Input.GetAxis("Mouse Y");

        //GetAxisRaw方法和GetAxis使用方式相同,但是GetAxis的返回值只有-1,0,1,不会有中间值
        #endregion

        #region 其他
        //是否有任意键或者鼠标长按
        if(Input.anyKey)
        {
            print("有按键长按");
        }
        //是否有任意键或者鼠标按下
        if (Input.anyKeyDown)
        {
            print("有按键按下");
        }
        //这一帧的键盘输入
        print(Input.inputString);

        //手柄输入相关
        //得到链接的手柄的所有按钮名字
        string[] strs = Input.GetJoystickNames();
        //手柄按下
        if(Input.GetButtonDown("Jump"))
        {

        }
        //手柄放开
        if (Input.GetButtonUp("Jump"))
        {

        }
        //手柄长按
        if (Input.GetButton("Jump"))
        {

        }

        //移动设备触摸相关
        if(Input.touchCount>0)
        {
            Touch t1 = Input.touches[0];//第一次触屏
            //位置
            print(t1.position);
            //相对位置变化
            print(t1.deltaPosition);
        }
        //是否启用多点触控
        Input.multiTouchEnabled = false;
        //陀螺仪
        //启用陀螺仪
        Input.gyro.enabled = true;
        //重力加速度向量
        print(Input.gyro.gravity);
        //旋转速度
        print(Input.gyro.rotationRate);
        //陀螺仪 当前的旋转四元数
        print(Input.gyro.attitude);
        #endregion
    }
}
posted @ 2025-03-16 17:25  cannedmint  阅读(22)  评论(0)    收藏  举报