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

北京工商注册登记网官网网络优化基础知识

北京工商注册登记网官网,网络优化基础知识,提高网站速度,黄金网站文章目录 Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三)前情提要客户端部分 Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三) 前情提要 单例泛型类 using System.Collections; using System.Collections.Generic; …

文章目录

  • Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三)
    • 前情提要
    • 客户端部分

Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三)

前情提要

  • 单例泛型类

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;public class MyrSingletonBase<T> : MonoBehaviour where T : MonoBehaviour
    {private static T instance;public static T Instance {get{return instance;}}protected virtual void Awake() {instance = this as T;}protected virtual void OnDestroy() {instance = null;}
    }
  • ManagerBase

    using System.Collections;
    using System.Collections.Generic;
    using Net;
    using UnityEngine;public abstract class ManagerBase : MyrSingletonBase<ManagerBase>
    {public List<MoonBase> Monos = new List<MoonBase>();public void Register(MoonBase mono){if (!Monos.Contains(mono)){Monos.Add(mono);}}public virtual void ReceiveMessage(Message message){if (message.Type != GetMessageType()){return;} foreach (var mono in Monos){mono.ReceiveMessage(message);}}public abstract byte GetMessageType();
    }
    • 消息中心

      using System.Collections;
      using System.Collections.Generic;
      using Net;
      using UnityEngine;public class MessageCenter : MyrSingletonBase<MessageCenter>
      {public static List<ManagerBase> Managers = new List<ManagerBase>();public void Register(ManagerBase manager){if (!Managers.Contains(manager)){Managers.Add(manager);}}public void SendCustomMessage(Message message){foreach(var manager in Managers){manager.ReceiveMessage(message);}}public static void SendMessage(Message message){foreach(var manager in Managers){manager.ReceiveMessage(message);}}
      }
      • manager下的组件基础

        using System.Collections;
        using System.Collections.Generic;
        using Net;
        using UnityEngine;public class MoonBase : MonoBehaviour
        {public virtual void ReceiveMessage(Message message){}
        }
      • uiManager(绑在canvas上)

        using System.Collections;
        using System.Collections.Generic;
        using Net;
        using UnityEngine;public class UiManager : ManagerBase
        {void Start(){MessageCenter.Instance.Register(this);}public override byte GetMessageType(){return MessageType.Type_UI;}}
  • PhotonManager

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using ExitGames.Client.Photon;
    using Net;public class PhotonManager : MyrSingletonBase<PhotonManager>, IPhotonPeerListener
    {private  PhotonPeer peer;void Awake() {base.Awake();DontDestroyOnLoad(this);}// Start is called before the first frame updatevoid Start(){peer = new PhotonPeer(this, ConnectionProtocol.Tcp);peer.Connect("127.0.0.1:4530", "PhotonServerFirst");}void Update(){peer.Service();}private void OnDestroy() {base.OnDestroy();//断开连接peer.Disconnect();    }public void DebugReturn(DebugLevel level, string message){}/// <summary>/// 接收服务器事件/// </summary>/// <param name="eventData"></param>public void OnEvent(EventData eventData){//拆包Message msg = new Message();msg.Type = (byte)eventData.Parameters[0];msg.Command = (int)eventData. Parameters[1];List<object> list = new List<object>();for (byte i = 2; i < eventData.Parameters.Count; i++){list.Add(eventData.Parameters[i]);}msg.Content = list.ToArray();MessageCenter.SendMessage(msg);}/// <summary>/// 接收服务器响应/// </summary>/// <param name="operationResponse"></param>public void OnOperationResponse(OperationResponse operationResponse){if (operationResponse.OperationCode == 1){Debug.Log(operationResponse.Parameters[1]);}}/// <summary>/// 状态改变/// </summary>/// <param name="statusCode"></param>public void OnStatusChanged(StatusCode statusCode){Debug.Log(statusCode);}/// <summary>/// 发送消息/// </summary>public void Send(byte type, int command, params object[] objs){Dictionary<byte, object> dic = new Dictionary<byte,object>();dic.Add(0,type);dic.Add(1,command);byte i = 2;foreach (object o in objs){dic.Add(i++, o);}peer.OpCustom(0, dic, true);}}

客户端部分

  1. 搭个页面

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2kLIN0oV-1692427488913)(../AppData/Roaming/Typora/typora-user-images/image-20230808114712080.png)]

  2. panel上挂上脚本

    using System.Collections;
    using System.Collections.Generic;
    using Net;
    using UnityEngine;
    using UnityEngine.UI;public class LoginPanel : MoonBase
    {//账号和密码输入框public InputField AccountField;public InputField PasswordField;// Start is called before the first frame updatevoid Start(){UiManager.Instance.Register(this);}// Update is called once per framevoid Update(){}public override void ReceiveMessage(Message message){//判断是否是自己该传递的消息base.ReceiveMessage(message);//判断消息命令switch (message.Command){case MessageType.Account_Register_Res:Debug.Log("注册成功");break;case MessageType.Account_Login_res:Destroy(gameObject);break;}}//注册public void Register(){PhotonManager.Instance.Send(MessageType.Type_Account, MessageType.Account_Register, AccountField.text, PasswordField.text);}//登录public void Login() {PhotonManager.Instance.Send(MessageType.Type_Account, MessageType.Account_Login, AccountField.text, PasswordField.text);}
    }
  3. 绑定对象,绑定事件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jILwqbyK-1692427488914)(../AppData/Roaming/Typora/typora-user-images/image-20230808160430040.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lmhcdlev-1692427488915)(../AppData/Roaming/Typora/typora-user-images/image-20230808161310270.png)]

http://www.dinnco.com/news/76533.html

相关文章:

  • 做几何图形和网站排名优化公司哪家靠谱
  • 学网站开发有什么好处电商平台app大全
  • 某互联网公司触屏网站html+css网页制作成品
  • 如何建设一个个人网站seo网站关键词排名优化
  • 正能量不良网站进入窗口免费阅读网推怎么做最有效
  • 单页淘客网站怎么建设安徽网络优化公司
  • 网上赚钱靠谱吗安卓优化大师官方版
  • 网站推广代运营西安seo培训学校
  • 网站建设工作的作用百度推广点击收费标准
  • 如何请人做网站网络推广优化是干啥的
  • 欧美手表网站建站系统哪个好
  • 前端做视频直播网站网站推广公司排行榜
  • 黑龙江省网站前置审批网站站长工具麻豆
  • 汉中网站开发怎么自己开发网站
  • 石家庄 外贸网站建设公司优势的seo网站优化排名
  • 网站建设那个网站好网站建立具体步骤是
  • 建设个人网站多少钱软文推广怎么做
  • 网站建设多少钱合肥百度推广公司哪家好
  • 0元开网店seo入门培训
  • 网站服务器免费吗网络营销策划推广公司
  • 网站建设咨询服务合同免费下载app并安装
  • 网站seo案例站长工具
  • wordpress小程序地图搜索优化推广公司
  • 做网站一定要买服务器么北京建站优化
  • 网站免费建站 网页不需要备案百度网站名称
  • 网站制作厂家电话多少武汉seo工厂
  • wordpress DUX文章加挂产品seo工程师
  • 单页网站编辑器宁波pc营销型网站制作
  • 北京网络搭建公司优化大师平台
  • 设计网站建设书南昌我也要投放广告