Unity+Pico 手柄按键控制

2023-11-19

一、定义手柄按键API


1、InputDevices.GetDeviceAtXRNode,通过XRNode获取对应的设备;

2、XRNode是一个枚举类型,包含LeftEye、RightEye、CenterEye、Head、LeftHand、RightHand、GameController、TrackingReference、HardwareTracker;

3、TryGetFeatureValue,得到某个特性的值;

4、CommonUsages定义了用于从XR.InputDevice.TryGetFeatureValue获取输入特征的静态变量,用来指定想要获取的特性。

1

2

3

4

5

6

7

8

9

10

11

12

Vector2 vec2DAxis = Vector2.zero;

bool isGrip = false;

bool isTrigger = false;

bool isMenu = false;

bool isPrimaryButton = false;

bool isSecondButton = false;

InputDevices.GetDeviceAtXRNode(XRNode.LeftHand).TryGetFeatureValue(CommonUsages.primary2DAxis, out vec2DAxis);

InputDevices.GetDeviceAtXRNode(XRNode.RightHand).TryGetFeatureValue(CommonUsages.gripButton, out isGrip);

InputDevices.GetDeviceAtXRNode(XRNode.RightHand).TryGetFeatureValue(CommonUsages.triggerButton, out isTrigger);

InputDevices.GetDeviceAtXRNode(XRNode.RightHand).TryGetFeatureValue(CommonUsages.menuButton, out isMenu);

InputDevices.GetDeviceAtXRNode(XRNode.RightHand).TryGetFeatureValue(CommonUsages.primaryButton, out isPrimaryButton);

InputDevices.GetDeviceAtXRNode(XRNode.RightHand).TryGetFeatureValue(CommonUsages.secondaryButton, out isSecondButton);

二、控制物体移动


编写脚本用手柄控制物体的前后左右移动,如果把脚本挂载到头显上,就变成控制自身的移动。 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR;

public class ControlObject : MonoBehaviour
{
    // Update is called once per frame
    void Update()
    {
        Vector2 vec2DAxis = Vector2.zero;
        InputDevices.GetDeviceAtXRNode(XRNode.LeftHand).TryGetFeatureValue(CommonUsages.primary2DAxis, out vec2DAxis);
        transform.position = new Vector3(transform.position.x + vec2DAxis.x * Time.deltaTime,
            transform.position.y, transform.position.z + vec2DAxis.y * Time.deltaTime);
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity+Pico 手柄按键控制 的相关文章

  • 对Unity3D 静态批处理和动态批处理的理解

    Draw Call就是CPU调用图像编程接口 像OpenGL或者 DirectX 简单来说 Draw Call就是由CPU发起的一个命令 添加到一个命令缓冲区 当GPU完成了上一次的渲染任务之后 会从命令缓冲区的命令队列中再取出一个并执行
  • Unity3D:按键生成物件,Instantia…

    在按下按键之后 可以在画面中生成之前定义好了的物体 这里使用了Instantiate函数来生成 1 先在游戏中定一个空物件GameObject 创建空物件快捷键 ctrl shift n 2 在视图中放置 3 编写脚本 脚本 SpaceCh
  • Unity3d 插件 系列——DoTweenPro介绍(图文详细+案例)

    Unity3d 插件 系列 DoTweenPro介绍 图文详细 案例 前言 一 DoTweenPro简介 二 DoTweenPro安装 三 DoTweenPro主要组件 1 DoTweenAnimation 2 DoTweenPath 3
  • Unity之获取游戏物体对象或组件的几个方法

    文章目录 前言 通过物体名称获取对象 GameObject Find Transform Find 通过物体标签获取对象 GameObject FindWithTag GameObject FindGameObjectWithTag Gam
  • unity的LOD组件

    本文转载自http blog csdn net huutu article details 52106468 LOD是Level Of Detais 的简称 多细节层次 在游戏场景中 根据摄像机与模型的距离 来决定显示哪一个模型 一般距离近
  • unity 性能查看工具Profiler

    文章目录 前言 profiler工具介绍 菜单栏 帧视图 模块视图 模块详细信息 通过profiler分析优化游戏性能 最后 前言 每次进行游戏优化的时候都用这个工具查看内存泄漏啊 代码优化啊之类的东西 真的好用 但是之前也就是自己摸索一下
  • java中Keytool的使用总结

    java中Keytool的使用总结 2011 02 26 15 30 15 分类 在申请Android Map API Key的时候使用到了java中Keytool 下面转一篇介绍java中Keytool的文章 http blog csdn
  • Unity3d + NGUI 的多分辨率适配

    移动端的多机型适配 现在要介绍的是 锁链战记 这款游戏的适配方法 这种适配方法是UI是一个基础尺寸 背景是一个基础尺寸 背景比UI多出的部分是一些没有实际作用的部分 这样的适配方式避免了在iPhone5这样的小屏幕上镶边 首先设定UIRoo
  • 【Unity步步升】监控与检测物体的各种方案,如:射线、碰撞、挂载等...

    在制作AR模型数值控制方案的时候遇到了检测的问题 学习过程受益匪浅 故今天为大家整理带来一篇监控与检测物体的参考方案集合 目录 一 射线检测 二 物体存在检测 三 碰撞检测 一 射线检测 单射线检测 首先完成搭建场景如下图1 1 我这里用到
  • Unity旋转以及万向锁问题

    我之前研读了一些关于unity旋转相关的博客 一直想抽个时间写个总结 但是由于实习太忙一直没有写 趁着今天请了假晚上有时间把这段时间一些学习心得写出来 Unity inspector面板中的Rotation 在unity中 想必大家最先接触
  • unity3d 自定义的图片无法放入source image中

    须将图片的texture type改为 sprite
  • unity3d image组件不显示

    需要将UI组件放到画布下面
  • 【原神游戏开发日志1】缘起

    原神游戏开发日志1 缘起 版权声明 本文为 优梦创客 原创文章 您可以自由转载 但必须加入完整的版权声明 文章内容不得删减 修改 演绎 相关学习资源见文末 大家好 最近看到原神在TGA上频频获奖 作为一个14年经验的游戏开发行业的老兵 我就
  • 【Unity】如何让Unity程序一打开就运行命令行命令

    背景 Unity程序有时依赖于某些服务去实现一些功能 此时可能需要类似打开程序就自动运行Windows命令行命令的功能 方法 using UnityEngine using System Diagnostics using System T
  • 【Unity】运行时创建曲线(贝塞尔的运用)

    Unity 运行时创建线 贝塞尔的运用 1 实现的目标 在运行状态下创建一条可以使用贝塞尔方法实时编辑的网格曲线 2 原理介绍 2 1 曲线的创建 unity建立网格曲线可以参考 Unity程序化网格体 的实现方法 主要分为顶点 三角面 U
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • U3D游戏开发中摇杆的制作(NGUI版)

    在PC端模拟摇杆 实现控制摇杆让玩家或者物体移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine public clas
  • 游戏开发常见操作梳理系列之——玩家信息的显示系统

    在游戏中 有不少游戏在左上角会出现玩家的头像和等级以及血量 这就是玩家的信息显示系统 那么这些是如何制作的呢 接下来我将讲讲代码的操作 其它操作我会在其它笔记中一一说明 敬请期待 信息的显示相当简单就是控制一些UI 然后在其它系统里面填写相
  • 游戏开发常见操作梳理之角色选择一

    进入游戏后 我们经常会进入角色选择的界面 通常是左右两个按钮可以更改角色供玩家选择 对于这种界面我们通常使用数据持久化将角色信息存储起来 接下来的笔记中 我将使用自带的数据持久化系统对其进行操作 实现角色的选择页面 后续会更新xml系列的文
  • 游戏开发中常见系统梳理之背包系统的实现一

    游戏中几乎都存在大大小小的背包系统 接下来我将讲述背包系统具体是如何实现的 完整源码 以下是使用unity NGUI实现 使用txt配置的方法 后续更新UGUI Json实现的背包系统敬请期待 背包中的物品我们常常将其制作成预设体 通过改变

随机推荐

  • flex:1可以撑满剩余空间

    flex 1 的妙用 首先 flex 是 flex grow flex shrink flex basis的缩写 当 flex 取值为一个非负数字 则该数字为 flex grow 值 flex shrink 取 1 flex basis 取
  • MySql中left join、right join、inner join实例分析,union与union all的区别,Mybatis中CDATA []的用法

    inner join select from user a inner join grade b on a gid b id 只返回两个表中联结字段相等的行 left join select from user a left join gr
  • bokeh python_Python Bokeh数据可视化教程

    bokeh python Bokeh is an interactive Python data visualization library which targets modern web browsers for presentatio
  • cad隐藏图层命令快捷键_教你学会天正CAD局部隐藏对象技巧

    天正局部隐藏命令 JBYC 即局部隐藏的拼音首字母 其命令全称为TMKHIDE 适用于所有天正软件 建筑 电气 给排水 暖通 天正建筑的工具界面中是有此菜单的 且默认快捷键4为局部隐藏 6为恢复可见 其他软件并未显示 需要通过命令输入使用
  • 基于conda的相关命令

    conda 查看python版本环境 打开Anaconda Prompt的命令输入框 查看自己的python版本 conda env list 激活相应的python版本 环境 conda avtivate python 3 9 若输入以下
  • 我在工作中是如何使用【Linux】的

    目录 前言 一 常用命令 二 文件和目录处理 三 用户与组管理命令 四 进程管理命令 五 网络管理命令 六 帮助命令 七 磁盘管理 前言 大家好 这是我首篇博客 内容是linux工作需用到的内容 在这里我给大家总结出来了 希望多支持支持 感
  • 【Hello mysql】 mysql的事务

    Mysql专栏 Mysql 本篇博客简介 介绍mysql的事务 mysql的事务 事务的概念 事务功能测试 事务的隔离级别 如何理解隔离性 粗浅理解 隔离级别 查看和设置隔离级别 四种隔离级别详解 读 未提交 读 提交 可重复读 串行化 一
  • 6月17日实验课之“H.264文件解析”

    文章目录 1 实验要求 2 实验结果 2 1 SPS 2 1 1 profile idc 2 1 2 level idc 2 1 3 seq parameter set id 2 1 4 log2 max frame num minus4
  • jmeter+接口测试练习+接口关联+Json提取

    1 测试用例设计 2 因为要执行多条用例 所以在Jmeter添加了http信息头管理器和http请求默认值 3 查询用户信息接口需要用到登录的token 但要先登录再把token拿出来传到查询的信息头里 会出现登录信息已过期的提示 考虑用j
  • 从0开始写Vue项目-Vue页面主体布局和登录、注册页面

    1 从0开始写Vue项目 环境和项目搭建 慕言要努力的博客 CSDN博客 2 从0开始写Vue项目 Vue2集成Element ui和后台主体框架搭建 慕言要努力的博客 CSDN博客 一 主体布局 关于主体布局 我们刚开始肯定是做的死数据的
  • 考研数二第三讲 极限存在准则和两个重要极限和极限运算准则

    根据前面介绍的内容 具体推理数列以及函数的极限推理过程 在实际应用中极限的两大准则使用还是比较广泛的 大家需要多多关注 极限存在准则和两个重要极限 准则 I 夹逼准则 如果数列 xn yn zn 满足下列条件 证明 此函数分母的极限为 0
  • 稿费一般多少钱一千字_编写教材的稿费一般是多少

    我们知道编写教材是会受到一定的稿酬的 除了编写教材 还有图书 报纸 个人公开发表等等 公费出书都有可能获取一定的稿酬 那么稿酬是如何计算的呢 编写教材的稿费一般是多少 以下是根据 出版文字作品报酬规定 介绍了基本稿酬的标准 供大家参考 19
  • VUE项目中的全局格式化时间过滤器

    自定义格式化时间 一 问题 这是一个后台管理系统中的商品列表页 其中的时间这一项在调用接口后会发现是以毫秒来计算的 这样当然是不行的啦 要换算成我们日常使用的2020 04 07 17 13 这样的时间格式 二 解决办法 1 打开项目中的m
  • html5 比例尺,高德地图API之缩放比例尺控件+3D转换

    缩放比例尺控件 首先引入控件 amap scale 然后使用 map addcontrol 添加控件map margin 0 padding 0 list style none container width 100 height 100
  • Flutter 画板实现

    import package flutter material dart class DrawingBoard extends StatefulWidget override DrawingBoardState createState gt
  • Unity5.4.1与NGUI出现的问题Ignoring menu item NGUI because it is in no submenu!

    原文 http www tasharen com forum index php topic 14856 0 Hey Arenmook after upgrading to Unity 5 4 1 from 5 3 6p1 and upgr
  • 【CMake】教程:第2步 添加库

    CMake 教程 第2步 添加库 问题 当写的程序由多个模块组成 如何组织这些代码 以及如何利用模块代码生成的库呢 解答思路 编写模块代码 将模块代码生成库 编写调用程序 编译链接模块库 以求一个数的平方根为例 编写模块代码 MathFun
  • FreeRTOS任务基础知识

    多任务系统 对于单任务系统 每个任务的优先级都是相同的 多任务将一个大问题分成小问题 每个小任务完成的时间很短 看起来像同时完成 多任务系统通过任务调度器来安排任务优先顺序 FreeROTS根据是一个抢占式的实时多任务系统 高优先级的任务可
  • 保护您的企业数据免受.mkp勒索病毒:恢复加密数据库的关键策略

    引言 近年来 勒索病毒已经成为网络安全领域中最为恶劣和具有挑战性的威胁之一 它们通过加密用户的敏感数据 并勒索赎金来造成严重的经济和业务损失 91数据恢复研究院在本文将深入探讨一种名为 mkp的勒索病毒 并提供针对 mkp勒索病毒感染导致数
  • Unity+Pico 手柄按键控制

    一 定义手柄按键API 1 InputDevices GetDeviceAtXRNode 通过XRNode获取对应的设备 2 XRNode是一个枚举类型 包含LeftEye RightEye CenterEye Head LeftHand