少年修仙传客户端代码仓库
client_Hale
2018-08-20 9317560c31f00383062cd0a97526b040a9c42b61
Fight/GameActor/GActorPlayerBase.cs
@@ -39,6 +39,7 @@
    protected HeadUpName m_HeadUpName = null;
    private int m_HorseActionType = 0;
    public int nextComAtkIndex = -1;
    public JobSetupConfig JobSetup { get; protected set; }
@@ -62,8 +63,6 @@
        }
    }
    public int nextComAtkIndex = -1;
    public void SwitchHeadNameBindNode(bool castingSkill)
    {
        // 角色被隐藏状态下不执行头顶名称切换逻辑
@@ -82,6 +81,87 @@
            {
                m_HeadUpName.target = MP_Name;
            }
        }
    }
    public bool IsPolyMorph { get; private set; }
    private GameObject m_SheepModel;
    private bool m_SheepIsDefaultNpc;
    public virtual void Polymorph(bool doOrNo)
    {
        IsPolyMorph = doOrNo;
        if (IsPolyMorph)
        {
            ChangeBinderToRoot();
            // 正在骑乘状态下
            if (MovingState == E_MovingState.Ride)
            {
                m_HorseModel.transform.position = Constants.Special_Hide_Position;
                SwitchHorse(0);
                DTC0428_tagPlayerRideHorse.Send_tagPlayerRideHorse(false);
            }
            else
            {
                m_ClothesModel.transform.position = Constants.Special_Hide_Position;
            }
            m_SheepIsDefaultNpc = false;
            var _p = InstanceResourcesLoader.LoadNpc(10101001);
            if (_p == null)
            {
                _p = InstanceResourcesLoader.LoadDefaultFightNPC();
                m_SheepIsDefaultNpc = true;
            }
            m_SheepModel = GameObjectPoolManager.Instance.RequestGameObject(_p);
            m_SheepModel.transform.SetParent(m_Root);
            var _a = m_SheepModel.GetComponent<Animator>();
            if (_a)
            {
                _a.enabled = true;
                _a.SetInteger(GAStaticDefine.Param_ActorInstID, (int)ClientInstID);
                m_ClothesAnimator.enabled = false;
                m_ClothesAnimator = _a;
            }
            if (ShowOrHide)
            {
                m_SheepModel.transform.localPosition = Vector3.zero;
            }
            else
            {
                m_SheepModel.transform.localPosition = Constants.Special_Hide_Position;
            }
            m_SheepModel.transform.localRotation = Quaternion.identity;
        }
        else
        {
            if (m_SheepModel)
            {
                if (m_SheepIsDefaultNpc)
                {
                    GameObjectPoolManager.Instance.ReleaseDefaultFightNPC(m_SheepModel);
                }
                else
                {
                    var _prefab = InstanceResourcesLoader.LoadNpc(10101001);
                    GameObjectPoolManager.Instance.ReleaseGameObject(_prefab, m_SheepModel);
                }
            }
            m_SheepModel = null;
            m_ClothesModel.transform.localPosition = Vector3.zero;
            ChangeBinderToClothes();
            m_ClothesAnimator = m_ClothesModel.GetComponent<Animator>();
            m_ClothesAnimator.enabled = true;
            m_ClothesAnimator.SetInteger(GAStaticDefine.Param_ActorInstID, (int)ClientInstID);
            m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Normal);
        }
    }
@@ -974,8 +1054,11 @@
            }
            if (ShowOrHide)
            {
                m_ClothesModel.transform.localPosition = Vector3.zero;
                m_ClothesModel.transform.localRotation = Quaternion.identity;
                if (!IsPolyMorph)
                {
                    m_ClothesModel.transform.localPosition = Vector3.zero;
                    m_ClothesModel.transform.localRotation = Quaternion.identity;
                }
            }
            else
            {
@@ -987,12 +1070,18 @@
            if (m_WingModel)
            {
                MovingState = E_MovingState.Fly;
                m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Fly);
                if (!IsPolyMorph)
                {
                    m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Fly);
                }
            }
            else
            {
                MovingState = E_MovingState.Normal;
                m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Normal);
                if (!IsPolyMorph)
                {
                    m_ClothesAnimator.SetInteger(GAStaticDefine.Param_MoveState, (int)E_MovingState.Normal);
                }
            }
            SwitchHeadNameBindNode(false);