46 lines
1.5 KiB
C#
46 lines
1.5 KiB
C#
|
|
using UnityEngine;
|
|||
|
|
using PhxhSDK.Editor.FileChecker.Data;
|
|||
|
|
using Gameplay.Level;
|
|||
|
|
using PhxhSDK.Phxh;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
|
|||
|
|
namespace PhxhSDK.Editor.FileChecker
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 关卡文件路线检查器
|
|||
|
|
/// 检查关卡json文件的路线配置是否正确
|
|||
|
|
/// </summary>
|
|||
|
|
public class LevelFileRoadChecker : BaseLevelChecker
|
|||
|
|
{
|
|||
|
|
public override string CheckerName => "关卡文件路线检查";
|
|||
|
|
public override string RecommendedHandling => "修改关卡文件路线配置";
|
|||
|
|
public override CheckerTabType belongTab => CheckerTabType.Level;
|
|||
|
|
public override bool HasAutoProgress => false;
|
|||
|
|
|
|||
|
|
private HashSet<int> setId = new();
|
|||
|
|
|
|||
|
|
public override string CheckLevel(string filePath, TextAsset textAsset)
|
|||
|
|
{
|
|||
|
|
string res = string.Empty;
|
|||
|
|
|
|||
|
|
if (null == textAsset)
|
|||
|
|
return "文件加载失败";
|
|||
|
|
|
|||
|
|
LevelData levelData = JsonHelper.LoadJsonFromText<LevelData>(textAsset.text);
|
|||
|
|
if(null == levelData)
|
|||
|
|
return $"关卡json反序列化为{nameof(LevelData)}失败";
|
|||
|
|
|
|||
|
|
setId.Clear();
|
|||
|
|
foreach (var patrolRoadData in levelData.patrolRoadData)
|
|||
|
|
{
|
|||
|
|
if(!setId.Add(patrolRoadData.id))
|
|||
|
|
res += $"关卡路线id重复,id:{patrolRoadData.id}\n";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (res.Equals(string.Empty))
|
|||
|
|
return null;
|
|||
|
|
else
|
|||
|
|
return res;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|