三分之十的菜鸟unity学习小记(五)输入与控制


在这里插入图片描述

输入管理器:虚拟轴

  1. 虚拟轴的定义
    编辑(edit)->Project Settings ->输入
    虚拟轴如下:
    在这里插入图片描述
    Gravity为按键由按下到复位时数值的回复速度;
    Snap选中为当两个按键同时按下时,视为复位状态

    更改Size可以调整虚拟轴的个数,可增加自定义的虚拟轴(比如说Z拿东西啊等等);注意:虚拟轴可以同名,同名的虚拟轴相当于并集触发,比如说按下空格和shift都可视为跳跃。

  2. 获取虚拟轴数值:
    在这里插入图片描述其中获取的value值范围为0,1,-1,未按下时为0,正触发为1(上面的right和D),负触发为-1(上面的left和A);

  3. 虚拟轴的应用Input.GetAxis

    public class carDrive : MonoBehaviour
    {
    float speed = 10;
    float rotationSpeed = 100;
    
    void Update()
    {
        float translation = Input.GetAxis("Vertical") * speed;	//秒
        float rotation = Input.GetAxis("Horizontal") * rotationSpeed;
    
        translation *= Time.deltaTime;		//帧
        rotation *= Time.deltaTime;
    
        transform.Translate(0, 0, translation);
        transform.Rotate(0, rotation, 0);
    }
    }
    

    注意:

    • Time.deltaTime是每一帧的耗时(秒)。translation *= Time.deltaTime;表示的是将每秒刷新的translation转换为每帧刷新的translation,再在每一帧中画出
    • 区别transform.Translation(平移!)和transform.Rotate(旋转!)

键盘事件

在这里插入图片描述检测按键事件:GetKey、GetButton

if(Input.GetKey("up")) 等同于
if (Input.GetKey(KeyCode.UpArrow))
if(Input.GetButton("Vertical")) 
  • 注意GetKey和GetButton的不同:
    GetKey用的是键名up,GetButton用的虚拟轴名Vertical
  • 引申:GetKeyDown、GettKeyUp、GetButtonDown、GetButtonUp
    GetKey按下状态为真,GetKeyDown按下瞬间为真
  • GetButton常用于事件性的虚拟轴,如Fire(射击ctrl等),用于检测事件

鼠标事件

GetMouseButton(参数0鼠标左键,1右键,2中键)
——引申GetMouseButtonDown、GetMouseButtonUp

if(Input.GetMouseButtonDown(0))
	Debug.Log(Time.time+"鼠标左键按下");
if(Input.GetMouseButtonDown(1))
	Debug.Log(Time.time+"鼠标右键按下");

GUI事件也可检测鼠标事件

    void OnGUI()
    {
        Event e = Event.current;
        if (e.button == 0 && e.isMouse)
        {
            Debug.Log("鼠标左键被按下");
        }
        else if (e.button == 1 && e.isMouse)
        {
            print("鼠标右键被按下");
        }
    }

按下时多次输出!因为OnGUI每帧执行
(此处定义的事件和用委托定义的事件不一样?关于事件的部分还要好好看看)

检测鼠标双击:

 void OnGUI()
    {
        Event e = Event.current;
        if(e.isMouse && (e.clickCount == 2)){
         	Debug.Log("双击鼠标");
        }
     }

角色控制

standard资源包中角色控制器组件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值