Пример #1
0
        private void CreateElf(int itemId)
        {
            if (ModelRoot == null || itemId < 0)
            {
                return;
            }

            var tbElf = Table.GetElf(itemId);

            if (tbElf == null)
            {
                return;
            }

            var dataId   = tbElf.ElfModel;
            var tableNpc = Table.GetCharacterBase(dataId);

            if (null == tableNpc)
            {
                return;
            }

            var offset = tableNpc.CameraHeight / 10000.0f;

            ModelRoot.DestroyFakeCharacter();

            ModelRoot.Create(dataId, null, character =>
            {
                character.SetScale(tableNpc.CameraMult / 10000.0f);
                character.ObjTransform.localPosition = new Vector3(0, offset, 0);
            });
        }
Пример #2
0
        private void OnDestroy()
        {
        #if !UNITY_EDITOR
            try
            {
        #endif
            EventDispatcher.Instance.RemoveEventListener(ElfPlayAnimationEvent.EVENT_TYPE, OnAnimalPlayAnimation);
            EventDispatcher.Instance.RemoveEventListener(ElfGetDrawResultBack.EVENT_TYPE, DrawAnimationStart);
            //EventDispatcher.Instance.RemoveEventListener(UIEvent_ElfBaoXiangOverEvent.EVENT_TYPE, BaoxiangAnimOver);

            if (ModelRoot != null)
            {
                ModelRoot.DestroyFakeCharacter();
            }
            foreach (var formationRoot in FormationModelRoot)
            {
                formationRoot.DestroyFakeCharacter();
            }
        #if !UNITY_EDITOR
        }

        catch (Exception ex)
        {
            Logger.Error(ex.ToString());
        }
        #endif
        }
Пример #3
0
        private void GenerateFakeModel(int dataId)
        {
            if (-1 == dataId)
            {
                ModelRoot.DestroyFakeCharacter();
                return;
            }

            if (null != ModelRoot.Character && dataId == ModelRoot.Character.GetDataId())
            {
                return;
            }


            var tableNpc = Table.GetCharacterBase(dataId);

            if (null == tableNpc)
            {
                return;
            }

            ModelRoot.Create(dataId, null, character =>
            {
                character.SetScale(tableNpc.CameraMult / 10000.0f);
                var pos = character.gameObject.transform.localPosition + new Vector3(0, tableNpc.CameraHeight / 10000.0f, 0);
                character.gameObject.transform.localPosition = pos;
                character.PlayAnimation(OBJ.CHARACTER_ANI.STAND);
            });
        }
Пример #4
0
        private void OnRankRefreshModelView(IEvent ievent)
        {
            var e    = ievent as RankRefreshModelView;
            var info = e.Info;

            ModelRoot.DestroyFakeCharacter();
            ItemBaseData elfData = null;
            var elfId            = -1;

            if (info.Equips.ItemsChange.TryGetValue((int)eBagType.Elf, out elfData))
            {
                elfId = elfData.ItemId;
            }

            if (AnimModelRoot)
            {
                AnimModelRoot.DestroyModel();
            }

            if (e.Iselfrank)
            {
                var tbElf = Table.GetElf(elfId);
                if (tbElf == null)
                {
                    return;
                }
                var dataId = tbElf.ElfModel;
                if (dataId == -1)
                {
                    return;
                }
                var tableNpc = Table.GetCharacterBase(dataId);
                if (null == tableNpc)
                {
                    Logger.Error("In CreateFormationElfModel(), null == tableNpc!!!!!!!");
                    return;
                }

                var offset  = tableNpc.CameraHeight / 10000.0f;
                var colorId = -1;
                if (elfData.Exdata.Count > (int)ElfExdataDefine.StarLevel)
                {
                    colorId = GameUtils.GetElfStarColorId(tbElf.ElfModel, elfData.Exdata[(int)ElfExdataDefine.StarLevel]);
                }
                ModelRoot.CreateWithColor(dataId, colorId, null, character =>
                {
                    character.SetScale(tableNpc.CameraMult / 10000.0f);
                    character.ObjTransform.localPosition = new Vector3(0, offset - 0.48f, 0);
                });
            }
            else if (e.IsMountRank)
            {
                CreateMountModel(info.MountId);
            }
            else
            {
                ModelRoot.Create(info.TypeId, info.EquipsModel, character => { ModelDrag.Target = character.transform; },
                                 elfId, true);
            }
        }
Пример #5
0
        private void OnDisable()
        {
        #if !UNITY_EDITOR
            try
            {
        #endif
            Binding.RemoveBinding();
            if (DrawCoroutine != null)
            {
                NetManager.Instance.StopCoroutine(DrawCoroutine);
                DrawCoroutine = null;
            }


            if (ModelRoot != null)
            {
                ModelRoot.DestroyFakeCharacter();
            }

            EventDispatcher.Instance.RemoveEventListener(FubenModelRefreshEvent.EVENT_TYPE, OnModelRefresh);

        #if !UNITY_EDITOR
        }

        catch (Exception ex)
        {
            Logger.Error(ex.ToString());
        }
        #endif
        }
Пример #6
0
        private void UpdateModelView(int type, Dictionary <int, int> equips, int elfId)
        {
            if (ModelRoot.Character != null)
            {
                ModelRoot.DestroyFakeCharacter();
            }

            ModelRoot.Create(type, equips, character => { ModelDrag.Target = character.transform; }, elfId, true);
        }
Пример #7
0
        private void CreateCopyObj(int dataId)
        {
            if (-2 == dataId)
            {
                ModelRoot.DestroyFakeCharacter();
                return;
            }

            if (-1 == dataId)
            {
                var player = ObjManager.Instance.MyPlayer;
                if (null != player)
                {
                    if (null == GameLogic.Instance)
                    {
                        ModelRoot.DestroyFakeCharacter();
                        return;
                    }
                    var tableId   = ObjManager.Instance.MyPlayer.GetDataId();
                    var tableChar = Table.GetCharacterBase(tableId);

                    ModelRoot.Create(player.GetDataId(), player.EquipList, character =>
                    {
                        character.SetScale(tableChar.CameraMult / 10000.0f);
                        var pos = character.gameObject.transform.localPosition + new Vector3(0, tableChar.CameraHeight / 10000.0f, 0);
                        character.gameObject.transform.localPosition = pos;
                        character.PlayAnimation(OBJ.CHARACTER_ANI.STAND);
                    });
                }

                return;
            }

            if (null != ModelRoot.Character && dataId == ModelRoot.Character.GetDataId())
            {
                return;
            }


            var tableNpc = Table.GetCharacterBase(dataId);

            if (null == tableNpc)
            {
                return;
            }

            ModelRoot.Create(dataId, null, character =>
            {
                character.SetScale(tableNpc.CameraMult / 10000.0f);
                var pos = character.gameObject.transform.localPosition + new Vector3(0, tableNpc.CameraHeight / 10000.0f, 0);
                character.gameObject.transform.localPosition = pos;
                character.PlayAnimation(OBJ.CHARACTER_ANI.STAND);
            });
        }
Пример #8
0
        private void OnUpdateGiftModelViewEvent(IEvent iEvent)
        {
            var ee = iEvent as UpdateGiftModelViewEvent;

            if (ee == null)
            {
                return;
            }
            if (ee.Count == 0)
            {
                ModelRoot.DestroyFakeCharacter();
            }
        }
Пример #9
0
 public void DestroyFakeCharacter()
 {
     if (null != ModelRoot.Character)
     {
         ModelRoot.DestroyFakeCharacter();
     }
 }
Пример #10
0
        private void InitModel(int dataId)
        {
            if (ModelRoot != null)
            {
                ModelRoot.DestroyFakeCharacter();
            }
            if (-1 == dataId)
            {
                return;
            }
            var tbBook = Table.GetHandBook(dataId);

            if (tbBook == null)
            {
                return;
            }

            var tableNpc = Table.GetCharacterBase(tbBook.NpcId);

            if (null == tableNpc)
            {
                return;
            }
            if (ModelRoot != null)
            {
                ModelRoot.Create(tbBook.NpcId, null, character =>
                {
                    character.SetScale(tableNpc.CameraMult / 10000f);
                    character.ObjTransform.localRotation = Quaternion.identity;
                    ModelRootTransform.localPosition     = ModelRootOriPos + new Vector3(0, tableNpc.CameraHeight / 10000.0f, 0);
                    character.PlayAnimation(OBJ.CHARACTER_ANI.STAND);
                });
            }
        }
Пример #11
0
        private void CreateFakeObj(IEvent ievent)
        {
            int dataId = (ievent as TowerRefreshBoss_Event).idBosd;

            if (ModelRoot != null)
            {
                ModelRoot.DestroyFakeCharacter();
            }
            if (-1 == dataId)
            {
                return;
            }

            var tableNpc = Table.GetCharacterBase(dataId);

            if (null == tableNpc)
            {
                return;
            }
            if (ModelRoot != null)
            {
                ModelRoot.Create(dataId, null, character =>
                {
                    character.SetScale(tableNpc.CameraMult / 10000f);
                    character.ObjTransform.localRotation = Quaternion.identity;
                    ModelRootTransform.localPosition     = ModelRootOriPos + new Vector3(0, tableNpc.CameraHeight / 10000.0f, 0);
                    character.PlayAnimation(OBJ.CHARACTER_ANI.STAND);
                });
            }
            if (BossNameLabel != null)
            {
                BossNameLabel.text = tableNpc.Name;
            }
        }
Пример #12
0
        private void FakeObjectCreate(int dataId)
        {
            ModelRoot.DestroyFakeCharacter();
            if (-1 == dataId)
            {
                return;
            }

            var tableNpc = Table.GetCharacterBase(dataId);

            if (null == tableNpc)
            {
                return;
            }

            ModelRoot.Create(dataId, null, character =>
            {
                character.SetScale(tableNpc.CameraMult / 10000.0f);
                character.ObjTransform.localRotation = Quaternion.identity;
                rootTransModel.localPosition         = rootOriPosModel + new Vector3(0, tableNpc.CameraHeight / 10000.0f, 0);
                character.PlayAnimation(OBJ.CHARACTER_ANI.STAND);
                DragRorate.Target = character.transform;
            });
        }
Пример #13
0
        private void CreateCopyObj(int dataId)
        {
            if (-1 == dataId)
            {
                ModelRoot.DestroyFakeCharacter();
                return;
            }


            ModelRoot.Create(dataId, null, character =>
            {
                character.transform.forward = Vector3.back;
                character.PlayAnimation(OBJ.CHARACTER_ANI.STAND);
                DrageRotate.Target = character.transform;
            });
        }
Пример #14
0
        private void CreateCopyObj(int dataId)
        {
            if (-1 == dataId)
            {
                ModelRoot.DestroyFakeCharacter();
                return;
            }

            var tbChar = Table.GetCharacterBase(dataId);


            ModelRoot.Create(dataId, null, character =>
            {
                character.transform.forward = Vector3.back;
                character.PlayAnimation(OBJ.CHARACTER_ANI.STAND);
                character.transform.localScale = Vector3.one * tbChar.CameraMult * 0.0001f;
                DrageRotate.Target             = character.transform;
            });
        }
Пример #15
0
 public void BtnClose()
 {
     ModelRoot.DestroyFakeCharacter();
     EventDispatcher.Instance.DispatchEvent(new Close_UI_Event(UIConfig.BattleUnionUI));
 }
Пример #16
0
 private void DestroyCharacterModel()
 {
     ModelRoot.DestroyFakeCharacter();
 }
Пример #17
0
    //�ӳ���ObjCharacter
    private void CreateChar(int dataId,
                            bool bsync,
                            Dictionary <int, int> dictEquip    = null,
                            Action <ObjFakeCharacter> callback = null,
                            int elfId = -1,
                            int layer = 5)
    {
        if (null != BackgroundWidget)
        {
            if (null != BackgroundWidget.drawCall)
            {
                CustomRenderQueue  = BackgroundWidget.drawCall.renderQueue + +1;
                CustomRenderQueue += BackgroundWidget.SkippedRenderQueue / 2;
            }
        }

        Character = ObjFakeCharacter.Create(dataId, dictEquip, character =>
        {
            if (Character.GetObjId() != character.GetObjId())
            {
                character.Destroy();
                return;
            }

            var xform = Character.gameObject.transform;

            //Character.gameObject.SetLayerRecursive(LayerMask.NameToLayer(GAMELAYER.UI));
            xform.parent        = gameObject.transform;
            xform.localPosition = Vector3.zero;
            xform.localScale    = Vector3.one;
            xform.forward       = Vector3.back;

            if (null != callback)
            {
                callback(Character);

                if (-1 != elfId)
                {
                    if (null == ElfCreator)
                    {
                        ElfCreator = gameObject.AddComponent <CreateFakeCharacter>();
                        ElfCreator.CustomRenderQueue = CustomRenderQueue;
                    }
                    ElfCreator.DestroyFakeCharacter();

                    var tbElf = Table.GetElf(elfId);
                    if (tbElf == null)
                    {
                        return;
                    }
                    var elfDataId      = tbElf.ElfModel;
                    var tableCharacter = Table.GetCharacterBase(elfDataId);
                    if (null == tableCharacter)
                    {
                        return;
                    }

                    var tempUniqueId = UniqueId;
                    ElfCreator.Create(elfDataId, null, elf =>
                    {
                        if (character.State == ObjState.Deleted)
                        {
                            elf.Destroy();
                            return;
                        }

                        if (!gameObject.active)
                        {
                            ElfCreator.Character = null;
                            elf.Destroy();
                            return;
                        }

                        if (null == Character)
                        {
                            ElfCreator.Character = null;
                            elf.Destroy();
                            return;
                        }

//                      if (tempUniqueId != UniqueId)
//                      {
//                          ElfCreator.Character = null;
//                          elf.Destroy();
//                          return;
//                      }

                        var t    = elf.gameObject.transform;
                        t.parent = Character.gameObject.transform.parent;

                        t.forward = Vector3.back;
                        //var angle = Character.gameObject.transform.localRotation.eulerAngles.y - 90.0f;
                        var scale = tbElf.CameraZoom * 0.0001f;
                        if (scale <= 0)
                        {
                            Logger.Debug("!!!tbElf.CameraZoom<=0");
                            scale = 1;
                        }
                        var heightOffset = tbElf.Offset * 0.0001f;
                        var temp         = ElfOffset + new Vector3(0, heightOffset, 0f);
                        t.localPosition  = temp;
                        t.localScale     = Vector3.one * scale;

                        t.parent = Character.gameObject.transform.parent;
                    }, -1, false, layer);
                }
            }
        }, layer, bsync, CustomRenderQueue, UniqueId++);
    }
Пример #18
0
 public void BtnClose()
 {
     ModelRoot.DestroyFakeCharacter();
     EventDispatcher.Instance.DispatchEvent(new Close_UI_Event(UIConfig.WorshipFrame));
 }
Пример #19
0
 public void DestroyCharacterModel()
 {
     ModelRoot.DestroyFakeCharacter();
 }