在Unity3d中使用现有的Netcode/Mirror组件实现Hololens、Android和Pc端的三方通信,可以指定一平台为服务器端,其他的两平台多为客户端,不过通常是进行两个平台的通信即可。在这片文章中,可以实现平移、缩放以及旋转的同步

具体步骤如下:

版本:unity2020.3LTS、VS2019

一、配置

1、加载包netcode,在window中加载netcode包使用URL:com.unity.netcode.gameobject

unity 开发mud客户端 unity3d客户端_Network

2、创建空的对象(命名为NetworkManager),加载NetworkManager组件,选择U-net Transport,并添加Network Transform组件,以方便实现同步。

unity 开发mud客户端 unity3d客户端_unity_02

3、创建一个目标对象,命名为Player,在对象上添加Network Object组件

4、在Project菜单里面的Assets中创建新的一个文件夹名为Scrips,并在里面添加两个新的组件,一个为HelloWorldManager一个为HelloWorldPlayer。(其中的HelloWorldManager类似之前的Network Manager Hub将键显示出来)

unity 开发mud客户端 unity3d客户端_hololens_03

 5、将HelloWorldManager挂在上述的空对象上,HelloWorldPlayer挂在建立的目标对象上,然后将目标对象移动到Assets新建的Prefab目录中,并将其在Hierarchy中删除。

6、将Prefabs文件中的Player对象加入至Hierarchy中的NetworkManager的NetworkMangaer组件如下属性中。

unity 开发mud客户端 unity3d客户端_unity_04

7、 修改NetworkManager对象的U-Net Transport组件中的连接的Ip地址

unity 开发mud客户端 unity3d客户端_交互_05

二、部署

1、前提准备

PC和Hololens端:打开电脑的开发者模式,并且将当前网络设置成专用网络。Vs中必须有Windows平台开发(必须选择上usb连接,否则后面部署hololens上会失败)、C++桌面开发、两个游戏开发都要有。

 2、Pc部署:先转换成对应平台,修改连接的ip地址以及如下地方,然后build

unity 开发mud客户端 unity3d客户端_hololens_06

 

unity 开发mud客户端 unity3d客户端_Network_07

 Andoird部署:转换平台,修改ip后build

Hololens部署:

(1)转换平台,我使用的是Usb连接,故转换平台后的配置如下:

unity 开发mud客户端 unity3d客户端_unity_08

(2)值得注意的是,Hololens还需要进行网络上的一些配置的选择,否则不会成功,

unity 开发mud客户端 unity3d客户端_hololens_09

 (3)使用vs进行hololens设备上的部署,build之后打开里面的sln文件,进行如上设置之后进行生成。

unity 开发mud客户端 unity3d客户端_Network_10

在这再三强调,usb进行连接失败的原因是Vs没有下载usb连接。