UWP 和 HoloLens Unet [命令]

UWP and HoloLens Unet [Command]

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

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

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

  1. 在 HoloLens 上启动服务器
  2. 连接到桌面应用程序
  3. 调用 Rpc 方法来分配客户端权限

不幸的是,这会导致不同的错误消息:"Found no receiver for incoming [-1367249836] on Liver(UnityEngine.GameObject), the server and client should have the same NetworkBehaviour instances[netId=1]"

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

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

  1. 桌面场景
  2. HoloLens 场景

通过这样做,我们能够利用相同的脚本来使应用程序在所有设备上运行。 (我们不得不加入一些 if 语句来使某些代码设备特定)。桌面部分,3D场景构建没有问题