111 lines
3.0 KiB
C#
111 lines
3.0 KiB
C#
using UnityEngine;
|
||
using static XPlugin.Data.JsonLiteDB.JsonLiteDB;
|
||
public class GameLevelInfo
|
||
{
|
||
/// <summary>
|
||
/// 区域id
|
||
/// </summary>
|
||
public int AreaId;
|
||
|
||
/// <summary>
|
||
/// 宠物id随机范围
|
||
/// </summary>
|
||
public int[] PetId = null;
|
||
|
||
/// <summary>
|
||
/// 宠物初始(x, y, z, 旋转, 大小,等级, 状态)
|
||
/// </summary>
|
||
public float[] PetInit;
|
||
|
||
/// <summary>
|
||
/// 怪物id随机范围
|
||
/// </summary>
|
||
public int[] EnemyId = null;
|
||
|
||
/// <summary>
|
||
/// 怪物初始(x,y,z,大小,旋转,等级,状态)
|
||
/// </summary>
|
||
public float[] EnemyInit;
|
||
|
||
/// <summary>
|
||
/// 复活点
|
||
/// </summary>
|
||
public Vector3 RevivePoint = Vector3.zero;
|
||
|
||
/// <summary>
|
||
/// 笼子初始(x,y,z,旋转)
|
||
/// </summary>
|
||
public float[] CageInit = null;
|
||
|
||
/// <summary>
|
||
/// 战斗区域初始(x,y,z,长,高,宽)
|
||
/// </summary>
|
||
public float[] BattleAreaInit = null;
|
||
|
||
public GameLevelInfo(TableReader table)
|
||
{
|
||
AreaId = table["AreaId"].OptInt();
|
||
PetId = ParseStringToIntArray(table["PetId"].OptString(""));
|
||
PetInit = ParseStringToFloatArray(table["PetInit"].OptString(""));
|
||
EnemyId = ParseStringToIntArray(table["EnemyId"].OptString(""));
|
||
EnemyInit = ParseStringToFloatArray(table["EnemyInit"].OptString(""));
|
||
RevivePoint = StringToVector(table["RevivePoint"].OptString(""));
|
||
CageInit = ParseStringToFloatArray(table["CageInit"].OptString(""));
|
||
BattleAreaInit = ParseStringToFloatArray(table["BattleAreaInit"].OptString(""));
|
||
}
|
||
|
||
public Vector3 StringToVector(string input)
|
||
{
|
||
if (input == "")
|
||
{
|
||
return Vector3.zero;
|
||
}
|
||
// 去掉字符串中的括号和空格
|
||
input = input.Replace("(", "").Replace(")", "").Replace(" ", "");
|
||
|
||
// 将字符串按逗号分割成三个部分
|
||
string[] parts = input.Split(',');
|
||
|
||
// 将每个部分解析为浮点数
|
||
float x = float.Parse(parts[0]);
|
||
float y = float.Parse(parts[1]);
|
||
float z = float.Parse(parts[2]);
|
||
|
||
// 创建并返回 Vector3
|
||
return new Vector3(x, y, z);
|
||
}
|
||
|
||
int[] ParseStringToIntArray(string input)
|
||
{
|
||
if (input == "")
|
||
{
|
||
return null;
|
||
}
|
||
string[] elements = input.Replace("[", "").Replace("]", "").Split(',');
|
||
int[] intArray = new int[elements.Length];
|
||
|
||
for (int i = 0; i < elements.Length; i++)
|
||
{
|
||
intArray[i] = int.Parse(elements[i]);
|
||
}
|
||
return intArray;
|
||
}
|
||
|
||
float[] ParseStringToFloatArray(string input)
|
||
{
|
||
if (input == "")
|
||
{
|
||
return null;
|
||
}
|
||
string[] elements = input.Replace("(", "").Replace(")", "").Split(',');
|
||
float[] floatArray = new float[elements.Length];
|
||
for (int i = 0; i < elements.Length; i++)
|
||
{
|
||
floatArray[i] = float.Parse(elements[i]);
|
||
}
|
||
return floatArray;
|
||
}
|
||
}
|
||
|
||
|