每个人都有自己的知识体系。
Toggle navigation
Home
随笔
C#/.Net
树莓派 / Raspberry
皓月汉化组
Beego
Golang
OxideMod
apache
haproxy
windows
Java
Objective-C
日语/罗马音歌词/日语常识
MongoDB
python
电学
公告
Minecraft服务器-公告
NanoPi
C4D (CINEMA 4D)
生活
推流/m3u8/rtmp/rtsp
Unity3d
ffmpeg
数据结构
区块链
tarui
UnityForPSVita
About Me
Archives
Tags
Unity Mirrio 基础构建方式(两种)
2022-05-17 14:39:49
161
0
0
akiragatsu
个人理解的两种方式 ##方式一 房间模式:(自带一个需要准备等待功能的模式) ###创建场景 Offline,Room,GamePlay 作用:区分Online和非Online模式 ###准备脚本 通过create->mirror 创建如下脚本 ***[NetworkRoomManager]*** 作用:房间管理,有房间创建,连接,等房间相关的回调 基于房间补充相关逻辑 ***[NetworkRoomPlayer]*** 作用:包含房间里的玩家状态和回调 ***[NetworkBehaviour]*** 创建多个NetworkBehaviour : 如,NetworkBehaviour 改为 myPlayer NetworkBehaviour 改为 myItem 作用: 有了本脚本,才会标记告知服务器需要同步本对象 继承了MonoBehaviour的Network脚本, 可以衔接Update等函数书写自己的逻辑, 取到玩家网络状态,如 isServer 如果是此对象是在服务器上运行的(包括服务器+客户端一体的主机),则返回true isServerOnly 如果是此对象仅在服务器运行的(而非包含客户端的主机),则返回true isClient 如果此对象已经存在,且处于客户端上(包括主机的客户端),则返回true 等等 ###准备预制体 创建空物体,命名为RoomPlayer,挂MyNetworkRoomPlayer 创建胶囊,命名为Player,挂MyPlayer 创建Cube, 命名为Item 挂myItem 客户端操作权限: Player预制体上的挂NetworkTransform脚本的ClientAuthority ***一定要勾选上***,否则没有客户端操作其状态的权限。 在玩家或者我物体预制体上挂载,NetworkIdentity 脚本 (往往挂载其他Mirror脚本时,NetworkIdentity脚本会自动挂载) ###创建管理组件 1.在Offline场景空物体,挂MyNetworkRoomManager脚本 挂载好在线和离线对应的场景,Player预制体,以及房间相关的预制体和场景 ![title](/api/file/getImage?fileId=62834b35bbb3220ae400a1a5) 2.同时挂上NetworkManagerHUD, 启动时开启Host服务器和连接的显示UI ![title](/api/file/getImage?fileId=62834c69bbb3220ae400a1aa) ###写一个简单的操作 在myPlayer脚本(NetworkBehaviour)中加入移动操作。 void Update() { if (!isLocalPlayer) return;//只操作本地客户端 transform.position += new Vector3(Input.GetAxis("Vertical") * Time.deltaTime ,0, Input.GetAxis("Horizontal") * Time.deltaTime ); } ### 测试同步 添加所有场景到Buildsetting,然后打包,两端互联 一个选Host(Server+Client)开启服务器主机 另一个或者几个端 点Client 连接ip 或者localhost 然后所有人点Ready,游戏和同步开始 会NetworkBehaviour脚本下的对象状态进行同步 ##方式二 普通模式 ####创建管理 场景中 创建空物体改名为NetworkManager, 挂载脚本NetworkManager,KcpTransport,NetworkManagerHUD ####创建玩家 创建一个胶囊提,挂载脚本NetworkIdentity 只有挂载了NetworkIdentity,网络中枢才能识别到这个物件,并对之进行同步。 然后拖拽本胶囊体到上面到场景中的NetworkManager中Player Prefab #### 打包,运行两个示例 分别创建主机Host,和点Client,进入游戏会同步玩家进入和销毁
Pre:
Unity Mirror 基础机制SyncVar
Next:
解决 :此实现不是 Windows 平台 FIPS 验证的加密算法的一部分的解决方案
0
likes
161
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Submit
Sign in
to leave a comment.
No Leanote account?
Sign up now.
0
comments
More...
Table of content
No Leanote account? Sign up now.