UWP和HoloLens Unet [命令]

时间:2018-03-30 13:49:02

标签: unity3d uwp hololens unity3d-unet unet

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

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

我确实找到了一种不同的方法:授予非玩家对象权限。我试着这样做:

  1. 在HoloLens上启动服务器
  2. 连接到桌面应用程序
  3. 调用Rpc方法以分配客户端权限
  4. 不幸的是,这导致了一条不同的错误消息:“在肝脏(UnityEngine.GameObject)上找不到传入[-1367249836]的接收器,服务器和客户端应该具有相同的NetworkBehaviour实例[netId = 1]”

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

1 个答案:

答案 0 :(得分:0)

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

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