示例#1
0
        private void MeMorphingBegin()
        {
            PlayerObj actor = CoreEntry.gActorMgr.MainPlayer;

            if (null == actor)
            {
                return;
            }
            Vector3 prePos = actor.transform.position;

            //var isWild = TaskMgr.IsWildTask;
            //var isAuto = AutoAIRunner.IsInAutoMode_Ex;
            //AutoAIRunner.StopAll();

            if (PlayerData.Instance.RideData.RideState == 1)
            {
                //PlayerData.Instance.RideData.mRideState = 0;
                PlayerData.Instance.RideData.SendChangeRideStateRequest(0);
                CoreEntry.gActorMgr.MainPlayer.GetDownHorse();
            }
            CoreEntry.gActorMgr.RemoveActor(actor);

            GameObject obj = CoreEntry.gSceneLoader.LoadPlayer(morphModelID);

            if (null != obj)
            {
                obj.transform.position    = prePos;
                obj.transform.eulerAngles = actor.transform.eulerAngles;
                obj.transform.localScale  = new Vector3(Scale, Scale, Scale);
            }

            //if (isAuto)
            //{
            //    AutoAIRunner.Init();
            //    TaskMgr.IsWildTask = isWild;
            //    AutoAIRunner.SetAutoFight(true, null);
            //}
            //else if (TaskMgr.LastClickTaskID > 0)
            //{
            //    AutoAIRunner.Init();
            //    AutoAIRunner.SetAutoTask(true);
            //}

            actor.RecycleObj();
            actor.HideBlobShadow();

            //ReSetSkills(0);
            CoreEntry.gActorMgr.MainPlayer.ReBindSkill();
            CoreEntry.gActorMgr.MainPlayer.RebindSkillButton();

            GameObject mEffectObj = CoreEntry.gGameObjPoolMgr.Instantiate(mUIEffectPath);

            if (null != mEffectObj)
            {
                SceneEfxPool efx = mEffectObj.GetComponent <SceneEfxPool>();
                if (efx == null)
                {
                    efx = mEffectObj.AddComponent <SceneEfxPool>();
                }
                if (efx != null)
                {
                    efx.Init(transform.position, 2.0f);
                }

                PanelBase mainPanel = MainPanelMgr.Instance.GetPanel("UIMain");
                if (mainPanel != null)
                {
                    mEffectObj.transform.SetParent(mainPanel.transform);
                    mEffectObj.transform.localPosition = Vector3.zero;
                    mEffectObj.transform.localScale    = Vector3.one;
                }
            }
            mEffectObj = CoreEntry.gGameObjPoolMgr.Instantiate(mPlayerEffectPath);
            if (null != mEffectObj)
            {
                SceneEfxPool efx = mEffectObj.GetComponent <SceneEfxPool>();
                if (efx == null)
                {
                    efx = mEffectObj.AddComponent <SceneEfxPool>();
                }
                if (efx != null)
                {
                    efx.Init(transform.position, 2.0f);
                }

                if (null != obj)
                {
                    mEffectObj.transform.position = obj.transform.position;
                }
            }

            PlayerObj mainObj = CoreEntry.gActorMgr.MainPlayer;

            if (null != mainObj)
            {
                //mainObj.ChangeWeapon(PlayerData.Instance.GetWeaponModelID());
                StateParameter param = new StateParameter();
                param.state = ACTOR_STATE.AS_ENTER;
                mainObj.RequestChangeState(param);
            }
        }