Unity-输入控制

Input类

属性方法 详解
anyKey 任何按键按下都返回true
anyKeyDown 任何按键按下第一帧都返回true
inputString 该帧的键盘输入
mousePosition 鼠标指针当前的坐标位置
GetKey 按下按键期间返回true
GetKeyDown 按下按键瞬间返回一次true
GetKeyup 松开按键瞬间返回一次true
GetMouseButton 按下鼠标键返回true
GetMouseButtonDown 按下鼠标键瞬间返回一次true
GetMouseButtonup 松开鼠标键瞬间返回一次true

使用例

0为鼠标左键,1为鼠标右键,2为鼠标滚轮

Input.GetKeyDown(KeyCode.R);//按下R键
Input.GetMouseButtonDown(0);//按下鼠标左键
Input.GetMouseButton(0);//持续按下鼠标左键
Input.GetMouseButtonUp(0);//松开鼠标左键

虚拟轴

虚拟轴 名称 详解
水平 Horizontal 水平轴,键盘A/D键、← /→键控制
垂直 Vertical 垂直轴,键盘W/S键、↑ /↓键控制
鼠标X MouseX 鼠标沿x轴方向移动
鼠标Y MouseY 鼠标沿y轴方向移动
鼠标滚轮 MouseScrollWheel 鼠标滚轮滚动
float h = Input.GetAxis("Horizontal");//获得虚拟轴的数值

虚拟按键

虚拟按键 名称 详解
Fire1 Fire1 鼠标左键或左Ctrl键
Fire2 Fire2 鼠标右键或左Alt键
Fire3 Fire3 鼠标滚轮或左Shift键
跳跃 Jump Space键
提交 Submit Return键
取消 Cancel Escape键

角色移动和转向

void Update()
{
    float v = Input.GetAxis("Vertical");
    float h = Input.GetAxis("Horizontal");
    Vector3 dir = new Vector3(h,0,v);
    if(dir != Vector3.zero)
    {
        transform.ratation = Quaternion.LookRotation(dir);
        transform.Translate(Vector3.forward *2 * Time.deltaTime);
    }
}

跟随摄像机

Vector3 v;
public Transform player;
void Start()
{
    player = GameObject.FindWithTag("Player").transform;
    v = player.transform.position - transform.position;
}
// Update is called once per frame
void Update()
{
    transform.position = player.transform.position-v;
}

posted on   Shazam_sjtu  阅读(203)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示