【Unity】Input——检测鼠标、键盘、手柄输入、鼠标在屏幕上的位置等等

这篇具有很好参考价值的文章主要介绍了【Unity】Input——检测鼠标、键盘、手柄输入、鼠标在屏幕上的位置等等。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.鼠标在屏幕上的位置

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson11 : MonoBehaviour
{
    void Update()
    {
        //屏幕的左下角是(0,0)点(往右是x轴正方向,往上是y轴正方向)
        //返回值是Vector3,只有x和y有值,z始终为0
        print(Input.mousePosition);
    }
}

2.检测鼠标输入

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson11 : MonoBehaviour
{
    void Update()
    {
        //1.鼠标按下的一瞬间 进入
        //  只有按下的一瞬间 进入一次
        //  参数:0-左键,1-右键,2-中键
        if (Input.GetMouseButtonDown(1))
        {
            print("按下了鼠标右键");
        }

        //2.鼠标抬起的一瞬间 进入
        //  只有抬起的一瞬间 进入一次
        //  参数:0-左键,1-右键,2-中键
        if (Input.GetMouseButtonUp(0))
        {
            print("抬起了鼠标左键");
        }

        //3.鼠标长按 进入
        //  当按住按键不放时,会一直进入
        //  参数:0-左键,1-右键,2-中键
        if (Input.GetMouseButton(0))
        {
            print("长按");
        }

        //4.鼠标滚轮滚动
        //  此API可以得到当前鼠标滚轮的状态
        //  返回值是Vector2,滚轮滚动时 会改变Vector2的y的值
        //  y:-1是往上滚、0是不滚、1是往下滚
        print(Input.mouseScrollDelta);
    }
}

3.检测键盘输入

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson11 : MonoBehaviour
{
    void Update()
    {
        //1.键盘按下
        if (Input.GetKeyDown(KeyCode.W))
        {
            print("按下了W");
        }
        //  传入字符串的重载 (用的少)
        //  注意 必须传入小写字母,大写会报错
        if (Input.GetKeyDown("a"))
        {
            print("按下了A");
        }

        //2.键盘抬起
        if (Input.GetKeyUp(KeyCode.W))
        {
            print("抬起了W");
        }

        //3.键盘长按
        if (Input.GetKey(KeyCode.W))
        {
            print("长按W,玩家往前走");
        }
    }
}

4.检测默认轴输入

Unity提供的 更方便的 控制对象的 位移和旋转的解决方案

这个Axis是可以自定义的:
【Unity】Input——检测鼠标、键盘、手柄输入、鼠标在屏幕上的位置等等
【Unity】Input——检测鼠标、键盘、手柄输入、鼠标在屏幕上的位置等等文章来源地址https://www.toymoban.com/news/detail-502646.html

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson11 : MonoBehaviour
{
    void Update()
    {
        //1.键盘AD按下时,返回 -1 ~ 1之间的值
        //得到的这个值 就是左右方向,可以通过它来控制对象左右移动 或 左右旋转
        print(Input.GetAxis("Horizontal"));

        //2.键盘SW按下时,返回 -1 ~ 1之间的值
        //得到的这个值 就是上下方向,可以通过它来控制对象上下移动 或 左右旋转
        print(Input.GetAxis("Vertical"));

        //3.鼠标水平移动时,返回 -1 ~ 1之间的值
        print(Input.GetAxis("Mouse X"));

        //4.鼠标垂直移动时,返回 -1 ~ 1之间的值
        print(Input.GetAxis("Mouse Y"));

        //补充:Input.GetAxisRaw方法
        //  它和GetAxis使用方法相同
        //  只不过 他的返回值只会有-1 0 1这三个数,没有中间的过度值
    }
}

5.其它的补充

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson11 : MonoBehaviour
{
    void Update()
    {
        //1.是否有任意键或鼠标长按
        if (Input.anyKey)
        {
            print("有任意键正在长按");
        }

        //2.是否有任意键或鼠标被按下
        if (Input.anyKeyDown)
        {
            print("有任意一个键被按下了");
        }

        //3.得到这一帧的键盘输入
        print(Input.inputString);
    }
}

6.手柄输入相关

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson11 : MonoBehaviour
{
    void Update()
    {
        //1.得到连接的手柄的所有按钮名字
        //  返回一个string数组
        string[] strs = Input.GetJoystickNames();

        //2.手柄某一个按键被按下
        if (Input.GetButtonDown("Jump"))
        {
            
        }

        //3.手柄某一个按键抬起
        if (Input.GetButtonUp("Jump"))
        {

        }

        //4.手柄某一个按键长按
        if (Input.GetButton("Jump"))
        {
        }
    }
}

7.移动设备相关

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson11 : MonoBehaviour
{
    void Update()
    {
        //1.移动设备触摸
        if (Input.touchCount > 0)
        {
            //得到第一根手指的触摸
            Touch t1 = Input.touches[0];
            //得到触摸的位置
            print(t1.position);
            //得到相对上次位置的变化
            print(t1.deltaPosition);
        }

        //2.是否启用多点触控
        //  true开启、false关闭
        Input.multiTouchEnabled = true;

        //3.陀螺仪(重力感应)
        //  是否开启陀螺仪(必须开启,才能正常使用)
        Input.gyro.enabled = true;
        //  得到重力加速度向量
        print(Input.gyro.gravity);
        //  得到旋转速度
        print(Input.gyro.rotationRate);
        //  得到陀螺仪当前旋转的四元数
        //  比如 用这个角度信息来控制场景上的一个3D物体受重力影响
        //  手机怎么动 它就怎么动
        print(Input.gyro.attitude);
    }
}

到了这里,关于【Unity】Input——检测鼠标、键盘、手柄输入、鼠标在屏幕上的位置等等的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity入门】鼠标输入和键盘输入

    一、监听鼠标输入 GetMouseButtonUp 、GetMouseButtonDown、GetMouseButton input.GetMouseButtonDown和 input.GetMouseButtonUp 能够分别监听鼠标的按下和松开事件,GetMouseButton长按响应,值得注意的是,这三个方法需要传入参数,0表示左键,1表示右键,2表示中间键 比如我们可以在代码中这样写,来

    2024年02月03日
    浏览(40)
  • 【Unity入门】15.鼠标输入和键盘输入

        大家好,我是Lampard~~     欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢   (1) Input类     Unity的 Input类提供了许多监听用户输入的方法 ,比如我们常见的鼠标,键盘,手柄等。我们可以用Input类的接口来获取用户的输入信息     下面我们会调用几个常用的

    2024年02月09日
    浏览(40)
  • unity3D 鼠标键盘输入

    一、鼠标键盘输入 游戏的输入可以来自于鼠标,键盘,触摸屏,游戏手柄 显示一个Vector3类型的xyz的鼠标位置。 Input.GetButtonDown(0):0代表鼠标左键,1代表鼠标右键,如果鼠标左键按下返回true。 Input.GetKeyDown(\\\"space\\\"): 检测空格是否按下。 更多操作可以查看Unity Script API( UnityE

    2024年02月10日
    浏览(81)
  • 【学习笔记】unity脚本学习(四)【inputManager、键盘输入、鼠标输入、Raycast】

    参考:极客学院unity3d教程 inputManager Horizontal虚拟轴的各个属性含义(摘选自ChatGpt,部分回答不准确) Name :虚拟轴的名称,用于在代码中访问该虚拟轴。这个名称应该是唯一的,用于区分其他虚拟轴。 Descriptive Name :描述虚拟轴的名称,用于在Inspector中显示。这个名称通常

    2024年02月15日
    浏览(39)
  • Unity 检测鼠标是否在UI上的方法

     整理一下: 1.官方提供的API: 2.直接通过检测UIcanvas 的GraphicRaycaster来判断(直接杜绝检测到场景中物体) 3.和官方提供的差不多

    2024年02月05日
    浏览(38)
  • 【Unity】简单案例脚本实现 | 鼠标观察/键盘控制移动飞行/行走/碰撞检测

    《Unity5实战-使用C#和Unity开发多平台游戏》第二章-构建一个让你置身3D空间的演示 鼠标观察/键盘控制移动飞行/行走/碰撞检测 Unity版本:2019.4.23f1c1 注意脚本名称和组件添加,不在文章中一一强调 场景模型都是在资源商店选择的免费下载(选择Sort by Price(Low to High)排序)搜索

    2024年02月04日
    浏览(54)
  • input 调起键盘 ,键盘距离输入框底部太近

    cursorSpacing=‘20’ 单位是 ‘px’ 距离底部距离 20px ,输入框距离键盘距离是20px

    2024年02月07日
    浏览(43)
  • python使用pyautogui控制鼠标与键盘(无屏幕内容)

            若是读者学过爬虫工具Selenium,对pyautogui必能快速上手,只需要不断实践复习即可熟练掌握。若是没学过当然没关系,我会以初学者的角度尽可能详细地向你解读新手遇到的许多问题。         请注意: 在本文章中,我会import pyautogui as auto                 在本

    2024年02月20日
    浏览(40)
  • 【uniapp】uniapp实现input输入显示数字键盘:

    一、官网文档: input | uni-app官网 二、文档: 三、效果: 【1】number:iPhone原生数字键盘不显示小数点 【2】digit: 【3】digit和inputmode:

    2024年02月06日
    浏览(48)
  • 常识——(adb)小米VR正式版使用第三方APP,电脑充当手机的蓝牙手柄,实现确认功能,从电脑键盘向手机输入文字

    1.小米vr正式在插入手机后,会自动启动小米VR APP,然后因为小米官方已经关闭了小米VR的生态,你面对的只是一个空荡荡的vr界面,以及商店里那些已经老旧的软件(大多已经不再更新,服务器关闭,不能使用) 看着外面的第三方APP比如gizmoVR浏览器,看着外面的VR虚拟应用,

    2024年02月06日
    浏览(152)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包