Пример #1
0
    void RebuildModels()
    {
        if (modesCount != 0)
        {
            for (int i = 0; i < modeInfoList.Count; i++)
            {
                if (modeInfoList[i].mMode != null)
                {
                    GameObject.Destroy(modeInfoList[i].mMode);
                }
            }
            modeInfoList.Clear();
        }

        modesCount = MLPlayerInfo.Instance.GetMaxRoleCount();

        for (int i = 0; i < modesCount; i++)
        {
            ModeInfo modeinfo = new ModeInfo();
            modeinfo.mRoleInfo = MLPlayerInfo.Instance.GetRoleInfo(i);

            if (modeinfo.mRoleInfo == null)
            {
                modeinfo.mModel = null;
            }
            else
            {
                bool bFemale             = modeinfo.mRoleInfo.sex == 1;
                CustomCharactor.ESex sex = bFemale ? CustomCharactor.ESex.Female : CustomCharactor.ESex.Male;
                GameObject           ob  = GameObject.Instantiate(sex == CustomCharactor.ESex.Female ?  ModePrefab[0] :  ModePrefab[1]) as GameObject;

                modeinfo.mModel             = ob.GetComponent <PlayerModel>();
                modeinfo.mModel.mAppearData = new AppearBlendShape.AppearData();
                modeinfo.mModel.mAppearData.Deserialize(modeinfo.mRoleInfo.mRoleInfo.appearData);
                modeinfo.mModel.mNude = new CustomCharactor.AvatarData();
                modeinfo.mModel.mNude.Deserialize(modeinfo.mRoleInfo.mRoleInfo.nudeData);
                modeinfo.mModel.mClothed = bFemale ? mFemaleAvataData : mMaleAvataData;

                modeinfo.mMode.transform.parent        = roleCompents[i].m_boxCollider.transform;
                modeinfo.mMode.transform.localPosition = bFemale ?
                                                         new Vector3(mRoleModeLocalPos_Female.x, mRoleModeLocalPos_Female.y, mRoleModeLocalPos_Female.z) :
                                                         new Vector3(mRoleModeLocalPos_Male.x, mRoleModeLocalPos_Male.y, mRoleModeLocalPos_Male.z);
                modeinfo.mMode.transform.localRotation = Quaternion.Euler(new Vector3(0, 90, 0));
                modeinfo.mMode.transform.localScale    = new Vector3(mRoleModeLocalScale.x, mRoleModeLocalScale.y, mRoleModeLocalScale.x);
                modeinfo.mMode.SetActive(true);
                modeinfo.mModel.BuildModel();
            }

            modeInfoList.Add(modeinfo);
        }
    }
Пример #2
0
 public static PeSex Convert(CustomCharactor.ESex v)
 {
     if (v == CustomCharactor.ESex.Female)
     {
         return(PeSex.Female);
     }
     else if (v == CustomCharactor.ESex.Male)
     {
         return(PeSex.Male);
     }
     else
     {
         return(PeSex.Max);
     }
 }