【零基础教学】Unet局域网联机的实现——最基础的Unity联网实现方式(4)

第四部分——位置的控制


  • 学习前说明:

项目源码:链接:https://pan.baidu.com/s/1g78L9QODXdRjoVcm-odRSg 密码:0pzo

源码引用自Siki老师的Unet基础系列教程,文章主要以解释为主,后期会添加一些Siki老师源码以外的新东西,敬请期待。

文中用红色显示的内容为我自己命名的关键名词,例如场景名、代码名、阐述代码或方法所实现的功能 等等

文中用蓝色显示的内容为UI元素、组件名或是变量名,例如Button、InputField、NetworkManager 等等

文中用紫色显示的内容为当前所解释的代码部分。例如:

            这里使用一个Console命令完成输出语句

public void ShowMessage()

{

     Console.WriteLine("Hello World.");

}

本文中仅讨论Unet用于局域网的情况

如有互联网联网需求,请自行查询Unity与Socket协议结合相关的文章,不推荐使用Unet完成

本文主要服务于渤海大学交互式虚拟现实开发基地,为求尽可能的细致和易懂,可能有些地方写的过于冗杂,不喜勿喷


  • 功能简述

面对多玩家加入的情况,可能存在多人同时或被迫生成于同一点(0,0,0)。而类似英雄联盟那种5人血池站位的登场方式,又或者绝地求生的那种多点乱序生成武器的出现方式(但是它只能控制角色的位置,无法控制其他物体的位置)。可能就需要自己手动控制这些点位的分布。


  • 实例分析

NetworkStartPosition(客户端出生点),是为加入场景的客户端提供默认的出生位置,具体数量由实际需求决定,可以同时添加多个,正常添加需要按照以下步骤:

1.在Main场景创建一个空物体命名为NetworkStartPosition,同时添加同名组件NetworkStartPosition

2.根据实际需求数量,复制n个NetworkStartPosition,分散到各个位置

3.回到Lobby场景,修改NetworkManager组件中的Player Spawn Method(角色分布方式)

        Random是乱序生成,类似吃鸡的武器分布

Robin Round(轮转)是根据点位的排列顺序依次生成,类似联盟的登场方式

这样就可以根据自己的需求以不同的方式出生啦!


就这样吧,掰掰。

猜你喜欢

转载自blog.csdn.net/qq_35004993/article/details/82226359