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); } }
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(); }
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(); }); }