Exemple #1
0
        public IEnumerator AsyncLoadAssets()
        {
            // 加载UIRoot
            HotfixLog.Log("开始加载UIRoot");
            var uiRoot = WindowManager.Instance.CreateUIRoot <CanvasRoot>("UIPanel/UIRoot");

            yield return(uiRoot);

            // 加载窗口
            HotfixLog.Log("开始加载登录窗口");
            yield return(WindowManager.Instance.OpenWindow(typeof(UILogin), "UIPanel/UILogin"));

            // 加载模型
            HotfixLog.Log("开始加载模型");
            var handle = ResourceManager.Instance.LoadAssetAsync <GameObject>("Entity/Sphere");

            yield return(handle);

            var sphere = handle.InstantiateObject;

            sphere.transform.position   = Vector3.zero;
            sphere.transform.localScale = Vector3.one * 3f;
            HotfixLog.Log($"模型名字:{sphere.name}");

            // 加载配表
            HotfixLog.Log("开始加载配表");
            yield return(ConfigManager.Instance.LoadConfig(typeof(CfgAvatar), "Config/Avatar"));

            CfgAvatar      config = ConfigManager.Instance.GetConfig(typeof(CfgAvatar)) as CfgAvatar;
            CfgAvatarTable table  = config.GetTable(1001) as CfgAvatarTable;

            HotfixLog.Log($"表格数据:{table.HeadIcon}");
            HotfixLog.Log($"表格数据:{table.Model}");
        }
        public void Start()
        {
            HotfixNetManager.Instance.Create();
            FsmManager.Instance.Create();

            // 缓存所有的特性
            HotfixLog.Log("收集所有热更类的属性并缓存");
            {
                Attribute attribute1 = HotfixTypeHelper.GetAttribute <WindowAttribute>(typeof(UILogin));
                ILRManager.Instance.CacheHotfixAttribute(typeof(UILogin), attribute1);
                Attribute attribute2 = HotfixTypeHelper.GetAttribute <WindowAttribute>(typeof(UIMain));
                ILRManager.Instance.CacheHotfixAttribute(typeof(UIMain), attribute2);
                Attribute attribute3 = HotfixTypeHelper.GetAttribute <WindowAttribute>(typeof(UIMap));
                ILRManager.Instance.CacheHotfixAttribute(typeof(UIMap), attribute3);
            }

            // 开启协程加载资源
            MotionEngine.StartCoroutine(AsyncLoadAssets());

            // 测试热更事件
            HotfixEventManager.Instance.AddListener <HotfixEventDefine.ClickSkill1Event>(OnHandleEventMessage);
            HotfixEventManager.Instance.AddListener <HotfixEventDefine.ClickSkill2Event>(OnHandleEventMessage);
            HotfixEventManager.Instance.AddListener <HotfixEventDefine.ClickSkill3Event>(OnHandleEventMessage);
            HotfixEventManager.Instance.AddListener <HotfixEventDefine.ClickSkill4Event>(OnHandleEventMessage);
            HotfixEventManager.Instance.AddListener <HotfixEventDefine.ClickSkill5Event>(OnHandleEventMessage);
        }
Exemple #3
0
        /// <summary>
        /// 发送网络消息
        /// </summary>
        public void SendHotfixMsg(IHotfixNetMessage msg)
        {
            HotfixLog.Log($"Send hotfix net message : {msg.GetType()}");
            int msgID = _types.GetKeyByValue(msg.GetType());
            DefaultNetworkPackage package = new DefaultNetworkPackage();

            package.MsgID     = msgID;
            package.BodyBytes = ProtobufHelper.Encode(msg);
            NetworkManager.Instance.SendMessage(package);
        }
Exemple #4
0
        /// <summary>
        /// 接收消息回调函数
        /// </summary>
        private void OnHandleNetworkPackage(INetworkPackage pack)
        {
            DefaultNetworkPackage package = pack as DefaultNetworkPackage;
            Type msgType = _types.GetValueByKey(package.MsgID);

            HotfixLog.Log($"Handle hotfix net message : {msgType}");
            object instance = Activator.CreateInstance(msgType);
            var    message  = ProtobufHelper.Decode(instance, package.BodyBytes);

            HotfixLog.Log(message.ToString());
        }
Exemple #5
0
        public void Start()
        {
            HotfixNetManager.Instance.Create();
            FsmManager.Instance.Create();

            // 缓存所有的特性
            HotfixLog.Log("收集所有热更类的属性并缓存");
            {
                Attribute attribute1 = HotfixTypeHelper.GetAttribute <WindowAttribute>(typeof(UILogin));
                ILRManager.Instance.CacheHotfixAttribute(typeof(UILogin), attribute1);
                Attribute attribute2 = HotfixTypeHelper.GetAttribute <WindowAttribute>(typeof(UIMain));
                ILRManager.Instance.CacheHotfixAttribute(typeof(UIMain), attribute2);
                Attribute attribute3 = HotfixTypeHelper.GetAttribute <WindowAttribute>(typeof(UIMap));
                ILRManager.Instance.CacheHotfixAttribute(typeof(UIMap), attribute3);
            }

            // 开启协程加载资源
            MotionEngine.StartCoroutine(AsyncLoadAssets());
        }
        private void OnHandleEventMessage(IEventMessage msg)
        {
            if (msg is NetworkEventMessageDefine.ConnectFail)
            {
                HotfixLog.Log("连接服务器失败");
            }
            else if (msg is NetworkEventMessageDefine.ConnectSuccess)
            {
                HotfixLog.Log("连接服务器成功");

                // 发送登录消息
                C2R_Login loginMsg = new C2R_Login
                {
                    RpcId    = 100,
                    Account  = "hello",
                    Password = "******"
                };
                HotfixNetManager.Instance.SendHotfixMsg(loginMsg);
            }
        }
 public void OnEnter()
 {
     HotfixLog.Log("进入FsmLogin");
 }
Exemple #8
0
 public void OnEnter()
 {
     HotfixLog.Log("进入FsmInit");
 }
 public void OnEnter()
 {
     HotfixLog.Log("进入FsmPlay");
 }