Unity-Input System新输入系统插件学习

文章介绍了Unity中的InputSystem组件,如何配置ActionMaps、Actions(包括ActionType和ControlType),处理键盘、鼠标和手柄输入,以及实现多设备支持,包括手柄震动和按键重新绑定功能。

1.键盘、鼠标操作

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;

public class NewInputSystem : MonoBehaviour
{
    public float SpaceKeyValue;
    public float RightMouseValue;
    public Image Icon;
    public Vector2 MousePos;
    public Vector2 MouseScroll;

    void Update()
    {
        if(Keyboard.current != null)        //判断是否有键盘外设接入
        {
            if(Keyboard.current.spaceKey.wasPressedThisFrame)       //判断是否按下
            {
                Debug.Log("Space Pressed - New");
            }
            else if(Keyboard.current.spaceKey.wasReleasedThisFrame) //判断是否抬起
            {
                Debug.Log("Space Released - New");
            }
            //值为0表示没有按住,值为1表示正在按住
            SpaceKeyValue = Keyboard.current.spaceKey.ReadValue();
            if(SpaceKeyValue > 0)
                Debug.Log("Space");
        }

        if(Mouse.current != null)       //判断是否有鼠标外设接入
        {
            if(Mouse.current.rightButton.wasPressedThisFrame)       //判断鼠标邮件是否按下
                Debug.Log("RightMouse Released - New");

            //值为0表示没有按住,值为1表示正在按住
            RightMouseValue = Mouse.current.rightButton.ReadValue();

            //鼠标右键按住
            if(Mouse.current.rightButton.ReadValue() == 1)
                Debug.Log("RightMouse");

            //获取鼠标位置
            Icon.rectTransform.anchoredPosition = Mouse.current.position.ReadValue();
            MousePos = Mouse.current.position.ReadValue();
            //获取鼠标滚轮值
            MouseScroll = Mouse.current.scroll.ReadValue();
        }

        //手柄
        if(Gamepad.current != null)
        {

        }
    }
}

2.Input Action

Action Maps---动作表(一般分为两个表1.GamePlay-游戏时用的表,2.UI)

Action—动作   

配置:

(1)Action Maps(方案):点击右侧加号新建一个方案,输入方案名称,然后选中该方案在Action与Action Properties设置该方案具体内容。

(2)Action(输入行为):点击“+”添加一个action,选中添加的action在右侧Action Properties内配置Action Type(value—通过值判断,提供一种连续状态变化事件,如果设置了多个输入,就会切换到最主要的一个。用它进行模拟控制,比如移动;Button—通过按钮,默认设置,包括按钮或者按键触发的一次性动作;Pass Through—和Value很相似,但它不会像Value一样(如果有多个输入时,不会只选择最主要的那个,而把其他的输入忽略,适用于一台机器有多人进行游戏)。在使用Value或者Pass Through Types时,你会看到一个额外的选项 Control Type为该Value的返回值类型)。

(3)然后点击添加的Action右侧的“+”,有下列4项选择:

Add Binding:添加普通绑定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值