コード例 #1
0
    /// <summary>
    /// 装配角色
    /// </summary>
    /// <param name="playerKind"></param>
    /// <param name="isHero"></param>
    /// <returns></returns>
    private GameObject AssemblyPlayer(PlayerGenerateConfigData configData, byte playerKind, bool isHero, string avatarName)
    {
        string defaultAnim, defaultAvatar, defaultWeapon;

        string[] attachAnims, weaponPosition;

        defaultAnim    = configData.DefaultAnim;
        attachAnims    = configData.Animations;
        defaultAvatar  = string.IsNullOrEmpty(avatarName)? configData.DefaultAvatar:avatarName;
        defaultWeapon  = configData.DefaultWeapon;
        weaponPosition = configData.WeaponPosition;

        //如果是客户端主角,使用高模,不是则使用低模
        var player = isHero ? RoleGenerate.GenerateRole(configData.PlayerName, defaultAvatar, isHero) :
                     RoleGenerate.GenerateRole(configData.PlayerName, defaultAvatar, isHero, MESHDENSITY.LOW);

        player.name = configData.PlayerName;

        RoleGenerate.AttachAnimation(player, configData.PlayerName, defaultAnim, attachAnims);

        var weapon = Weapons.SingleOrDefault(P => P.name == defaultWeapon);

        RoleGenerate.AttachWeapon(player, weaponPosition, weapon, null);

        return(player);
    }
コード例 #2
0
 /// <summary>
 /// 改变主角默认时装
 /// </summary>
 /// <param name="weaponName"></param>
 void ChangeDefulsFashion()
 {
     TraceUtil.Log("切换时装:默认时装");
     //yield return null;
     RoleGenerate.GenerateRole(m_hero, playerGenerateConfigData.DefaultAvatar);
     SetCildLayer(m_hero.transform, 25);
 }
コード例 #3
0
        void AssemblyPlayer(NewCharacterConfigData configData)
        {
            //特效
            if (configData.EffectPrefab != null)
            {
                //this.m_effect = GameObjectPool.Instance.AcquireLocal(configData.EffectPrefab, Vector3.zero, Quaternion.identity);
            }
            else
            {
                //this.m_effect = GameObject.CreatePrimitive(PrimitiveType.Cube);
            }
            //英雄
            playerGenerateConfigData = LoginDataManager.Instance.GetPlayerGenerateConfigData(configData.VocationID);
            this.m_hero = RoleGenerate.GenerateRole(playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAvatar, true);
            this.m_hero.transform.parent        = transform;
            this.m_hero.transform.localPosition = new Vector3(0, 0, 180);
            this.m_hero.transform.localRotation = Quaternion.Euler(new Vector3(0, 180, 0));
            RoleGenerate.AttachAnimation(this.m_hero, playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAnim, playerGenerateConfigData.Animations);
            //GameObject weapon = GameManager.Instance.PlayerFactory.Weapons.FirstOrDefault(P => P.name == configData.WeaponName);
            GameObject weapon = configData.Weapon;

            TraceUtil.Log("weapon:" + weapon);
            this.ChangeWeapon(weapon, null);

            //this.m_effect.transform.parent = m_hero.transform;
            //this.m_effect.transform.localPosition = Vector3.zero;
            //this.m_effect.transform.localScale = Vector3.one;
        }
コード例 #4
0
        void AssemblyPlayer(int VocationID)
        {
            if (this.m_hero != null)
            {
                Destroy(m_hero);
            }
            playerGenerateConfigData = PlayerDataManager.Instance.GetUIItemData((byte)VocationID);
            this.m_hero = RoleGenerate.GenerateRole(playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAvatar, true);
            this.m_hero.transform.parent           = CreatHeroModelTransform;
            this.m_hero.transform.localEulerAngles = Vector3.zero;
            this.m_hero.transform.localPosition    = Vector3.zero;
            RoleGenerate.AttachAnimation(this.m_hero, playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAnim, playerGenerateConfigData.Animations);
            string[] weaponPosition = GetWeaponPosition();
            this.m_hero.gameObject.AddComponent <RoleViewClickEvent>();
            RoleGenerate.AttachWeapon(this.m_hero, weaponPosition, playerGenerateConfigData.WeaponObj, null);

            var shadowEff = GameObject.Instantiate(playerGenerateConfigData.ShadowEffect) as GameObject;

            shadowEff.name                    = "shadow";
            shadowEff.transform.parent        = m_hero.transform;
            shadowEff.transform.localPosition = new Vector3(0, 1, 0);

            CreatHeroModelTransform.transform.position = MyPanelType == PanelType.FashionInfoPanel ? playerGenerateConfigData.Avatar_CharPos : playerGenerateConfigData.RoleUI_CharPos;
            CameraObj.transform.position    = m_hero.transform.position + (MyPanelType == PanelType.FashionInfoPanel ? playerGenerateConfigData.Avatar_CameraPos : playerGenerateConfigData.RoleUI_CameraPos);
            CameraTarget.transform.position = m_hero.transform.position + (MyPanelType == PanelType.FashionInfoPanel ? playerGenerateConfigData.Avatar_CameraTargetPos : playerGenerateConfigData.RoleUI_CameraTargetPos);
            CameraObj.transform.LookAt(CameraTarget);
            this.m_hero.transform.localPosition = new Vector3(1000, 0, 0);
            //m_hero.SetActive(false);
        }
コード例 #5
0
    /// <summary>
    /// 改变主角时装
    /// </summary>
    /// <param name="weaponName"></param>
    void ChangeFashion(int fashionID)
    {
        var FashionData = ItemDataManager.Instance.GetItemData(fashionID);

        TraceUtil.Log("切换时装:" + FashionData._ModelId);
        //yield return null;
        RoleGenerate.GenerateRole(m_hero, FashionData._ModelId);
    }
コード例 #6
0
        /// <summary>
        /// 改变主角时装
        /// </summary>
        /// <param name="weaponName"></param>
        public IEnumerator ChangeFashion(int fashionID)
        {
            var FashionData = ItemDataManager.Instance.GetItemData(fashionID);

            TraceUtil.Log("切换时装:" + FashionData._ModelId);
            yield return(null);

            RoleGenerate.GenerateRole(m_hero, FashionData._ModelId);
            SetCildLayer(m_hero.transform, 25);
        }
コード例 #7
0
 /// <summary>
 /// 改变主角服装
 /// </summary>
 /// <param name="avatarName"></param>
 public void ChangeAvatar(string avatarName)
 {
     if (this.m_heroGo)
     {
         RoleGenerate.GenerateRole(this.m_heroGo, avatarName);
     }
     else
     {
         TraceUtil.Log(SystemModel.Common, TraceLevel.Error, "主角对象不存在");
     }
 }
コード例 #8
0
        /// <summary>
        /// 改变主角默认时装
        /// </summary>
        /// <param name="weaponName"></param>
        IEnumerator ChangeDefulsFashion()
        {
            TraceUtil.Log("切换时装:默认时装");
            yield return(null);

            RoleGenerate.GenerateRole(m_hero, playerGenerateConfigData.DefaultAvatar);
            SetCildLayer(m_hero.transform, 25);
            if (MyPanelType == PanelType.FashionInfoPanel)
            {
                PlayerChangeFashionAnim();
            }
        }
コード例 #9
0
    private void MakeRole(string roleName, string avatarName, string defaultAnim, params string[] anims)
    {
        Object.DestroyImmediate(root);
        root = null;
        root = RoleGenerate.GenerateRole(roleName, avatarName);
        root.transform.Rotate(0, 180, 0);

        RoleGenerate.AttachAnimation(root, roleName, defaultAnim, anims);

        RoleGenerate.AttachWeapon(root, AttachPoint.RHWeapon, WeaponPrefab, null);

        root.animation.wrapMode = WrapMode.Loop;
    }
コード例 #10
0
        /// <summary>
        /// 改变主角时装
        /// </summary>
        /// <param name="weaponName"></param>
        public void ChangeFashion(object obj)
        {
            int fashionID   = (int)obj;
            var FashionData = ItemDataManager.Instance.GetItemData(fashionID);

            TraceUtil.Log("切换时装:" + FashionData._ModelId);
            //yield return null;
            RoleGenerate.GenerateRole(m_hero, FashionData._ModelId);
            SetCildLayer(m_hero.transform, 25);
            if (MyPanelType == PanelType.FashionInfoPanel)
            {
                PlayerChangeFashionAnim();
            }
        }
コード例 #11
0
        void AssemblyPlayer(int VocationID)
        {
            /*
             * if (this.m_hero != null)
             * {
             *  Destroy(m_hero);
             * }
             * playerGenerateConfigData = PlayerDataManager.Instance.GetUIItemData((byte)VocationID) ;
             * this.m_hero = RoleGenerate.GenerateRole(playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAvatar, true);
             * this.m_hero.transform.parent = transform;
             * //this.m_hero.transform.localPosition = new Vector3(0, -8, 170);
             * this.m_hero.transform.localRotation = Quaternion.Euler(new Vector3(0,180,0));
             *
             * RoleGenerate.AttachAnimation(this.m_hero, playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAnim, playerGenerateConfigData.Animations);
             *
             * string[] weaponPosition = playerGenerateConfigData.Item_WeaponPosition;
             * //RoleGenerate.AttachWeapon(this.m_hero, weaponPosition, playerGenerateConfigData.WeaponObj);
             *
             * ChangeHeroWeapon(null);
             *
             * PlayerIdleAnim();
             * SetCildLayer(m_hero.transform, 25);
             */
            playerGenerateConfigData = PlayerDataManager.Instance.GetUIItemData((byte)VocationID);
            this.m_hero = RoleGenerate.GenerateRole(playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAvatar, true);
            this.m_hero.transform.parent        = transform;
            this.m_hero.transform.localPosition = new Vector3(0, -8, 170);
            this.m_hero.transform.localRotation = Quaternion.Euler(new Vector3(0, 180, 0));
            RoleGenerate.AttachAnimation(this.m_hero, playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAnim, playerGenerateConfigData.Animations);

            string[] weaponPosition = playerGenerateConfigData.Avatar_WeaponPos;
            RoleGenerate.AttachWeapon(this.m_hero, weaponPosition, playerGenerateConfigData.WeaponObj, null);

            //光环
            this.m_heroHolo             = (GameObject)Instantiate(Eff_HeroHoloPrefab);
            m_heroHolo.transform.parent = transform;
            this.m_heroHolo.transform.Rotate(Vector3.left * 20, Space.Self);
            SetCildLayer(this.m_heroHolo.transform, 25);
            //ChangeHeroWeapon(null);
            ////SetCildLayer(m_hero.transform, 25);
            //TweenFloat.Begin(1,0,1,null,AddRotateComponentForSeconds);


            ChangeHeroFashion();
            ChangeHeroWeapon(null);

            SetCildLayer(m_hero.transform, 25);

            SetModelPisitionImmediate();
        }
コード例 #12
0
    /// <summary>
    /// 装配角色
    /// </summary>
    private GameObject AssemblyPlayer(PlayerGenerateConfigData configData, Vector3 pos)
    {
        string defaultAnim, defaultAvatar;

        string[] attachAnims;//, weaponPosition;

        defaultAnim   = configData.DefaultAnim;
        attachAnims   = configData.Animations;
        defaultAvatar = configData.DefaultAvatar;
        //defaultWeapon = configData.DefaultWeapon;
        //weaponPosition = configData.WeaponPosition;

        var player = RoleGenerate.GenerateRole(configData.PlayerName, defaultAvatar, true);

        player.name = configData.PlayerName;

        RoleGenerate.AttachAnimation(player, configData.PlayerName, defaultAnim, attachAnims);

        PlayerBehaviour playerBehaviour = player.GetComponent <PlayerBehaviour>();

        if (playerBehaviour != null)
        {
            player.RemoveComponent <PlayerBehaviour>("PlayerBehaviour");
        }


        player.transform.position = pos;
        player.animation.CrossFade("BIdle");

        //SetPlayerShadow(player, configData.ShadowEffect);

        //挂武器 jamfing

        /*int vocation = PlayerManager.Instance.FindHeroDataModel().PlayerValues.PlayerCommonValue.PLAYER_FIELD_VISIBLE_VOCATION;
         * StroyLineKey key = new StroyLineKey{ VocationID = vocation,ConditionID = GameManager.Instance.GetStoryConfigData._TriggerCondition,
         *      EctypeID = GameManager.Instance.GetStoryConfigData._EctypeID };*/
        if (StroyLineConfigManager.Instance.GetStroyLineConfig.ContainsKey(StroyLineDataManager.Instance.curStroyLineKey))
        {
            if (StroyLineConfigManager.Instance.GetStroyLineConfig[StroyLineDataManager.Instance.curStroyLineKey].WeaponType == 1)
            {
                string[] ItemWeaponPosition = configData.WeaponPosition;
                var      weaponObj          = PlayerFactory.Instance.GetWeaponPrefab(configData.DefaultWeapon);
                RoleGenerate.AttachWeapon(player, ItemWeaponPosition, weaponObj, null);
            }
        }
        return(player);
    }
コード例 #13
0
        void AssemblyPlayer(int VocationID, int FashionID, int WeaponID)
        {
            playerGenerateConfigData = PlayerDataManager.Instance.GetUIItemData((byte)VocationID);
            this.m_hero = RoleGenerate.GenerateRole(playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAvatar, true);
            this.m_hero.transform.parent        = transform;
            this.m_hero.transform.localPosition = new Vector3(0, -8, 170);
            this.m_hero.transform.localRotation = Quaternion.Euler(new Vector3(0, 180, 0));
            RoleGenerate.AttachAnimation(this.m_hero, playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAnim, playerGenerateConfigData.Animations);
            ChangeHeroWeapon(WeaponID);
            ChangeHeroFashion(FashionID);
            //光环
            this.m_heroHolo             = (GameObject)Instantiate(Eff_HeroHoloPrefab);
            m_heroHolo.transform.parent = transform;
            this.m_heroHolo.transform.Rotate(Vector3.left * 20, Space.Self);
            SetCildLayer(this.m_heroHolo.transform, 25);

            SetModelPisitionImmediate();
        }
コード例 #14
0
    void CreatRoleMode(PvpRoleInfo Char, int VocationID, Transform point)
    {
        var pvpConfigData = PlayerDataManager.Instance.GetPVPItemData(VocationID);

        Char.pvpConfigData            = pvpConfigData;
        Char.playerGenerateConfigData = PlayerDataManager.Instance.GetUIItemData((byte)VocationID);
        if (Char.playerGenerateConfigData.PlayerId == 1)
        {
            if (Char.RoleMode_Char01 == null)
            {
                Char.RoleMode_Char01 = RoleGenerate.GenerateRole(Char.playerGenerateConfigData.PlayerName, Char.playerGenerateConfigData.DefaultAvatar, true);
                Char.RoleMode_Char01.transform.parent           = point;
                Char.RoleMode_Char01.transform.localPosition    = Vector3.zero;
                Char.RoleMode_Char01.transform.localEulerAngles = new Vector3(0, 180, 0);
                RoleGenerate.AttachAnimation(Char.RoleMode_Char01, pvpConfigData.PlayerName, pvpConfigData.DefaultAnim, pvpConfigData.Animations);
                Char.RoleControl = Char.RoleMode_Char01.AddComponent <PvpRoleControl>();
            }
            else
            {
                Char.RoleMode_Char01.SetActive(true);
                Char.RoleControl = Char.RoleMode_Char01.GetComponent <PvpRoleControl>();
            }
            Char.currentRoleMode = Char.RoleMode_Char01;
        }
        else
        {
            if (Char.RoleMode_Char04 == null)
            {
                Char.RoleMode_Char04 = RoleGenerate.GenerateRole(Char.playerGenerateConfigData.PlayerName, Char.playerGenerateConfigData.DefaultAvatar, true);
                Char.RoleMode_Char04.transform.parent           = point;
                Char.RoleMode_Char04.transform.localPosition    = Vector3.zero;
                Char.RoleMode_Char04.transform.localEulerAngles = new Vector3(0, 180, 0);
                RoleGenerate.AttachAnimation(Char.RoleMode_Char04, pvpConfigData.PlayerName, pvpConfigData.DefaultAnim, pvpConfigData.Animations);
                Char.RoleControl = Char.RoleMode_Char04.AddComponent <PvpRoleControl>();
            }
            else
            {
                Char.RoleMode_Char04.SetActive(true);
                Char.RoleControl = Char.RoleMode_Char04.GetComponent <PvpRoleControl>();
            }
            Char.currentRoleMode = Char.RoleMode_Char04;
        }
    }
コード例 #15
0
 void AssemblyPlayer(int VocationID)
 {
     if (this.m_hero != null)
     {
         Destroy(m_hero);
     }
     playerGenerateConfigData = PlayerDataManager.Instance.GetUIItemData((byte)VocationID);
     this.m_hero = RoleGenerate.GenerateRole(playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAvatar, true);
     this.m_hero.transform.parent        = transform;
     this.m_hero.transform.localScale    = Vector3.one;
     this.m_hero.transform.localPosition = new Vector3(0, -8f, 21);
     this.m_hero.transform.localRotation = Quaternion.Euler(new Vector3(0, 180, 0));
     RoleGenerate.AttachAnimation(this.m_hero, playerGenerateConfigData.PlayerName, playerGenerateConfigData.DefaultAnim, playerGenerateConfigData.Animations);
     string[] weaponPosition = playerGenerateConfigData.Avatar_WeaponPos;
     this.m_hero.gameObject.AddComponent <RoleViewClickEvent>();
     RoleGenerate.AttachWeapon(this.m_hero, weaponPosition, playerGenerateConfigData.WeaponObj, null);
     ////SetCildLayer(m_hero.transform, 25);
     TweenFloat.Begin(1, 0, 1, null, AddRotateComponentForSeconds);
     ChangeHeroFashion();
     ChangeHeroWeapon(null, false);
     SetCildLayer(m_hero.transform, 25);
 }
コード例 #16
0
    private void AssemblyPlayer(string playerName, bool isHero)
    {
        Dictionary <string, PlayerGenerateConfigData> m_UIItems = new Dictionary <string, PlayerGenerateConfigData>();

        foreach (PlayerGenerateConfigData data in PlayerGenerateConfigData_UI._dataTable)
        {
            m_UIItems.Add(data.PlayerName, data);
        }
        m_configData = m_UIItems[playerName];

        var player = RoleGenerate.GenerateRole(playerName, m_configData.DefaultAvatar, isHero);

        player.name = playerName;

        RoleGenerate.AttachAnimation(player, playerName, m_configData.DefaultAnim, m_configData.Animations);// );

        player.transform.Rotate(Vector3.up, 180);

        player.tag = "UIHero";

        //player.animation.wrapMode = WrapMode.Loop;

        this.m_heroGo = player;
        this.ChangeWeapon(m_configData.DefaultWeapon, null);

        float aniTime = player.animation["Atk01"].length;

        float singleF = aniTime / 75;

        var heroBehaviour = player.AddComponent <UIHeroBehaviour>();

        //找到heroBehaviour的FSMSystem。然后把处理方法传入SkillBase委托中。

        /*
         * RoleGenerate.AttachSkill(player, "ATK01"
         * , new SkillEvent[]
         * {
         * new SkillEvent(){ EventTimeAfterLaunch=0f, Type=SkillEventType.PlayViewEffect, Param=0}
         * ,new SkillEvent(){ EventTimeAfterLaunch=singleF*20f, Type=SkillEventType.PlayViewEffect, Param=1}
         * ,new SkillEvent(){ EventTimeAfterLaunch=singleF*33f, Type=SkillEventType.PlayViewEffect, Param=2}
         * }
         * , string.Empty
         * , null
         * , new GameObject[]
         * {
         * (GameObject)Resources.Load("Effects/prefab/JH_Eff_Char01_Atk01")
         * ,(GameObject)Resources.Load("Effects/prefab/JH_Eff_Char01_Atk02")
         * ,(GameObject)Resources.Load("Effects/prefab/JH_Eff_Char01_Atk03")
         * });
         * RoleGenerate.AttachSkill(player, "skill05"
         * , new SkillEvent[]{new SkillEvent(){ EventTimeAfterLaunch=0.3f, Type=SkillEventType.PlayViewEffect, Param=0}}
         * , string.Empty
         * , null
         * , new GameObject[] { (GameObject)Resources.Load("Effects/prefab/JH_Eff_Char01_SkillUse02") });
         * RoleGenerate.AttachSkill(player, "SKILL01"
         * , new SkillEvent[]{new SkillEvent(){ EventTimeAfterLaunch=0.3f, Type=SkillEventType.PlayViewEffect, Param=0}}
         * , string.Empty
         * , null
         * , new GameObject[] { (GameObject)Resources.Load("Effects/prefab/JH_Eff_Char01_SkillUse03") });
         * RoleGenerate.AttachSkill(player, "skill06"
         * , new SkillEvent[]{new SkillEvent(){ EventTimeAfterLaunch=0.3f, Type=SkillEventType.PlayViewEffect, Param=0}}
         * , string.Empty
         * , null
         * , new GameObject[] { (GameObject)Resources.Load("Effects/prefab/JH_Eff_Char01_SkillUse04") });
         */
    }
コード例 #17
0
    void OnGUI()
    {
        GUILayout.Label("--- Target PlayerModel ---");

        GameObject newModel = (GameObject)EditorGUILayout.ObjectField("PlayerModel", playerModel, typeof(GameObject), true);

        if (newModel != playerModel)
        {
            #region a
            var  modelClone          = Object.Instantiate(newModel) as GameObject;
            bool hasWeaponAttachment = modelClone.transform.RecursiveObjectExist(ConstDefineManager.LBWeaponPos) ||
                                       modelClone.transform.RecursiveObjectExist(ConstDefineManager.RBWeaponPos) ||
                                       modelClone.transform.RecursiveObjectExist(ConstDefineManager.LHWeaponPos) ||
                                       modelClone.transform.RecursiveObjectExist(ConstDefineManager.RHWeaponPos);
            if (!hasWeaponAttachment)
            {
                if (EditorUtility.DisplayDialog("提示!", "模型没有武器挂载点", "ok", "cancel"))
                {
                    playerModel = newModel;
                }
            }
            else
            {
                playerModel = newModel;
            }

            Object.DestroyImmediate(modelClone);
            #endregion
        }
        EditorGUILayout.Separator();
        if (GUILayout.Button("0-测试AssetBundle"))
        {
            _database      = SkinMeshRenderHolder.CreateInstance <SkinMeshRenderHolder>();
            _database.name = "First";
            SetData();
        }

        if (GUILayout.Button("1-创建材质"))
        {
            if (newModel != null)
            {
                if (JianghuPlayerAssetManager_V2.GenerateMaterials(playerModel, out errorInfo))
                {
                    EditorUtility.DisplayDialog("Character Generator", "创建材质成功", "ok", "cancel");
                }
                else
                {
                    EditorUtility.DisplayDialog("Character Generator", "创建材质失败", "ok", "cancel");
                }
            }
            else
            {
            }
        }

        if (GUILayout.Button("2-分解动画"))
        {
            if (newModel != null)
            {
                if (JianghuPlayerAssetManager_V2.SplitAnimations(playerModel, out errorInfo))
                {
                    EditorUtility.DisplayDialog("Character Generator", "分解动画成功", "ok", "cancel");
                }
                else
                {
                    EditorUtility.DisplayDialog("Character Generator", "分解动画失败", "ok", "cancel");
                }
            }
            else
            {
            }
        }

        if (GUILayout.Button("3-生成角色基础预设件"))
        {
            if (newModel != null)
            {
                if (JianghuPlayerAssetManager_V2.GenerateRoleBaseAsset(playerModel, out errorInfo))
                {
                    EditorUtility.DisplayDialog("Character Generator", "生成角色基础预设件成功", "ok", "cancel");
                }
                else
                {
                    EditorUtility.DisplayDialog("Character Generator", "生成角色基础预设件失败", "ok", "cancel");
                }
            }
            else
            {
            }
        }

        //生成蒙皮物件
        if (GUILayout.Button("4-生成蒙皮物件"))
        {
            if (newModel != null)
            {
                if (JianghuPlayerAssetManager_V2.GenerateRoleSkinAsset(playerModel, out errorInfo))
                {
                    EditorUtility.DisplayDialog("Character Generator", "生成蒙皮物件成功", "ok", "cancel");
                }
                else
                {
                    EditorUtility.DisplayDialog("Character Generator", "生成蒙皮物件失败", "ok", "cancel");
                }
            }
            else
            {
            }
        }

        EditorGUILayout.Separator();
        EditorGUILayout.Separator();

        //生成一个角色
        if (GUILayout.Button("生成一个角色"))
        {
            RoleGenerate.GenerateRole("char01", "Char01_001", false, MESHDENSITY.HIGHT);
        }

        if (GUILayout.Button("生成一个角色(低模)"))
        {
            RoleGenerate.GenerateRole("Char01", "Char01_001", false, MESHDENSITY.LOW);
        }

        GUILayout.BeginHorizontal();

        GUILayout.EndHorizontal();
        GUILayout.Label(errorInfo);
    }