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

做网站用虚拟主机好不好聚合广告联盟

做网站用虚拟主机好不好,聚合广告联盟,sql server网站建设,临沂网站建设服务文章目录 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.hkea.cn/news/135498/

相关文章:

  • php企业网站无限制源码网络营销方案设计
  • 动漫网站开发与建设百度网盘网页版入口官网
  • 咸阳做网站长沙网络营销外包哪家好
  • 专门做私人定制旅游的网站搜索引擎营销方法
  • 注册安全工程师管理系统网奇seo赚钱培训
  • 武汉市住房和城乡建设厅官方网站生猪价格今日猪价
  • 住房和城乡建设部网站诚信评价搜索引擎优化人员优化
  • 网站制作 太原网络营销专业课程
  • 做网站去哪个公司网络营销策划书的结构
  • 个人无网站怎样做cps广告深圳全网推广公司
  • 中国人可以做的c2c网站上海网站排名推广
  • 网站建设目标定位公司员工培训方案
  • 美工培训班学百度自然搜索排名优化
  • 网站建设自学多长时间搜索引擎营销的过程
  • 做cpa的网站源码seo的外链平台有哪些
  • 那个网站做外贸最好成都网站建设方案外包
  • 企业网站建设效益分析联合早报 即时消息
  • html5网页成品代码自媒体seo优化
  • 门户网站建设招投标网络seo啥意思
  • 游戏币销售网站建设百度热搜seo
  • 线上投票链接怎么做厦门搜索引擎优化
  • 网页设计课程主要内容seo学校
  • php 深圳 电子商务网站开发seo优化好做吗
  • 网站建设开发技术天津济南网站设计
  • 信息公开网站建设网店推广分为哪几种类型
  • 南皮网站建设价格seo搜索引擎优化方式
  • 网上购物系统的设计与实现论文长沙seo优化公司
  • 风景旅游网页制作素材seo推广灰色词
  • 网站制作网站建设网页设计页面
  • 网站开发兼容极速字体颜色推荐seo平台优化服务