Exemplo n.º 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);
    }
Exemplo n.º 2
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);
        }
Exemplo n.º 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;
        }
Exemplo n.º 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 = 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();
        }
Exemplo n.º 5
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);
    }
Exemplo n.º 6
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();
        }
Exemplo n.º 7
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);
 }
Exemplo n.º 8
0
    private static void MakePlayGenerateConfigDataList(string xmlFileName, string sheetName)
    {
        string xmlPath = Path.Combine(EW_RESOURCE_PLAYER_GENERATE_CONFIG_FOLDER, xmlFileName + ".xml");

        TextReader tr   = new StreamReader(xmlPath);
        string     text = tr.ReadToEnd();

        tr.Close();
        tr.Dispose();
        if (string.IsNullOrEmpty(text))
        {
            Debug.LogError("Player generate config file not exist");
            return;
        }
        else
        {
            XmlSpreadSheetReader.ReadSheet(text, sheetName);


            XmlSpreadSheet sheet = XmlSpreadSheetReader.Output;

            string[] keys = XmlSpreadSheetReader.Keys;

            object[] levelIds = sheet[keys[0]];

            List <PlayerGenerateConfigData> tempList = new List <PlayerGenerateConfigData>();

            for (int i = 1; i < levelIds.Length; i++)
            {
                PlayerGenerateConfigData data = new PlayerGenerateConfigData();
                data.PlayerId      = Convert.ToByte(sheet["PlayerId"][i]);
                data.PlayerName    = Convert.ToString(sheet["PlayerName"][i]);
                data.DefaultAvatar = Convert.ToString(sheet["DefaultAvatar"][i]);
                data.DefaultAnim   = Convert.ToString(sheet["DefaultAnim"][i]);
                data.DefaultWeapon = Convert.ToString(sheet["DefaultWeapon"][i]);
                if (!string.IsNullOrEmpty(data.DefaultWeapon))
                {
                    var WeaponPath = Path.Combine(EW_ASSET_PLAYER_WEAPON_FOLDER, data.DefaultWeapon + ".prefab");
                    data.WeaponObj = AssetDatabase.LoadAssetAtPath(WeaponPath, typeof(GameObject)) as GameObject;
                }
                var weaponPositins = Convert.ToString(sheet["WeaponPosition"][i]).Split('+');
                if (weaponPositins.Length > 0)
                {
                    data.WeaponPosition = weaponPositins;
                }
                else
                {
                    data.WeaponPosition = new string[] { Convert.ToString(sheet["WeaponPosition"][i]) };
                }
                var normalSkills = Convert.ToString(sheet["NormalSkillID"][i]).Split('+');
                data.NormalSkillID    = new int[6];
                data.NormalSkillID[0] = Convert.ToInt32(normalSkills[0]); //突击
                data.NormalSkillID[1] = Convert.ToInt32(normalSkills[1]); //突击后的攻击
                data.NormalSkillID[2] = Convert.ToInt32(normalSkills[2]); //以下是修改前的普攻4段
                data.NormalSkillID[3] = Convert.ToInt32(normalSkills[3]);
                data.NormalSkillID[4] = Convert.ToInt32(normalSkills[4]);
                data.NormalSkillID[5] = Convert.ToInt32(normalSkills[5]);
                data.ScrollSkillID    = Convert.ToInt32(normalSkills[4]);
                if (normalSkills.Length >= 9)
                {
                    data.BUFF_SKILLID  = Convert.ToInt32(normalSkills[7]);
                    data.FATAL_SKILLID = Convert.ToInt32(normalSkills[8]);
                }
                if (normalSkills.Length >= 10)
                {
                    data.StandUpSkillID = Convert.ToInt32(normalSkills[9]);
                }
                if (normalSkills.Length >= 12)
                {
                    data.OpeningSkillID_1 = Convert.ToInt32(normalSkills[10]);
                    data.OpeningSkillID_2 = Convert.ToInt32(normalSkills[11]);
                }

                string skillEffectName = Convert.ToString(sheet["SkillEffect"][i]);
                if (skillEffectName == "null")
                {
                    skillEffectName = null;
                }
                if (!string.IsNullOrEmpty(skillEffectName))
                {
                    var effectPath    = Path.Combine(EW_ASSET_PLAYER_SKILLEFFECT_FOLDER, skillEffectName + ".prefab");
                    var skillEffectGo = AssetDatabase.LoadAssetAtPath(effectPath, typeof(GameObject)) as GameObject;
                    data.SkillEffect = skillEffectGo;
                }
                //阴影Prefabs
                data.ShadowEffect = AssetDatabase.LoadAssetAtPath(Path.Combine(EW_ASSET_PLAYER_SKILLEFFECT_FOLDER, "JH_Eff_Scenes_011.prefab"), typeof(GameObject)) as GameObject;
                if (sheetName == "Battle")
                {
                    var normalBackAttackSkills = Convert.ToString(sheet["BackAttack"][i]).Split('+'); //普通攻击,边退边攻击
                    data.NormalBackAttackSkillID    = new int[6];
                    data.NormalBackAttackSkillID[0] = Convert.ToInt32(normalBackAttackSkills[0]);     //突击
                    data.NormalBackAttackSkillID[1] = Convert.ToInt32(normalBackAttackSkills[1]);     //突击后的攻击
                    data.NormalBackAttackSkillID[2] = Convert.ToInt32(normalBackAttackSkills[2]);     //以下是修改前的普攻4段
                    data.NormalBackAttackSkillID[3] = Convert.ToInt32(normalBackAttackSkills[3]);
                    data.NormalBackAttackSkillID[4] = Convert.ToInt32(normalBackAttackSkills[4]);
                    data.NormalBackAttackSkillID[5] = Convert.ToInt32(normalBackAttackSkills[5]);

                    string runEffectStr = Convert.ToString(sheet["RunEffect"][i]);
                    data.RunEffect = AssetDatabase.LoadAssetAtPath(Path.Combine("Assets", runEffectStr + ".prefab"), typeof(GameObject)) as GameObject;
                }


                var animations = Convert.ToString(sheet["Animations"][i]).Split('+');
                if (animations.Length > 0)
                {
                    data.Animations = animations;
                }
                else
                {
                    data.Animations = new string[] { Convert.ToString(sheet["Animations"][i]) };
                }
                if (sheetName == "UI")
                {
                    data.ItemAniIdle         = Convert.ToString(sheet["Item_Ani_Idle"][i]);
                    data.ItemAniChange       = Convert.ToString(sheet["Item_Ani_Change"][i]).Split('|');
                    data.Item_WeaponPosition = Convert.ToString(sheet["Item_WeaponPosition"][i]).Split('+');

                    string[] charPosStr = Convert.ToString(sheet["Avatar_CharPos"][i]).Split('+');
                    data.Avatar_CharPos   = new Vector3(float.Parse(charPosStr[1]), float.Parse(charPosStr[2]), float.Parse(charPosStr[3]));
                    data.Avatar_WeaponPos = Convert.ToString(sheet["Avatar_WeaponPos"][i]).Split('+');
                    data.Avatar_Ani       = Convert.ToString(sheet["Avatar_Ani"][i]).Split('|');
//                    data.RoleUI_ItemToAvatar_Ani=Convert.ToString(sheet["ItemToAvatar_Ani"][i]).Split('|');
//                    data.RoleUI_AvatarToItem_Ani=Convert.ToString(sheet["AvatarToItem_Ani"][i]).Split('|');
                    data.Item_InAni = Convert.ToString(sheet["Item_InAni"][i]).Split('|');

                    string[] Item_InEf = Convert.ToString(sheet["Item_InEff"][i]).Split('|');
                    List <PackToFashingEff> Item_InEfs = new List <PackToFashingEff>();
                    foreach (var item in Item_InEf)
                    {
                        PackToFashingEff eff           = new PackToFashingEff();
                        string           ItemInEffPath = Path.Combine(EW_ASSET_PLAYER_SKILLEFFECT_FOLDER, item.Split('+')[0] + ".prefab");
                        eff.Eff       = AssetDatabase.LoadAssetAtPath(ItemInEffPath, typeof(GameObject)) as GameObject;
                        eff.StartTime = Convert.ToSingle(item.Split('+')[1]);
                        Item_InEfs.Add(eff);
                    }
                    data.Item_InEff = Item_InEfs.ToArray();

                    data.Item_OutAni = Convert.ToString(sheet["Item_OutAni"][i]).Split('|');

                    string[] Item_OutEff = Convert.ToString(sheet["Item_OutEff"][i]).Split('|');
                    List <PackToFashingEff> Item_OutEffs = new List <PackToFashingEff>();
                    foreach (var item in Item_OutEff)
                    {
                        PackToFashingEff eff           = new PackToFashingEff();
                        string           ItemInEffPath = Path.Combine(EW_ASSET_PLAYER_SKILLEFFECT_FOLDER, item.Split('+')[0] + ".prefab");
                        eff.Eff       = AssetDatabase.LoadAssetAtPath(ItemInEffPath, typeof(GameObject)) as GameObject;
                        eff.StartTime = Convert.ToSingle(item.Split('+')[1]);
                        Item_OutEffs.Add(eff);
                    }
                    data.Item_OutEff = Item_OutEffs.ToArray();

                    data.Avatar_InAni = Convert.ToString(sheet["Avatar_InAni"][i]).Split('|');
                    string[] Avatar_InEff = Convert.ToString(sheet["Avatar_InEff"][i]).Split('|');
                    List <PackToFashingEff> Avatar_InEffs = new List <PackToFashingEff>();
                    foreach (var item in Avatar_InEff)
                    {
                        PackToFashingEff eff           = new PackToFashingEff();
                        string           ItemInEffPath = Path.Combine(EW_ASSET_PLAYER_SKILLEFFECT_FOLDER, item.Split('+')[0] + ".prefab");
                        eff.Eff       = AssetDatabase.LoadAssetAtPath(ItemInEffPath, typeof(GameObject)) as GameObject;
                        eff.StartTime = Convert.ToSingle(item.Split('+')[1]);
                        Avatar_InEffs.Add(eff);
                    }
                    data.Avatar_InEff  = Avatar_InEffs.ToArray();
                    data.Avatar_OutAni = Convert.ToString(sheet["Avatar_OutAni"][i]).Split('|');
                    string[] Avatar_OutEff = Convert.ToString(sheet["Avatar_OutEff"][i]).Split('|');
                    List <PackToFashingEff> Avatar_OutEffs = new List <PackToFashingEff>();
                    foreach (var item in Avatar_OutEff)
                    {
                        PackToFashingEff eff           = new PackToFashingEff();
                        string           ItemInEffPath = Path.Combine(EW_ASSET_PLAYER_SKILLEFFECT_FOLDER, item.Split('+')[0] + ".prefab");
                        eff.Eff       = AssetDatabase.LoadAssetAtPath(ItemInEffPath, typeof(GameObject)) as GameObject;
                        eff.StartTime = Convert.ToSingle(item.Split('+')[1]);
                        Avatar_OutEffs.Add(eff);
                    }
                    data.Avatar_OutEff = Avatar_OutEffs.ToArray();

                    data.Avatar_DefaultAni = Convert.ToString(sheet["Avatar_DefaultAni"][i]).Split('|');
                    string[] camPosStr = Convert.ToString(sheet["Avatar_CameraPos"][i]).Split('+');
                    data.Avatar_CameraPos = new Vector3(float.Parse(camPosStr[1]), float.Parse(camPosStr[2]), float.Parse(camPosStr[3]));
                    string[] camTargerPosStr = Convert.ToString(sheet["Avatar_CameraTargetPos"][i]).Split('+');
                    data.Avatar_CameraTargetPos = new Vector3(float.Parse(camTargerPosStr[1]), float.Parse(camTargerPosStr[2]), float.Parse(camTargerPosStr[3]));

                    string[] roleCharPosStr = Convert.ToString(sheet["RoleUI_CharPos"][i]).Split('+');
                    data.RoleUI_CharPos        = new Vector3(float.Parse(roleCharPosStr[1]), float.Parse(roleCharPosStr[2]), float.Parse(roleCharPosStr[3]));
                    data.RoleUI_WeaponPosition = Convert.ToString(sheet["RoleUI_WeaponPosition"][i]).Split('+');
                    data.RoleUI_Ani_Idle       = Convert.ToString(sheet["RoleUI_Ani_Idle"][i]).Split('|');
                    string[] roleCamPosStr = Convert.ToString(sheet["RoleUI_CameraPos"][i]).Split('+');
                    data.RoleUI_CameraPos = new Vector3(float.Parse(roleCamPosStr[1]), float.Parse(roleCamPosStr[2]), float.Parse(roleCamPosStr[3]));
                    string[] camTargetPosStr = Convert.ToString(sheet["RoleUI_CameraTargetPos"][i]).Split('+');
                    data.RoleUI_CameraTargetPos = new Vector3(float.Parse(camTargetPosStr[1]), float.Parse(camTargetPosStr[2]), float.Parse(camTargetPosStr[3]));

                    data.PVP_Ready   = Convert.ToString(sheet["PVP_Ready"][i]).Split('|');
                    data.PVP_Success = Convert.ToString(sheet["PVP_Success"][i]).Split('|');
                    data.PVP_Fail    = Convert.ToString(sheet["PVP_Fail"][i]).Split('|');

                    data.HitFlyHeight    = Convert.ToSingle(sheet["HitFlyHeight"][i]);
                    data.BeAttackBreakLV = Convert.ToInt32(sheet["BeAttackBreakLV"][i]);
                    data.BeHitFlyBreakLV = Convert.ToInt32(sheet["BeHitFlyBreakLV"][i]);

                    data.Team_WeaponPosition = Convert.ToString(sheet["Team_WeaponPosition"][i]).Split('+');
                    data.Team_Ani_Idle       = Convert.ToString(sheet["Team_Ani_Idle"][i]).Split('+');
                    data.Team_Ani_Join       = Convert.ToString(sheet["Team_Ani_Join"][i]).Split('+');
                }
                tempList.Add(data);
            }
            CreatePlayerGenerateConfigDataBase(tempList, xmlFileName + sheetName);
        }
    }
Exemplo n.º 9
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") });
         */
    }
Exemplo n.º 10
0
    private void CreatePlayer(IEntityDataStruct entityDataStruct, EntityModelPartial entityModelPartial)
    {
        //if(GameManager.Instance.CurrentState == GameManager.GameState.GAME_STATE_STORYLINE)
        //{
        //	return;
        //}


        switch (entityModelPartial)
        {
        case EntityModelPartial.DataStruct:
            EntityModel playerDataModel = new EntityModel();
            playerDataModel.EntityDataStruct = entityDataStruct;
            EntityController.Instance.RegisteEntity(entityDataStruct.SMsg_Header.uidEntity, playerDataModel);

            break;

        case EntityModelPartial.GameObject:

            if (null == PlayerManager.Instance.FindPlayerByActorId(((IPlayerDataStruct)entityDataStruct).PlayerActorID))
            {
                return;
            }
            //应该按ID或类型读配置加载不同的角色。
            bool  isHero = entityDataStruct.SMsg_Header.nIsHero == 1;
            float x = 100, z = -100;

            byte kind             = 0;
            int  fashionId        = 0;
            var  playerDataStruct = (IPlayerDataStruct)entityDataStruct;
            x         = playerDataStruct.PlayerX;
            z         = playerDataStruct.PlayerY;
            kind      = (byte)playerDataStruct.GetCommonValue().PLAYER_FIELD_VISIBLE_VOCATION;
            fashionId = playerDataStruct.GetCommonValue().PLAYER_FIELD_VISIBLE_FASHION;

            bool inTown     = GameManager.Instance.CurrentState == GameManager.GameState.GAME_STATE_TOWN;
            var  configData = inTown ?
                              PlayerDataManager.Instance.GetTownItemData(kind)
                    : PlayerDataManager.Instance.GetBattleItemData(kind);

            if (configData == null)
            {
                TraceUtil.Log("角色类型:" + kind + " 找不到配置信息");
            }
            var fashionItem = ItemDataManager.Instance.GetItemData(fashionId);

            var player = AssemblyPlayer(configData, kind, isHero, fashionItem == null?null:fashionItem._ModelId);

            player.layer = isHero?10:18;             //Player
            var heroBehaviour = player.AddComponent <PlayerBehaviour>();
            player.AddComponent <PlayerHurtFlash>(); //增加被攻击或者爆气特效脚本
            //heroBehaviour.ClickPointEffect = HeroClickPointEffect;   主角点击场面的反馈特效。
            var shadowEff = GameObject.Instantiate(configData.ShadowEffect) as GameObject;
            shadowEff.name                    = "shadow";
            shadowEff.transform.parent        = player.transform;
            shadowEff.transform.localPosition = new Vector3(0, 1, 0);
            //cache hurt point
            heroBehaviour.CacheHurtPoint();
            heroBehaviour.CacheShadow();

            PlayerGenerateConfigData battleConfig = PlayerDataManager.Instance.GetBattleItemData(kind);
            if (null != battleConfig.RunEffect)
            {
                GameObject runEff = GameObject.Instantiate(battleConfig.RunEffect) as GameObject;
                runEff.name                    = "run_effect";
                runEff.transform.parent        = player.transform;
                runEff.transform.localPosition = Vector3.zero;
                runEff.transform.localScale    = Vector3.one;
                heroBehaviour.CacheRunEffect();
            }


            var UIConfig = PlayerDataManager.Instance.GetUIItemData(kind);
            heroBehaviour.HitFlyHeight      = UIConfig.HitFlyHeight;
            heroBehaviour.BeBeAttackBreakLV = UIConfig.BeAttackBreakLV;
            heroBehaviour.BeHitFlyBreakLV   = UIConfig.BeHitFlyBreakLV;

            heroBehaviour.PlayerKind = kind;

            var playerPosition = new Vector3(0, 0.1f, 0);
            playerPosition = playerPosition.GetFromServer(x, z);

            player.transform.position = playerPosition;
            Quaternion playerDir = Quaternion.Euler(0, (float)playerDataStruct.GetUnitValue().sMsgPropCreateEntity_SC_UnitVisibleValue.UNIT_FIELD_DIR / 1000.0f, 0);
            player.transform.rotation = playerDir;

            TypeID type;
            heroBehaviour.EntityModel = EntityController.Instance.GetEntityModel(entityDataStruct.SMsg_Header.uidEntity, out type);

            if (isHero)
            {
                player.AddComponent <DontDestroy>();
            }
            else
            {
                if (GameManager.Instance.CurrentState == GameManager.GameState.GAME_STATE_BATTLE)
                {
                    //加入箭头挂载脚本
                        #if !UNITY_EDITOR
                    ArrowManager.Instance.AddTeammateArrow(player);
                        #endif
                }
            }

            #region 加入称号动画 (去掉)

            /*
             * int prestigeLevel = playerDataStruct.GetCommonValue().PLAYER_FIELD_VISIBLE_PRESTIGE_LEVEL;
             * var prestigeData = PlayerDataManager.Instance.GetPlayerPrestigeList().SingleOrDefault(p => p._pvpLevel == prestigeLevel);
             * if (prestigeData != null)
             * {
             *  GameObject medalPrefab = prestigeData._titlePrefab;
             *  if (medalPrefab != null)
             *  {
             *      GameObject medal = (GameObject)Instantiate(medalPrefab);
             *      MedalEffectBehaviour medalBehaviour = medal.AddComponent<MedalEffectBehaviour>();
             *      medalBehaviour.SetHeroTransform(heroBehaviour.transform);
             *      if (entityDataStruct.SMsg_Header.IsHero)
             *      {
             *          medal.AddComponent<DontDestroy>();
             *      }
             *      MedalManager.Instance.RegisterMedal(entityDataStruct.SMsg_Header.uidEntity, prestigeLevel, medalBehaviour);
             *  }
             * }
             */
            #endregion

            //加入头顶名字
            //if (playerDataStruct is SMsgPropCreateEntity_SC_MainPlayer)
            //{
            //    CreateTitle(((SMsgPropCreateEntity_SC_MainPlayer)playerDataStruct).Name, isHero, player.transform);
            //}
            if (GameManager.Instance.CurrentState != GameManager.GameState.GAME_STATE_PLAYERROOM && playerDataStruct is SMsgPropCreateEntity_SC_OtherPlayer)
            {
                var title = CreateTitle(entityDataStruct.SMsg_Header.uidEntity, ((SMsgPropCreateEntity_SC_OtherPlayer)playerDataStruct).Name, isHero, player.transform);
                heroBehaviour.PlayerTitleRef = title;
            }


            //称号
            //CreateTitle(entityDataStruct.SMsg_Header.uidEntity,player.transform);


            PlayerManager.Instance.AttachEntityDataModel(player, entityDataStruct.SMsg_Header.uidEntity);
            PlayerManager.Instance.AttachEntityDataModel(heroBehaviour, entityDataStruct.SMsg_Header.uidEntity);

            if (GameManager.Instance.CurrentState == GameManager.GameState.GAME_STATE_BATTLE)
            {
                GameManager.Instance.TryFindCameraTarget();
            }

            //根据当前游戏场景,改变玩家的技能,武器挂载等
            ////TraceUtil.Log("根据当前游戏场景,改变玩家的技能,武器挂载等在PlayerFactory");
            PlayerManager.Instance.PlayerChangeScene(GameManager.Instance.CurrentState, entityDataStruct.SMsg_Header.uidEntity);
            //PlayerManager.Instance.PlayerCreateProcess(player, heroBehaviour,GameManager.Instance.CurrentState);
            break;
        }
    }
Exemplo n.º 11
0
 /// <summary>
 /// 装配机器人玩家
 /// </summary>
 /// <returns>The robot.</returns>
 /// <param name="configData">Config data.</param>
 /// <param name="playerKind">Player kind.</param>
 /// <param name="avatarName">Avatar name.</param>
 public GameObject AssemblyRobot(PlayerGenerateConfigData configData, byte playerKind, string avatarName)
 {
     return(this.AssemblyPlayer(configData, playerKind, false, avatarName));
 }