第四部分——位置的控制
-
学习前说明:
项目源码:链接: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(轮转)是根据点位的排列顺序依次生成,类似联盟的登场方式
这样就可以根据自己的需求以不同的方式出生啦!
就这样吧,掰掰。