首页 文章

UWP和HoloLens Unet [命令]

提问于
浏览
1

我有两个不同的Unity项目,一个是HoloLens应用程序,另一个是桌面应用程序 . 我的目标是通过桌面应用程序操作HoloLens应用程序中的对象 . 目前,当HoloLens是主机而桌面充当客户端时,我有Unet工作 . 通过HoloLens进行操作并将其传输到桌面应用程序可以正常工作,但反之亦然 . 当它充当服务器时,我无法连接到桌面应用程序 . 我猜这与世界位置的物体锚定有关,但我不确定 .

其他人建议HoloLens可以是服务器,客户端可以通过[Command]实现方法向服务器发送命令 . 我在桌面应用程序上添加了一个playerPrefab,以便它被识别为能够让我发送这些命令的播放器 . 不幸的是,这似乎不起作用 . 这会导致以下错误消息:“找不到1的Spawn场景对象” . 将预制件添加到场景中并将其作为播放器在NetworkManager上拖动,但这会导致对象不是实际的播放器(禁止我向服务器发送命令) .

我确实找到了一种不同的方法:授予非玩家对象权限 . 我尝试按如下方式执行此操作:

  • 在HoloLens上启动服务器

  • 连接到桌面应用程序

  • 调用Rpc方法来分配客户端权限

不幸的是,这导致了一个不同的错误消息:“在肝脏(UnityEngine.GameObject)上找不到接收器[-1367249836],服务器和客户端应该具有相同的NetworkBehaviour实例[netId = 1]”

我基本上想要实现的是拥有一个非播放器对象(因为桌面应用程序纯粹用于操作HoloLens中的对象)能够更改服务器上的对象(HoloLens) .

1 回答

  • 0

    我同意上述评论,即她应该在同一个项目中开发 . 我们在工作中成功创建了一个远程支持应用程序,允许桌面用户与HoloLens用户进行交互 . 我们通过在一个Unity项目中开发两个场景来实现这一点 .

    • 桌面场景

    • HoloLens场景

    通过这样做,我们可以使用相同的脚本来使应用程序在所有设备上运行 . (我们不得不抛出一些if语句来使某些代码设备具体化) . 对于桌面,部分3D场景构建没有问题 .

相关问题