当前位置: 首页 > news >正文

桂林网站制作网站免费自助建站网站

桂林网站制作网站,免费自助建站网站,能浏览的海外网站,佳木斯城乡建设局网站一、需求 在联机时通常有加入房间这个步骤,在mirror示例中也有相应的案例,但是那个比较复杂,我们做教育科普类不需要如此复杂,傻瓜式操作基本就可以了,所以我简化了步骤,省略了点击准备按钮这一步骤&#…

一、需求

在联机时通常有加入房间这个步骤,在mirror示例中也有相应的案例,但是那个比较复杂,我们做教育科普类不需要如此复杂,傻瓜式操作基本就可以了,所以我简化了步骤,省略了点击准备按钮这一步骤,具体功能有:搜索房间、加入房间、客户端断线重连等。

二、实现

1、MyNetworkManager脚本,这个脚本继承NetworkManager类,可以重写一些关键方法,方便使用。

说明:

1.首先重写OnServerAddPlayer方法,该方法是在联机时生成玩家预制体时在客户端和服务器端调用的,方法内判断在线人数,当达到规定人数时,通知所有玩家更新信息,用ServerController脚本做了一个信息中转,通过ServerController脚本广播所有客户端进行信息更新,具体内容后面讲。

2.OnClientDisconnect在断开连接时,客户端调用的方法。

3.OnServerDisconnect /在断开连接时,服务器调用的方法。

各种重写方法都有注释,自己查看即可。

using Mirror;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MyNetworkManager : NetworkManager
{//这个函数的默认实现是从playerPrefab中创建一个新的播放器对象。public override void OnServerAddPlayer(NetworkConnectionToClient conn){base.OnServerAddPlayer(conn);//判断当前在线人数。如果是两个人if (NetworkServer.connections.Count == 2){//让服务器通知所有玩家,更新信息。FindObjectOfType<ServerController>().RcpEnterRoom();}}public override void OnServerConnect(NetworkConnectionToClient conn){base.OnServerConnect(conn);}//在断开连接时,客户端调用的方法public override void OnClientDisconnect(){base.OnClientDisconnect();if (NetworkClient.active){MirrorUIController.Instance.PlayerDisconnected();}}//在断开连接时,服务器调用的方法public override void OnServerDisconnect(NetworkConnectionToClient conn){base.OnServerDisconnect(conn);if (NetworkServer.active){MirrorUIController.Instance.PlayerDisconnected();}}}

2、ServerController脚本, 继承NetworkBehaviour,主要用来做通信中转管理,或者说同步管理,用来播控所有客户端,由于不是实例化出来的,并且不是挂载在玩家预制体身上的,所以在使用Command标记时,要将requiresAuthority参数设为False,否则在别的脚本没有权限调用这个方法。

using Mirror;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ServerController : NetworkBehaviour
{/// <summary>/// 通知所有玩家有新用户进入房间/// </summary>[ClientRpc]public void RcpEnterRoom(){//各个客户端调用ui更新MirrorUIController.Instance.AddPlayer();}//将requiresAuthority设为false,是关闭了Command标记方法的调用权限,让你可以在非实例化出来的脚本中可以调用。[Command(requiresAuthority = false)]//测试通信,增加数字public void CmdAddNum(){RcpAddNum();}[ClientRpc]public void RcpAddNum(){MirrorUIController.Instance.AddNum();}
}

未完待续……

http://www.hkea.cn/news/351261/

相关文章:

  • 什么网站可以做游戏机疫情最新数据消息
  • 企业网站开发报价单巩义网络推广
  • 网站开发技术交流群免费域名申请网站
  • 手机网站一键分享怎么知道自己的域名
  • 做网站 做好把我踢开北京网站搭建哪家好
  • 网站如何做引流刷外链网站
  • wordpress 站点地址关注公众号一单一结兼职
  • 合肥网站建设第一品牌个人seo外包
  • 省心的免费建站服务热线四川seo关键词工具
  • 网站总是跳转dede58seo对网络推广的作用是
  • seo排名怎么提高seo排名优化软件有用
  • 江门论坛建站模板黑帽seo联系方式
  • 政府网站信息内容建设专项检查搜索引擎排名优化seo课后题
  • 个人做的好的淘宝客网站软文营销推广
  • 城乡建设委员会网站河北seo推广公司
  • 某网站栏目策划2022十大热点事件及评析
  • 德清网站建设中心优化大师官方免费下载
  • 生日网页制作免费网站制作代做网页设计平台
  • 学校类网站特点游戏优化大师官网
  • 手机电视网站大全河南网站建设定制
  • zblog做的商城网站上海有实力的seo推广咨询
  • 免费网站模板psd网络营销的整体概念
  • 网站模板下载破解版环球军事新闻最新消息
  • 徐汇苏州网站建设东莞免费建站公司
  • 厦门网站建设哪家强深圳网站维护
  • 政府网站新媒体平台建设关键词权重查询
  • 重庆网站建设制作公司百度客服人工在线咨询电话
  • 微信公众号平台入口官网奶盘seo伪原创工具
  • 泉州网站建设公司推荐宁德市地图
  • 大厂县住房和城乡建设局网站刷百度指数