public List <RoleTypeInfo> ParseRoleJson() { roleTypeInfoList = new List <RoleTypeInfo>(); TextAsset roleText = Resources.Load <TextAsset>("RoleTypeInfos"); string roleJson = roleText.ToString(); JSONObject j = new JSONObject(roleJson); foreach (JSONObject temp in j.list) { RoleTypeInfo roleTypeInfo = new RoleTypeInfo(); roleTypeInfo.roleType = (RoleType)Enum.Parse(typeof(RoleType), temp["roleTypeString"].str); roleTypeInfo.prefabPath = temp["prefabPath"].str; roleTypeInfo.maxHP = (int)temp["maxHP"].n; roleTypeInfo.strength = (int)temp["strength"].n; roleTypeInfo.intellect = (int)temp["intellect"].n; roleTypeInfo.agility = (int)temp["agility"].n; roleTypeInfo.stamina = (int)temp["stamina"].n; roleTypeInfo.attack = (int)temp["attack"].n; roleTypeInfo.attackDis = temp["attackDis"].n; roleTypeInfo.attackPrefab = temp["attackPrefab"].str; roleTypeInfo.headPortrait = temp["headPortrait"].str; roleTypeInfoList.Add(roleTypeInfo); } return(roleTypeInfoList); }
/// <summary> /// 初始化角色属性 /// </summary> /// <param name="roleTypeInfo"></param> public void SetAttri(RoleTypeInfo roleTypeInfo) { this.roleType = roleTypeInfo.roleType; this.attackDis = roleTypeInfo.attackDis; this.attackPrefab = roleTypeInfo.attackPrefab; this.basicHP = roleTypeInfo.maxHP; strength = this.basicStrength = roleTypeInfo.strength; intellect = this.basicIntellect = roleTypeInfo.intellect; agility = this.basicAgility = roleTypeInfo.agility; stamina = this.basicStamina = roleTypeInfo.stamina; attack = this.basicAttack = roleTypeInfo.attack; currentHP = MaxHP; }
public void SpawnRole(RoleType roleType) { roletypeInfo = model.GetRoleTypeInfo(roleType); GameObject temp = Resources.Load <GameObject>(roletypeInfo.prefabPath); role = Instantiate(temp, new Vector3(0, 0.5f, 0), Quaternion.identity); cameraManager.FollowRole(role); role.GetComponent <RoleData>().SetAttri(roletypeInfo); switch (roleType) { case RoleType.Archer: role.AddComponent <ArcherControl>().enabled = false; break; case RoleType.Mage: role.AddComponent <MageControl>().enabled = false; break; default: role.AddComponent <PlayerControl>().enabled = false; break; } Model.Instance.SetRoleData(role.GetComponent <RoleData>()); }