微网站模板在线制作网络公司名字四个字

当前位置: 首页 > news >正文

微网站模板在线制作,网络公司名字四个字,178软文网,长治县网站建设文章目录 一、InputAction简介1、InputAction是什么#xff1f;2、示例 二、InputAction参数相关1、点击齿轮1.1 Actions 动作#xff08;1#xff09;动作类型#xff08;Action Type#xff09;#xff08;2#xff09;初始状态检查#xff08;Initial State Check2、示例 二、InputAction参数相关1、点击齿轮1.1 Actions 动作1动作类型Action Type2初始状态检查Initial State Check3控制类型Control Type 1.2 Interactions 交互方式设置监听事件started 、performed 、canceled相互作用设置参数1Hold 长按2Multi Tap 连击3Press 按下4SlowTap 缓慢点击4Tap 单击 1.3 Processors 值加工处理设置 2、绑定监听的输入设备按钮2.1 打开绑定输入界面2.2 绑定输入界面参数2.3 常用的监听绑定 3、点击号3.1 Add Binding3.2 Add Positive\Negative Binding Or Add 1D Axis Composite点击1DAxis的参数1Composite Type2Which Side Wins实例 3.3 Add Up\Down\Left\Right Composite Or Add 2D Vector Composite点击2DVector的参数1Composite Type同上2Mode处理模式实例 3.4 Add Up\Down\Left\Right\Forward\Backward Composite3.5 Add Binding With One Modifier Composite点击One Modifier参数1Composite Type同上2Override Modifiers Need To Be Pressed First需要首先按下覆盖修饰符实例 3.6 Add Binding With Two Modifier Composite 三、监听事件started 、performed 、canceled1、启用输入检测2、操作监听相关3、关键参数 CallbackContext4、结果 四、Input System Package全局设置1、打开Input System Package配置2、参数介绍2.1 UpdateMode更新模式2.2 Background Behavior后台行为2.3 Scroll Delta Behavior 滚动增量行为2.4 Compensate Orientation定向补偿2.5 Default Deadzone Min默认死区最小值2.6 Default Deadzone Max默认死区最大值2.7 Default Button Press Point默认按钮按下点2.8 Button Release Threshold按钮释放阈值2.9 Default Tap TIme默认点击时间2.10 Default Slow Tap Time默认慢速点击时间2.11 Default Hold Time默认保持时间2.12 Tap Radius点击半径2.13 MultTap Delay TIme多次点击延迟时间2.14 Supported Devices支持的设备2.15 Motion Usage动作使用2.16 Description描述2.17 Play Mode Input Behavior播放模式输入行为2.18 Improved Shortcut Support改进的快捷方式支持2.19 Enable Input Consumption启用输入消耗 五、补充专栏推荐完结 一、InputAction简介 1、InputAction是什么 顾名思义InputAction是InputSystem帮助我们封装的输入动作类。 它的主要作用是不需要我们通过写代码的形式来处理输入而是直接在Inspector窗口编辑想要处理的输入类型。当输入触发时我们只需要把精力花在输入触发后的逻辑处理上。 我们在想要用于处理输入动作的类中申明对应的InputAction类型的成员变量注意需要引用命名空间UnityEngine.InputSystem。 2、示例 比如创建移动和开火两个输入动作 public InputAction move; public InputAction fire;把脚本挂载到空对象上可以在inspector窗口编辑InputAction
二、InputAction参数相关 1、点击齿轮 1.1 Actions 动作 输入动作设置设置检测哪些输入 1动作类型Action Type 动作类型翻译介绍Value值监测按键数值的持续变化例如鼠标的移动手柄的遥感。它可以返回连续的数值范围内的任意值都可以比如从-1到1。Button按钮按钮类型对按下按键做出响应。这种类型的动作很简单只关心按钮是否被按下。它通常返回两个值按下1或抬起0。适用于处理单一的按钮事件。Pass Through透传和Value一样它用于持续变化的输入数据。区别在于如果有多个设备绑定这个ActionPass Through会发送所有设备的输入。在Value和Button这两个模式下当一个Action有多个设备的Bindings同时输入的时候Action只会被触发程度最高的输入设备触发。比如Move Action绑定了两个手柄的摇杆当一个手柄向左一个手柄向右的时候Move Action只会响应摇杆偏移更大的手柄忽略另一个手柄的输入。 2初始状态检查Initial State Check Button和Pass Through模式下会多出一个Initial State Check选项 Action只有在Enabled之后才能被触发但Action的Bindings可能在Enabled之前就处在非默认状态比如在Action Enabled之前绑定的按键已经被按下这时候 开启了Initial State Check在Action Enabled后的下一个Update循环中Action被触发未开启Initial State CheckAction不被触发 例子 我们增加两个ActionTest1和Test2Action Type都为Button其中Test1不勾选Initial State CheckTest2勾选 在游戏物体上挂载以下代码 using UnityEngine;public class InitialCheckTest : MonoBehaviour {private MyAction inputActions;private int i;void Start(){inputActions new MyAction();}void Update(){if(i 250){inputActions.Player.Enable();Debug.Log(Enabled!);}if(i 251){Debug.Log(Test1: inputActions.Player.Test1.triggered);Debug.Log(Test2: inputActions.Player.Test2.triggered);}i;} }点击运行并按着K和L键5秒后控制台输出结果如下 Test1未勾选Initial State Check所以无法识别出在Enable()之前已经按下的按键 3控制类型Control Type 在使用Value或者Pass Through Types时你会看到一个额外的选项 Control Type表示该Value的返回值类型
控制类型翻译介绍Any任意表示控制器返回任何类型的数据。用于处理不确定类型的数据可以根据实际情况解析为其他具体类型。Analog模拟通常用于表示一个范围内的连续数值。适合处理模拟输入设备的数据如摇杆或滑块通常返回一个浮点数。Axis一维轴浮点数表示一个连续的数值范围通常用于表示方向或力度。适合于需要表示方向或位置的输入设备如游戏手柄的摇杆。Bone骨骼用于表示骨骼动画系统中的骨骼数据。常用于角色动画中表示骨骼的状态或位置。Delta增量表示与前一个帧相比的变化量。用于处理需要跟踪增量变化的输入数据如鼠标的移动量。Digital数字表示离散的状态通常是0和1。用于处理简单的开关状态比如按钮按下或释放的状态。Double双精度浮点数表示一个双精度浮点数精度比普通浮点数更高。用于需要高精度数值的输入数据如精确的位置或速度数据。Dpad方向键4四向按钮表示方向键的状态通常为一个离散的方向上、下、左、右。例如摇杆上的D-padEyes眼睛表示眼睛位置或方向的数据。VR相关数值用于眼动追踪或虚拟现实中的眼睛跟踪。Integer整数表示一个整数值。用于处理离散的、可计数的输入数据比如选择的选项编号。Pose姿势表示对象的姿态或位置。常用于虚拟现实或增强现实中表示用户或物体的姿态数据。Quaternion四元数用于表示旋转的四元数数据。常用于3D空间中的物体旋转避免了欧拉角的万向节死锁问题。Stick摇杆表示摇杆的输入数据通常为二维或三维向量。用于获取摇杆的位移数据可以表示方向和力度。Touch触摸表示触摸输入的数据。用于处理触摸屏或触摸板上的输入通常包括触摸点的位置和压力。Vector2二维向量表示一个二维坐标的向量。用于处理需要两个维度数据的输入例如2D游戏中的位置或方向。Vector3三维向量表示一个三维坐标的向量。用于处理需要三个维度数据的输入例如3D空间中的位置或方向。 在这里选择对应的类型之后在选择对应设备按键相关属性时。会根据你选择内容的不同筛选对应内容。 比如控制类型选择了Vector2那么在点击加号添加绑定点击选择号设备后只能选择返回Vector2变量类型的输入设备比如手柄摇杆鼠标位置等因为进行了筛选。 假如选择了按钮类型那么只能选择按钮返回值的输入设备比如鼠标左键手柄按键等。
1.2 Interactions 交互方式设置 用于特殊输入比如点击长按双击等等当满足条件时才会触发这个行为用于设置长按时间、点击次数等等 监听事件started 、performed 、canceled Interactions 交互方式设置会影响三个事件Started、Performed、Canceled的触发时机它们的使用息息相关所以这里先介绍这三个事件下面会再详细介绍。 started开始事件。比如点击按钮就触发该事件。performed触发事件。比如长按长按1秒后就触发该事件表示真正触发了点击按钮。canceled结束事件。比如松开按钮就触发该事件 示例 public InputAction fire;private void Start() {fire.Enable();//一定不要忘记了要先启用输入fire.started (context) {print(开始事件调用);};fire.performed (context) {print(触发事件调用);};fire.canceled (context) {print(结束事件调用);}; }举一个明显的例子长按手指按住1秒以上认为是长按在按下去的瞬间触发Started在任意时间松开触发Canceled如果连续按压时间达到1秒触发Performed。目前了解一下就行下面具体介绍。 相互作用设置参数 1Hold 长按 需要保持按压一段时间才算完成这个动作。就像前面举得例子一样。适用于需要输入设备长按执行一些特殊操作比如长按查看物品详情信息等等。 添加完 Hold 后看一下它的两个变量。如果默认值不能满足你的需求取消勾选 Default 可自定义变量值。修改 Hold Time 变量一般即可满足需求。 Press Point:表示一个临界点只有过了这个值才算按下成功按下会触发started事件抬起触发canceled事件。取值通常在0~1之间。如果是Button按钮将简单地在 0未按下和 1按下之间切换如果按钮的值等于或大于PressPoint则认为该按钮已按下。如果是摇杆类的按钮则表示需要推动幅度大于或大于PressPoint则认为该摇杆被推动。默认值取0.5通常不需要修改。 Hold Time:长按时间按下时间达到Hold Time后会立刻触发Performed。 Default如果勾选则会采用Unity提供的默认值如果想要自定时间和临界值请取消勾选。 Open Input Settings默认值可以点击Open Input Settings进行查看并修改也可以“Edit→Project Settings→Input System Package”打开查看并修改。
Default和Open Input Settings后面功能都是一样这两项功能后续不会再讲述。 比如设置长按1秒才会触发performed事件
2Multi Tap 连击 可以用于实现比如双击选中物体的功能等等。 Tap Count连击次数。 Max Tap Spacing两次点击之间的时间间隔。 Max Tap Duration每次点击的持续时间即按下和松开按钮的这段时间。 Press Point和前面一样。
只有每次点击时间小于Max Tap Duration且点击间隔时间小于Max Tap Spacing点击Tap Count次才会触发Performed。 比如前面默认情况下表示的就是需要连击2次且每次点击的持续时间小于0.2秒点击之间的时间间隔小于0.75秒才算成功点击触发Performed。 3Press 按下 控制按钮不同阶段的触发行为
Trigger Behavior 触发行为 Press Only在按下的时候触发Started和 Performed在抬起的时候触发Canceled。Release Only在按下的时候触发Started在抬起的时候触发Performed和Canceled。Press And Release在按下的时候触发Started和 Performed在抬起的时候触发Performed和Canceled。 Press Point和前面一样。 4SlowTap 缓慢点击 类似Hold他与Hold的区别是在按住时间大于等于Max Tap Duriation的时候并不会立刻触发performed而是会在松开的时候才触发performed
Min Tap Duration按压的最短时间。Press Point和前面一样。 比如当前按下时间要大于0.6秒后松开鼠标才会触发performed事件
4Tap 单击 可以看做只点击一次的Multi Tap也可以看作和前面的Hold相反。需要在一段时间内按下松开来触发。当按钮按下时若在Max Tap Duriation时间内小于松开按钮才会触发performed。 选项在Multi Tap中也有讲述。 比如要在按下后0.2秒内抬起才算做一次点击执行performed事件。
1.3 Processors 值加工处理设置 对返回的Value值进行加工处理就是输入设备的值传过来后进行二次处理。如取反限定范围等等。 这个地方会因为上边选择的Control Type不同从而导致出现的选项也不同。
值处理加工设置解释Axis Deadzone轴死区处理处理浮点数值。绝对值小于最小值的任何值为 0绝对值大于最大值的任何值为 1 或 -1。Clamp将输入值钳制在[min,max]之间值类型为Float。Invert将输入值取反(乘以-1)。应用场景如果某方向控制键左输入1右输入-1我们日常的坐标系都是左为负数右为正数为了符合习惯可以取反。Invert Vector 2同上Invert。可以单独选择取反XY轴。Invert Vector 3同上Invert。可以单独选择取反XYZ轴。Normalize如果最小值0则将[min,max]范围内的输入值规格化为无符号规格化形式[0,1]如果最小值0则将输入值规格化为有符号规格化形式[-1,1]。Normalize Vector 2将输入向量归一化为单位向量模长为1。比如使用摇杆控制人物移动时我们往右前方移动如果值为1,1那么就会比单纯前进1,0速度要快。这不是我们想要的所以就要将输入值的模长限制为1。设置后可能会返回0.71,0.71其他角度类似。虽然我们通常都是通过代码.normalized进行归一化操作这里通过直接限制输入归一化也是一种办法。Normalize Vector 3同上这是针对Vector 3数据。Scale将输入值进行缩放。也就是将输入值乘以Scale配置的数值Factor。Scale Vector 2同上。将输入值x轴乘以xy轴乘以y。Scale Vector 3同上。将输入值x轴乘以xy轴乘以yz轴乘以z。Stick Deadzone摇杆死区处理和前面的Axis Deadzone类似不过这个处理的是Vector2值。任何幅度小于 min 的输入向量都会变为 0,0任何幅度大于 max 的输入向量都被标准化为长度 1。摇杆或者其他设备可能存在轻微误触或者其他原因造成的信号问题在边缘地区不准确。处理比如将摇杆拉满到底也就是长度为1时人物切换为奔跑但是因为某些原因比如设备老旧输入值永远在0.99f达不到1等情况。 2、绑定监听的输入设备按钮 2.1 打开绑定输入界面 比如点击号点击Add Binding创建一个单键输入下面会出现一条绑定数据ps这里点击号后的每个选择的含义下面会再具体介绍 双击进行绑定输入
2.2 绑定输入界面参数 Binding是此处的核心它的作用是用来对输入信号进行绑定。输入系统将Action与Control之间的连接抽象为Binding。Binding包含一条指向Control的控件路径多个Binding可以指向同一个Control一个Action可包含多个Binding。系统收到某个控件输入的数据时会驱动所有绑定了该控件的Action进行响应。 设备解释Listen点击监听输入快捷绑定对应不同输入Usages常用用法GamePad游戏手柄Joystick操纵杆Keyboard键盘Mouse鼠标Pen笔Pointer指针Sensor传感器TouchScreen触屏Tracked Device履带装置XR ControllerXR 控制器XR HMDXR 头戴显示器Other其它 Interactions和Processors这里的Interactions和Processor是针对当前Binding的特别设置与前面介绍的功能一致。如果此处未进行设置就使用上级的Interactions/Processor设置如果进行了设置以此处Interactions/Processor的设置为准。
2.3 常用的监听绑定 键盘按键 鼠标的移动量 鼠标屏幕位置坐标 鼠标左键 鼠标XY轴滚轮 鼠标Y轴滚轮 手柄左摇杆
3、点击号 3.1 Add Binding 添加新的输入绑定单按键输入比如鼠标左右键按下 调用 public InputAction btn;void Start() {btn.Enable();//启动输入btn.performed (context) {print(触发);}; }3.2 Add Positive\Negative Binding Or Add 1D Axis Composite 添加1D轴组合类似Input中的水平竖直热键返回-11之间的一个值。它可以用于简单的轴输入例如游戏中的一个方向键。
Negative负面按键例如 0
-1Positive正向按键例如 0~1 点击1DAxis的参数 1Composite Type 复合类型不要修改和你点击号添加的组合对应下面一样的参数就不介绍了。 2Which Side Wins 哪一方获胜当同时按下时如何处理 比如同时按下前进后退ws时看ws谁获胜可能打平
Neither双方没有优先权返回MinValue和MaxValue的中间值Positive正面优先返回maxValueNegative负面优先返回minValue 实例 双击下面的条可以选择监听的按键比如下面 按S代表-1W代表1 代码开启1D轴后可以在Update中实时打印选择按下的值 public InputAction axis;void Start() {axis.Enable();//启动输入 }void Update() {print(axis.ReadValuefloat()); }结果因为选择了Neither0代表不按或者ws一起按-1代表按s1代表按w
3.3 Add Up\Down\Left\Right Composite Or Add 2D Vector Composite 复合输入用于将两个输入轴例如水平和垂直轴组合成一个 Vector2。这是常用的输入类型例如用来处理方向控制。它通常用于需要二维方向输入的场景比如控制角色移动或视角。
Up:上 ( 0 , 1 )Down下 ( 0 , -1 )Left左 ( -1 , 0 )Right右 ( 1 , 0 ) 点击2DVector的参数 1Composite Type同上 2Mode处理模式 默认值为 Mode.DigitalNormalized。
Analog处理模拟输入信号如游戏控制器的摇杆或模拟触摸输入。输入值通常是浮点数范围在 -1 到 1 之间。可以实现按手柄摇杆的力度控制移动速度类似带加速减速过程的效果。可能只有使用手柄才能测出效果。Digital Normalized处理数字输入但以归一化形式输出输入值在 -1、0 或 1。和前面Processors 加工处理设置的Normalize类似。比如将输入向量归一化为单位向量模长为1比如使用摇杆控制人物移动时我们往右前方移动设置后可能会返回0.71,0.71其他角度类似。虽然我们通常都是通过代码.normalized进行归一化操作这里直接选择归一化输出也是一种办法。Digital同上但是不进行归一化输入值也是在 -1、0 或 1。比如使用摇杆控制人物移动时我们往右前方移动设置后会返回1,1。 实例 双击点击下方条选择监听的按键比如键盘的上下左右键 代码开启2D轴后可以在Update中实时打印选择按下的值 public InputAction vector2D;void Start() {vector2D.Enable();//启动输入 }void Update() {print(vector2D.ReadValueVector2()); }3.4 Add Up\Down\Left\Right\Forward\Backward Composite 添加3D向量组合3d向量组合用的不多比如获取像VR头盔在3d空间的位置 和前面2d其实用法差不多只是得到的是xyz数据 3D和2D类似无非是多了一维的参数要关联多两个键而已 3.5 Add Binding With One Modifier Composite 添加带有一个复合修改器的绑定可以理解为双组合键。比如游戏内实现CtrlC、CtrlV功能或者实现tps游戏中按住鼠标右键再移动才能控制相机视野旋转功能。
点击One Modifier参数 1Composite Type同上 2Override Modifiers Need To Be Pressed First需要首先按下覆盖修饰符 如果勾选Override Modifiers Need To Be Pressed First则需要严格按照顺序首先按下修饰按钮Modifier再按绑定按钮Binding才会触发。 实例 比如实现前面说的tps游戏中按住鼠标右键再移动才能控制相机视野旋转功能可以像下面这么绑定。 Delta[Mouse]获取的是鼠标与前一个帧相比的变化量。即鼠标的移动量。 可以在Update中实时打印选择按下的值 public InputAction vector2D;void Start() {vector2D.Enable();//启动输入 }void Update() {print(vector2D.ReadValueVector2()); }效果按住鼠标右键再移动鼠标会打印鼠标的移动量。往上右移动是正数。
3.6 Add Binding With Two Modifier Composite 添加带有两个复合修改器的按钮可以理解为三组合键。实现在游戏中比如CtrlKU组合键
三、监听事件started 、performed 、canceled 1、启用输入检测 一定不要忘记了要先启用输入 move.Enable();2、操作监听相关 开始操作 move.started StartedTestFun;private void StartedTestFun(InputAction.CallbackContext context) {print(开始事件调用); }真正触发 move.performed (context) {print(触发事件调用); };结束操作 move.canceled (context) {print(结束事件调用); };3、关键参数 CallbackContext //真正触发 move.performed (context) {print(触发事件调用);//当前状态//没有启用 Disabled//等待 Waiting//开始 Started//触发 Performed//结束 Canceled//context.phaseprint(当前状态context.phase);//动作行为信息 print(动作行为信息 context.action.name);//控件(设备)信息print(控件(设备)信息 context.control.name);//获取值//context.ReadValuefloat//持续时间print(持续时间context.duration);//开始时间print(开始时间context.startTime); };4、结果 四、Input System Package全局设置 1、打开Input System Package配置 点击按钮或手动找到InputSystem默认值的设置 可以点击创建InputSystem默认值的设置文件按钮 会创建出设置文件可以修改设置文件的值
2、参数介绍 Input System Package全局设置一般都不会修改做了解就行了
2.1 UpdateMode更新模式 Process Events In Dynamic Update在动态更新中处理事件Process Events In Fixed Update在固定更新中处理事件Process Events Manually手动处理事件 2.2 Background Behavior后台行为 注意只有在播放器设置中启用“在后台运行”时才能更改焦点更改行为。
Reset And Disable Non Background Devices重置和禁用非后台设备Reset And Disable All Devices重置和禁用所有设备Ignore Focus忽略焦点 2.3 Scroll Delta Behavior 滚动增量行为 Uniform Across All Platforms所有平台统一Keep Platform Specific Input Range保留平台特定的输入范围 2.4 Compensate Orientation定向补偿 2.5 Default Deadzone Min默认死区最小值 2.6 Default Deadzone Max默认死区最大值 2.7 Default Button Press Point默认按钮按下点 2.8 Button Release Threshold按钮释放阈值 2.9 Default Tap TIme默认点击时间 2.10 Default Slow Tap Time默认慢速点击时间 2.11 Default Hold Time默认保持时间 2.12 Tap Radius点击半径 2.13 MultTap Delay TIme多次点击延迟时间 2.14 Supported Devices支持的设备 如果希望输入系统支持其可以识别的所有输入设备请将支持的设备保留为空。 但是如果您只对某一组设备感兴趣那么在此处添加它们将缩小编辑器中显示的范围并避免从与项目无关的设备获取输入。 在此处添加设备时任何未被分类为受支持的设备都将显示在输入调试器的“不受支持的设备”下
2.15 Motion Usage动作使用 2.16 Description描述 2.17 Play Mode Input Behavior播放模式输入行为 Pointers And Keyboards Respect Game View Focus指针和键盘遵守游戏视图焦点All Devices Respect Game View Focus所有设备都遵守游戏视图焦点All Device Input Always Goes To Game View所有设备输入始终进入游戏视图 2.18 Improved Shortcut Support改进的快捷方式支持 2.19 Enable Input Consumption启用输入消耗 五、补充 获取2d输入我们也可以直接绑定摇杆摇杆返回值本来就是vector2所以我们不一定要添加2d组合键。 比如下面这种Add Binding 和 Add Up\Down\Left\Right Composite Or Add 2D Vector Composite 组合使用。实现了键盘wasd左右上下方向键和手柄摇杆都能触发输入事件响应一般用于人物移动控制。 专栏推荐 地址【零基础入门unity游戏开发——C#篇】【零基础入门unity游戏开发——unity通用篇】【零基础入门unity游戏开发——unity3D篇】【零基础入门unity游戏开发——unity2D篇】【制作100个Unity游戏】【推荐100个unity插件】【实现100个unity特效】【unity框架/工具集开发】 完结 好了我是向宇博客地址https://xiangyu.blog.csdn.net如果学习过程中遇到任何问题也欢迎你评论私信找我。 赠人玫瑰手有余香如果文章内容对你有所帮助请不要吝啬你的点赞评论和关注你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法也欢迎评论私信告诉我哦