Exemplo n.º 1
0
        public void ChangeArenaModel(string Tid, int skin = 0, bool ChangeModel = false)
        {
            try
            {
                if (ChangeModel)
                {
                    ResetModel();
                    _HeadBar = null;
                    CharacterVariant CV = mDMono.transform.GetComponentInChildren <CharacterVariant>();
                    if (CV != null && GameEngine.Instance != null)
                    {
                        SetObjLayer(CV.CharacterInstance, GameEngine.Instance.defaultLayer);
                        CV.Recycle();
                        PoolModel.DestroyModel(CV.gameObject);
                    }
                    MoveEditor.FXHelper FH = mDMono.transform.GetComponentInChildren <MoveEditor.FXHelper>();
                    if (FH != null)
                    {
                        FH.StopAll(true);
                    }
                    if (enemyController.SkinnedRigPrefab != null)
                    {
                        PoolModel.DestroyModel(enemyController.SkinnedRigPrefab);
                    }

                    string classname   = null;
                    string characterid = CharacterTemplateManager.Instance.TemplateidToCharacterid(Tid);
                    var    charTpl     = CharacterTemplateManager.Instance.GetHeroInfo(characterid, skin);
                    classname = charTpl.model_name;//需添加皮肤
                    if (string.IsNullOrEmpty(classname))
                    {
                        EB.Debug.LogError("OnViewIdAllocated: classname not found for tid = {0}", Tid);
                        return;
                    }
                    enemyController.CharacterModel = CharacterCatalog.Instance.GetModel(classname);

                    OnSpawnFun();

                    Role = _role;
                    SceneLogic scene     = MainLandLogic.GetInstance();
                    string     sceneName = scene.CurrentSceneName;
                    SetNpcName(sceneName);
                }
            }
            catch (System.Exception e)
            {
                EB.Debug.LogError(e.StackTrace);
            }
        }
Exemplo n.º 2
0
        public override void End()
        {
            SparxHub.Instance.PushManager.OnScheduleLocalNotification -= ScheduleLocalNotification;
            SparxHub.Instance.ChatManager.OnConnected -= RegisterChatChannels;

            DestroyFlowControlObject();

            HudLoadManager.DestroyAllHud();
            SceneLoadManager.DestroyAllLevel();
            PlayerManagerForFilter.Dispose();
            NpcManager.Dispose();
            MainLandLogic.Dispose();
            CombatLogic.Dispose();
            InputBlockerManager.Instance.ForceUnlockAll();
            LoadingSpinner.Destroy();
            FusionAudio.StopMusic();
            FusionAudio.StopAmbience();
            ChatController.instance.Clean();
        }
Exemplo n.º 3
0
        private IEnumerator WaitforRegisterGameobject(string npc_id, bool allPath)
        {
            Vector3 startPoint;

            EB.Collections.Queue <Vector3> posQue = FindTransferPath(npc_id, allPath, out startPoint);
            if (allPath)
            {
                mDMono.transform.position = startPoint;
                Vector3 newPos = mDMono.transform.position;
                float   newDir = mDMono.transform.rotation.eulerAngles.y;
                ((SceneManager)LTHotfixManager.GetManager("SceneManager")).UpdatePlayerMovement(MainLandLogic.GetInstance().SceneId, newPos, newDir, null);
            }
            mDMono.transform.LookAt(posQue.Peek());

            while (!PlayerManager.IsLocalPlayer(mDMono.gameObject) || !SceneLogic.FuncNpcLoadCompleted)//确保NPC加载完成再寻路
            {
                yield return(null);
            }
            playerController.TargetingComponent.SetMovementTargetQueue(posQue, delegate() {
                ChangeLeaderModel();
            });
        }