【Unity】【VR开发】如何避免按键冲突

【背景】

VR开发过程中,控制器按键冲突是常有的问题。比如握住手枪时发射子弹用的Trigger,瞬移用的也是Trigger,如何解决这种冲突呢?

【分析】

为了让同一个Trigger按键在不同场景下分别触发合适的动作,需增加判断逻辑来区分场景。具体到当前的问题,需要追加判断逻辑区分玩家是否正在抓握手枪,如果没有举枪,按下控制器的Trigger键触发传送移动,如果处于举枪状态,则触发发送子弹功能。

【解决示例】

以瞬移为例,原本的判断是只要按下Trigger按键就触发瞬移,要想与发射子弹的场景区分,那就需要再加上对抓取状态的判断。
在Hierarchy中选中XR Origin,在Inspector面板找到自定义脚本组件Activate Teleportation Ray。双击Script属性框打开VS脚本编辑器开始修改脚本内容。
在变量声明部分追加两个InputActionProperty类型的公共变量,一个leftGrab,一个rightGrab。这两个公共变量用于在Unity编辑器中关联控制器的Grab按键。语句如下:

public InputActionProperty leftGrab;
public InputActionProperty rightGrab

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-11 19:56:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-11 19:56:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-11 19:56:03       87 阅读
  4. Python语言-面向对象

    2024-03-11 19:56:03       96 阅读

热门阅读

  1. 20240311

    2024-03-11 19:56:03       38 阅读
  2. 聚酰胺12(PA 12&尼龙12)行业调研报告

    2024-03-11 19:56:03       51 阅读
  3. C语言加密汉字、图片

    2024-03-11 19:56:03       35 阅读
  4. 算法-双指针、BFS与图论-1238. 日志统计

    2024-03-11 19:56:03       42 阅读
  5. 搭建双节点clickhouse

    2024-03-11 19:56:03       39 阅读