Unity-NetWorking学习

NetWorkManager

unity网络模块 unity network教程_服务器


首先在场景中建立一个空物体,挂上NetworkManager脚本,

Dont Destroy On Load:是否在场景切换时不被销毁

Run In Background:是否在后台运行控制程序

Log Level:专门针对网络日志消息的用户的日志级别

Offline Scene:切换到离线状态时的场景

Online Scene:切换到在线状态时的场景

Use WebSockets:NetworkServer监听WebSockets连接,而不是普通的传输层连接

Network Address:网络连接的地址

Network Port:网络连接的端口号

Server Bind To IP:标记,告诉服务器是否绑定到特定的IP地址

Script CRC Check:在服务器和客户端之间使用脚本CRC检查的标志。

Max Delay:在连接上发送数据包之前的最大延迟

Max Buffered Packets:缓冲包的最大数量

Packet Fragmentation:分段包

MatchMaker Host URI:NetwrokMath与主机通信的URI

MatchMaker Port:MatchMarker的端口

Match Name :Match名字

Maximum Match Size:最大匹配大小

Player Prefab:角色预制体

Auto Create Player:是否自动创建角色

Player SpawnMethod:角色创建方法 ①Random:随机 ②Round Robin循环

Registered Spawnable Prefabs:服务器中的预制体

Advanced Configuration:游戏运行的兼容设定

unity网络模块 unity network教程_游戏开发_02


Min Update Timeout:最低更新延时

Connect Timeout:连接延时

Disconnect Timeout:断开连接延时

Ping Timeout:Ping延时

Thread Awake Time:线程唤醒时间

Reactor Model:反应模型

Reactor Max Recv Message:最大反应接收消息

Reactor Min Sent Message:最大反应发送消息

Use Network Simulator:使用网络模拟器

Network Manager HUD

unity网络模块 unity network教程_游戏开发_03


Show Runtime GUI:显示运行GUI

GUI Horizontal Offset:水平偏移量

GUI Vertical Offset:垂直偏移量

Network Identity

网络物体的基本组件,挂在游戏对象上

unity网络模块 unity network教程_游戏开发_04


Server Only:此对象是否只在游戏作为服务器运行时存在

Local Player Authority:本地角色的权限

Network Transform

网络间同步Transform数据

unity网络模块 unity network教程_客户端_05


Network Send Rate(seconds):网络发送速率

Transform Sync Mode:同步对象位置的模式

Movement Threshold:对象在不发送移动同步更新的情况下可以移动的距离

Velocity Threshold:网络上同步的最小速度差

Snap Threshold:如果移动更新将对象从其当前位置进一步移动到该值,则该对象将吸附到该位置,而不是平滑移动。

Interpolate Movement Factor:支持同步运动的插值。

Rotation Axis:旋转轴

Interpolate Rotation Factor:差值同步旋转

Compress Rotation:压缩旋转

Sync Angular Velocity:同步角速度注意事项:

判断是否是本地玩家用:isLocalPlayer(脚本继承自NetworkBehaviour才可使用)

当本地玩家进行操作时,同步到其它玩家,将操作方法改为Command方法(方法名前+Cmd)

unity网络模块 unity network教程_unity网络模块_06

在客户端调用,服务器端执行(必须要有NetworkIdentity组件)

避免数据不一致,使用SyncVar特性:服务器的值能自动同步到所有客户端,当数值发生改变时,会调用OnChangeHealth方法

unity网络模块 unity network教程_Network_07


ClientRpc:服务端调用,客户端执行(方法名前面+Rpc)

unity网络模块 unity network教程_unity网络模块_08


修改生成位置:位置点要添加Network Start Position组件,脚本中NetworkStartPosition[] Spawn = FindObjectsOfType();