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:添加普通绑定

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

被折叠的 条评论
为什么被折叠?



