using UnityEngine; using PhxhSDK.Editor.FileChecker.Data; using Gameplay.Level; using PhxhSDK.Phxh; using System.Collections.Generic; namespace PhxhSDK.Editor.FileChecker { /// /// 关卡文件路线检查器 /// 检查关卡json文件的路线配置是否正确 /// 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 setId = new(); public override string CheckLevel(string filePath, TextAsset textAsset) { string res = string.Empty; if (null == textAsset) return "文件加载失败"; LevelData levelData = JsonHelper.LoadJsonFromText(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; } } }