using System.Collections.Generic; using Sirenix.OdinInspector; using UnityEditor; using UnityEngine; namespace Stary.Evo { [CreateAssetMenu(fileName = "ArtSceneData", menuName = "Evo/ArtSceneData")] public class ArtSceneData : ScriptableObject { [ListDrawerSettings(DraggableItems = false, ShowFoldout = false, ShowPaging = false, ShowItemCount = false)] public List artScenes = new List(); } [System.Serializable] public class ArtScene { [LabelText("场景名称")] public string sceneName; [LabelText("场景实例")] [OnValueChanged("LoadScenePath")] public SceneAsset sceneAsset; [LabelText("场景路径")] [ReadOnly] public string scenePath; [LabelText("场景标识符")] [ReadOnly] public string sceneIdentifier; #if UNITY_EDITOR public void LoadScenePath() { if (sceneAsset == null) { Debug.LogError($"ArtScene {sceneName} 资源不存在,请检查!"); return; } scenePath = AssetDatabase.GetAssetPath(sceneAsset); sceneIdentifier = $"Scenes_{sceneAsset.name}"; AssetDatabase.SaveAssets(); } #endif } }