Ejemplo n.º 1
0
        /// <summary>
        /// 处理加载事件
        /// </summary>
        /// <param name="msg"></param>
        public override void ProcessEvent(MsgBase msg)
        {
            switch (msg.MsgId)
            {
            case (ushort)AssetLoadEvent.LoadRequest:    //请求资源

                MsgAssetLoadRequest msgLoadReq = msg as MsgAssetLoadRequest;
                Object obj = MgrCenter.AssetMgr.LoadAsset(msgLoadReq.bundleName, msgLoadReq.assetName);
                //说明已经加载完成了,就直接返回给请求者
                if (obj != null)
                {
                    MgrCenter.Instance.SendMsg(Msgs.GetMsgAssetLoaded(
                                                   (ushort)AssetLoadEvent.AssetLoaded, msgLoadReq.bundleName, msgLoadReq.assetName, obj));
                }

                break;

            case (ushort)AssetLoadEvent.AssetLoaded:    //资源加载完成后的处理

                MsgAssetLoaded msgAssetLoaded = msg as MsgAssetLoaded;
                OnObjLoaded(msgAssetLoaded.GetAssetAndABName(), msgAssetLoaded.asset);

                break;

            case (ushort)AssetLoadEvent.UnloadSingleAsset:
                break;

            case (ushort)AssetLoadEvent.UnloadBundleAsset:
                break;

            case (ushort)AssetLoadEvent.UnloadSceneAsset:
                break;

            case (ushort)AssetLoadEvent.UnloadBundles:    //卸载所有bundle

                MsgUnloadAssetBundles msgUnloadAssetBundles = msg as MsgUnloadAssetBundles;
                LoadMgr.Instance.UnloadAssetBundles(msgUnloadAssetBundles.bundleNames, msgUnloadAssetBundles.ifUnloadObjs);

                break;

            case (ushort)AssetLoadEvent.UnloadSingleBundle:
                break;

            case (ushort)AssetLoadEvent.UnloadSceneBundle:
                break;

            case (ushort)AssetLoadEvent.UnloadAllBundle:
                break;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 处理消息
        /// </summary>
        /// <param name="msg"></param>
        public override void ProcessEvent(MsgBase msg)
        {
            switch (msg.MsgId)
            {
            case (ushort)EntityEnum.CreateEntity:    //创建entity
                MsgNPCCreate msgNPCCreate = msg as MsgNPCCreate;
                LoadEntity(msgNPCCreate.npcInstance, msgNPCCreate.isHost);

                break;

            case (ushort)EntityEnum.CreateBuilding:    //创建建筑
                MsgBuildingCreate msgBuildingCreate = msg as MsgBuildingCreate;
                LoadBuilding(msgBuildingCreate.buildingCreateDTO, msgBuildingCreate.isHost);

                break;

            case (ushort)AssetLoadEvent.AssetLoaded:    //资源加载完成,实例化entity
                MsgAssetLoaded msgAssetLoaded = msg as MsgAssetLoaded;
                string         name           = new StringBuilder(msgAssetLoaded.bundleName).Append(" ").Append(msgAssetLoaded.assetName).ToString();
                InstantiateEntity(name, msgAssetLoaded.asset);

                break;
            }
        }
Ejemplo n.º 3
0
        private int selectedHeroId = -1;//已选择的英雄Id

        /// <summary>
        /// 处理消息
        /// </summary>
        /// <param name="msg"></param>
        public override void ProcessEvent(MsgBase msg)
        {
            switch (msg.MsgId)
            {
            case (ushort)NetEventSelect.EnterSres:    //服务器允许进入选择
                MsgSelectRoom msgSelectRoom = msg as MsgSelectRoom;
                Debug.LogWarning("enter sres");
                if (msgSelectRoom.selectRoom != null)
                {
                    this.selectRoom = msgSelectRoom.selectRoom;
                    SetPlayers(this.selectRoom);
                }
                InitialSelectHeroGrids();

                break;

            case (ushort)AssetLoadEvent.AssetLoaded:    //图片加载完成
                MsgAssetLoaded msgAssetLoaded = msg as MsgAssetLoaded;
                string         assetIndex     = msgAssetLoaded.assetName.Split('_')[0];
                int            index          = int.Parse(assetIndex);
                Texture2D      texture        = msgAssetLoaded.asset as Texture2D;
                Sprite         sprite         = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));
                OnSpriteLoaded(index, sprite);

                break;

            case (ushort)NetEventSelect.SomeOneEntered:    //有玩家进入了
                MsgInt msgInt = msg as MsgInt;
                UpdatePlayerInfoOnEnter(msgInt.Int, true);

                break;

            case (ushort)SelectUIEvent.HeroPressed:    //按下了某个英雄
                MsgInt msgIndex = msg as MsgInt;
                selectedHeroId = msgIndex.Int;
                heroSelectGridBox.UIOnSomeHeroSelected(msgIndex.Int);

                break;

            case (ushort)NetEventSelect.SomeOneSelected:    //某人选择了英雄
                MsgSelectDTO msgSelectDTO = msg as MsgSelectDTO;
                SelectDTO    selectDTO    = msgSelectDTO.SelectData;
                if (selectDTO != null)
                {
                    UpdatePlayerHero(selectDTO.userId, selectDTO.heroId);
                }
                if (TeamId(selectDTO.userId) == this.teamId)
                {
                    UpdateHeroCouldSelect(selectDTO);
                }

                break;

            case (ushort)NetEventSelect.SomeOneReady:    //有人准备了
                MsgSelectDTO msgSelect = msg as MsgSelectDTO;
                SelectDTO    select    = msgSelect.SelectData;
                UpdatePlayerReady(select.userId, select.isReady);

                break;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 消息处理
        /// </summary>
        /// <param name="msg"></param>
        public override void ProcessEvent(MsgBase msg)
        {
            switch (msg.MsgId)
            {
            case (ushort)AssetLoadEvent.AssetLoaded:    //HUD prefab加载完成后,创建HUD
                MsgAssetLoaded msgAssetLoaded = msg as MsgAssetLoaded;
                if (msgAssetLoaded.bundleName == hudAssetABName && msgAssetLoaded.assetName == hudAssetName)
                {
                    this.hudAsset = msgAssetLoaded.asset;
                    foreach (HUDInfo hudInfo in loadHUDDic.Values)
                    {
                        CreateHUD(hudAsset, hudInfo.id, hudInfo.name, hudInfo.percent, hudInfo.pos);
                    }
                    loadHUDDic.Clear();
                }
                break;

            case (ushort)HUDEvent.CreateHUD:
                MsgHUD msgHUD = msg as MsgHUD;
                if (hudAsset == null)
                {
                    if (loadHUDDic.Count == 0)
                    {
                        SendMsg(Msgs.GetMsgAssetLoadRequest((ushort)AssetLoadEvent.LoadRequest, hudAssetABName, hudAssetName));
                    }

                    if (!loadHUDDic.ContainsKey(msgHUD.Id))
                    {
                        loadHUDDic.Add(msgHUD.Id, new HUDInfo(msgHUD.Name, msgHUD.Id, msgHUD.Percent, msgHUD.Pos));
                    }
                }
                else
                {
                    CreateHUD(hudAsset, msgHUD.Id, msgHUD.Name, msgHUD.Percent, msgHUD.Pos);
                }

                break;

            case (ushort)HUDEvent.DestroyHUD:    //销毁HUD
                MsgInt msgInt = msg as MsgInt;
                UnRegisterHUD(msgInt.Int);

                break;

            case (ushort)HUDEvent.HideHUD:
                MsgInt msgI = msg as MsgInt;
                HideHUD(msgI.Int);

                break;

            case (ushort)HUDEvent.UpdateHUDPos:    //更新HUD的位置
                MsgKV <int, Vector3> msgPos = msg as MsgKV <int, Vector3>;
                if (hudDic.ContainsKey(msgPos.msgKey))
                {
                    UpdateHUDPos(msgPos.msgValue, hudDic[msgPos.msgKey]);
                }

                break;

            case (ushort)HUDEvent.UpdateHUDHp:    //更新HUD的hp信息
                MsgKV <int, float> msgHp = msg as MsgKV <int, float>;
                if (hudDic.ContainsKey(msgHp.msgKey))
                {
                    hudDic[msgHp.msgKey].UpdateHpBar(msgHp.msgValue);
                }

                break;
            }
        }