我有一个Unity的Hololens 2项目使用MRTK3,我试图添加一个可视化工具到我的手中,找不到任何教程或解释如何做到这一点.

我试着在MRTK XR钻机中添加RiggedHandVisualizer.cs脚本到我的手中,但它似乎没有做任何事情,我不知道如何配置这个脚本以及如何使它工作.在MRTK 2中,我看到你可以启用/禁用手网格,也许在MRTK 3是这样的选项,但我看不到它.我试图部署应用程序的全息透镜,希望它是工作只有当,应用程序正在耳机上运行,但手网仍然丢失.

推荐答案

你在RiggedHandVisualizer的道路上走对了.看起来他们是故意避免在光学透视设备上进行可视化,这是有意义的,因为你的实际手和可视化之间的轻微延迟可能会令人不安.无论如何,如果你想玩或者确实需要可视化,下面是你可以做到的:

Visualizing your whole hand in the form of a virtual hand

  1. 假设您正在使用MRTK XR Rig,请访问: MRTK XR Rig - Camera Offset - MRTK LeftHand Controller/MRTK RightHandController在场景层次 struct 中
  2. XRController组件上,向下滚动到第Model
  3. ModelPrefab以下,您将看到一个已经指定的变换,例如openxr_right_hand.如果有兴趣的话,看看它.它有RiggedHandMeshVisualizer组件的附件.您可以看到,默认情况下,ShowHandsOnTransparent被禁用,这会影响HL2
  4. 你不能/不应该修改它,因为它在readonly文件夹中.但是,您可以复制预制件并将其分配到XRController组件上.在那个预制件上,一定要勾选ShowHandsOnTransparent

Visualizing hand joints

  1. 要可视化手部关节,请在场景中的某个地方添加HandJointVisualizer脚本,例如手部控制器
  2. 将一个简单的cube网格指定为JointMesh,例如,将MRTK提供的HandJointMaterial指定为JointMaterial

Csharp相关问答推荐

无法将blob发送到Azure -缺少HTTP标头异常

C#将参数传递给具有变化引用的变量

将修剪声明放入LINQ中

. NET 8 HttpClient post参数将其情况更改为camel'

使用LayoutKind在C#中嵌套 struct .显式

如果属性名为xyz,我需要使用System.Text.Json修改字符串类型的值""<>

如何将Kafka消息时间戳转换为C#中的日期和时间格式?

使用C#中的SDK在Microsoft Graph API上使用SubscribedSkus的问题

在ASP.NET Core Web API项目中通过中间件修改`Request.Path`不会更改使用的控制器/操作

StackExchange.Redis.RedisServerException:调用ITransaction.ExecuteAsync()时出现错误未知命令取消监视

当使用Dapper映射DBNull时,我可以抛出异常吗?

异步任务调用程序集

如何在.NET Maui中将事件与MVVM一起使用?

在等待OnGetAsync时打开Razor Page显示微调器

使用未赋值的、传递的局部变量

Maui:更改代码中的绑定字符串不会更新UI,除非重新生成字符串(MVVM)

数据库操作预计影响1行,但实际影响0行; after _dbContext.SaveChanges();

Cmd中的&ping.end()";有时会失败,而";ping";总是有效

如何使用LINQ在C#中填充列表列表?

ASP.NET核心中的授权,如何在DbContext启动之前提供租用ID