SenseGlove Nova 2+Unity开发笔记3

插件中Calibration Void是一项标准场景,位于SenseGlove/Calibration文件夹内。

它有两种变体:一种适用于非XR应用**(CalibrationVoid)** ,另一种适用于XR应用**(Calibration Void_XR)**。

它借助逻辑脚本 SG_CalibrationVoid来通过上述描述的 SGCalibrationSequence 启动和结束校准过程。

这一场景将"锁定"用户于一个专用界面中,界面上的指示会随着用户的视线移动而变化,并通过示例手势展示一系列动作以进行校准。如果用户的手部动作已足够充分,他们可通过做出"竖起大拇指"的示意来确认校准过程,之后便可(自动)进入下一场景。

发布的时候使用这个场景作为第一个场景,以保障手套在一开始就已经校准好了。

场景中有三个自动过度到下个场景的方法,可以让SG_CalibrationVoid脚本自动切换至预设场景。一旦检测到首个场景,CalibrationVoid便会从后台加载此后续场景,因此一旦校准完成,这一切换过程便可即刻实现。

1.changeSceneAfter

如果这个值小于0校准完后将不会进入任何场景。

2.goToSceneIndex

通过UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(int sceneBuildIndex)加载场景名称。

3.goToSceneName

通过UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(string sceneName)加载场景名称。

CalibrationVoid 脚本有一个CalibrationCompleted事件,该事件在算法完成后触发。你可以通过此事件来调用你自己的场景切换。

重置校准

在会话期间,您可能需要重新校准手部。例如,在切换用户或应用启动后戴上手套时。

在代码中:

重置校准的最简单方法是调用静态函数

SGCore.HandLayer.ResetCalibration(true); //Resets the right Hand profile

SGCore.HandLayer.ResetCalibration(false); //Resets the left hand profile

如果引用了任何SG_HandComponent 或SG_TrackedHand

复制代码
SG_TrackedHand myHand;
SGCore.HandLayer.ResetCalibration(myHand.TracksRightHand());

Returning to the CalibrationVoid

If you have included the Calibration Void inside your simulation, you can return your used to said scene to automatically reset calibration, and re-run the calibration sequence with instructions

(这块电脑翻译的我不喜欢,贴原文)

相关推荐
NetX行者3 小时前
Rust 初体验:一个全栈工程师的编译器“毒打“笔记
开发语言·笔记·rust
年少无知且疯狂3 小时前
【Unity】Shader spine动画冻结效果
unity·spine
热爱生活的五柒3 小时前
zotero能导入已经下载好的pdf文件嘛,并且点击条目时,能直接看到下载的pdf文件嘛,我还希望能在里面做笔记
笔记·pdf
淡海水4 小时前
05-02-源码-Boehm GC标记阶段
算法·unity·c#·游戏引擎·gc
海绵宝宝转agent5 小时前
2026-10-19学习笔记
笔记·学习
金色光环5 小时前
【概率论详细笔记】泊松分布是怎么来的?应该怎么用?
笔记·概率论
又見山5 小时前
双向链接的本质:链接不是功能,是思考留下的痕迹
笔记·obsidian
云水初5 小时前
【agent篇】RAG Agent避坑指南(附高级RAG Agent汇总)
开发语言·笔记·python·学习·langchain·agent·rag
JasmineX-16 小时前
数据结构(笔记)——顺序栈
c语言·数据结构·笔记
坤坤子吖6 小时前
Linux 线程同步与互斥——互斥锁
linux·服务器·c++·笔记·学习