Unity UNet Lobby 的一些测试信息
来源:互联网 发布:java 返回值为t泛型 编辑:程序博客网 时间:2024/05/22 02:20
Unity UNet Lobby 的一些测试信息
测试简介
测试Unity Unet相关的一些机制。包括客户端身份判断,同步变量,Cmd函数,Rpc函数和Lobby连接断开机制
测试前提
1.LobbyController脚本在LobbyPlayer预设体上,继承了NetworkBehaviour。该预设体在客户端加入大厅后自动创建。(有几个玩家创建几个)。并且该预设体的NetworkIdentity权限设置为LocalPlayerAuthority。
2.大厅和游戏场景都只会有两个玩家。一个作为主机(服务端+客户端),一个作为客户端。
3.还有一些辅助测试脚本,此处略。
4.这里的所有测试Cmd,Rpc都没有加权限限制。
开始测试
测试1:(测试客户端身份判断)
在LobbyController脚本上分别判断isServer,isClient因为有两个角色,所有会有两个LobbyPlayer,一个是LocalPlayer,一个是RemotePlayer
客户端身份判断 测试如下表:
Remote : √ Local : ×
Remote : × isClient Local : √
Remote : √ Local : √
Remote : √
测试2:(测试修改了同步变量的情况)
LobbyController脚本中有一个 [SyncVar] 同步变量:[SyncVar] int value = 50;主机和客户端都可以更改该同步变量的值(值+1)。⑴.没有Cmd请求服务器同步,单纯各自操作同步变量。⑵.有Cmd请求服务器同步:修改值通过Cmd请求服务器改变同步变量。
测试如下表:
Remote : 初始化设置的值50 ⑴.如果主机的值未变:
Local : 初始化设置的值50
Remote : 初始化设置的值50
⑵.如果主机的值变了:
Local : 初始化设置的值50
Remote : 主机变了的值51 如果通过主机修改值 Local : 值变成了51
Remote : 值变成了51 Local : 值变成了51
Remote : 值变成了51 如果通过客户端修改值 Local : 值不变50
Remote : 值不变50 Local : 值变成了51
Remote : 值变成了51 如果通过客户端修改值
(通过Cmd请求服务端修改同步变量) Local : 值不变50
Remote : 值变成了51 Local : 值变成了51
Remote : 值变成了51
测试3:(测试调用了Cmd函数后的执行情况)
LobbyController脚本中有一个 [SyncVar] 同步变量:[SyncVar] int value = 50;主机和客户端都可以更改该同步变量的值(值+1)。都是通过Cmd函数请求服务器改变同步变量。
[Command] void CmdValue(){ value++; }
测试如下表:
Remote : 执行Cmd 值变成了51 Local : 没执行Cmd 值变成了51
Remote : 没执行Cmd 值变成了51 客户端调用Cmd函数 Local : 没执行Cmd 值没变50
Remote : 执行Cmd 值变成了51 Local : 没执行Cmd 值变成了51
Remote : 没执行Cmd 值变成了51
测试4:(测试调用了Rpc函数后的执行情况)
LobbyController脚本中有一个 [SyncVar] 同步变量:[SyncVar] int value = 50;主机和客户端都可以更改该同步变量的值(值+1)。都是通过Rpc函数改变同步变量。
[ClientRpc] void RpcValue(){ value++; }
测试如下表:
Remote : 执行Rpc 值变成了51 Local : 执行Rpc 值变成了51
Remote : 执行Rpc 值变成了51 客户端调用Rpc函数 Local : 没执行Rpc 值没变50
Remote : 没执行Rpc 值没变50 报错:RPC Function xxxx called on client
Local : 没执行Rpc 值变成了51
Remote : 没执行Rpc 值变成了51
测试5:(测试调用了Cmd函数后,Cmd函数再调用Rpc函数的执行情况)
LobbyController脚本中有一个 [SyncVar] 同步变量:[SyncVar] int value = 50;主机和客户端都可以更改该同步变量的值(值+1)。都是通过Cmd函数调用Rpc函数,来改变同步变量。
[Command] void CmdValue(){ RpcValue(); } [ClientRpc] void RpcValue(){ value++; }
测试如下表:
Remote : 执行Cmd 执行Rpc 值变成了51 Local : 执行Rpc 没执行Cmd 值变成了51
Remote : 执行Rpc 没执行Cmd 值变成了51 客户端调用Rpc函数 Local : 没执行Cmd 没执行Rpc 值没变50
Remote : 执行Cmd 执行Rpc 值变成了51 Local : 执行Rpc 没执行Cmd 值变成了51
Remote : 没执行Cmd 没执行Rpc 值变成了51
测试6:(测试主机和客户端连接断开的情况)
主机和客户端目前已经在局域游戏中主机和客户端都可以从游戏场景返回大厅或退出myLobbyManager 为 NetworkLobbyManager的实例
// 返回大厅 public void OnClickBack(){ myLobbyManager.SendReturnToLobby (); } // 退出 public void OnClickCancel(){ if (isServer) { myLobbyManager.StopHost (); } else { myLobbyManager.StopClient (); } }
测试如下表:
0 0
- Unity UNet Lobby 的一些测试信息
- Unity5.1 新的网络引擎UNET(六) UNET Multiplayer Lobby
- Unity的 UNet组件介绍
- 学习Unet的一些过程
- 学习Unet的一些过程
- unity Unet中标签函数用法 以及一些功能的实现思路(全是干货)
- unity-unet-设置player的开始位置
- [Unity][unet][Android]电脑和电脑发送信息交互通讯
- unity VR Unet 多人互联的实现 以及unet组件的的坑
- Unity UNet 常见问题整理
- 【UNet】初识Unity Network,制作一个简单的网络聊天室
- unity官方内置网络unet的实例教程(一)
- unity官方内置网络unet的实例教程(二)
- unity官方内置网络unet的实例教程(三)
- unity官方内置网络unet的实例教程(四)
- unity官方内置网络unet的实例教程(五)
- unity官方内置网络unet的实例教程(六)
- unity官方内置网络unet的实例教程(七)
- 关于4次握手及握手之前PMK的生成的理解
- 腾讯2017暑期实习生OMG事业群一面面经
- CMD 创建oracle用户
- PS 学习笔记(一)
- python中plt.imshow(img)显示不了图片
- Unity UNet Lobby 的一些测试信息
- Python代码执行过程
- 51nod 1276 岛屿的数量
- 子网掩码详解
- Unit14 文档
- wifi的开启 扫描 获取以连接过的wifi配置
- 23种设计模式模式详解 Java 结构型模式(二)
- 动态规划―最大子矩阵
- PHP在二维数组里增加元素(保留健名或不保留健名)