#if UNITY_EDITOR using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using Goap.Agent.Core; using Goap.Core; using UnityEditor; using UnityEngine; namespace Goap.Runtime { public class ClassScanner { public static Scripts GetClasses(string nameSpace, string folder) { var scripts = GetDerivedClassNames(nameSpace, folder); return new Scripts { goals = scripts.Where(x => typeof(IGoal).IsAssignableFrom(x.Type)).ToArray(), actions = scripts.Where(x => typeof(IAction).IsAssignableFrom(x.Type)).ToArray(), targetSensors = scripts.Where(x => typeof(ITargetSensor).IsAssignableFrom(x.Type)).ToArray(), worldSensors = scripts.Where(x => typeof(IWorldSensor).IsAssignableFrom(x.Type)).ToArray(), multiSensors = scripts.Where(x => typeof(IMultiSensor).IsAssignableFrom(x.Type)).ToArray(), worldKeys = scripts.Where(x => typeof(IWorldKey).IsAssignableFrom(x.Type)).ToArray(), targetKeys = scripts.Where(x => typeof(ITargetKey).IsAssignableFrom(x.Type)).ToArray(), }; } public static List