// CombatOrganizerEditor.cs (最终修复版) #if UNITY_EDITOR using Continentis.MainGame.Character; using SLSFramework.UModAssistance; using UnityEditor; using UnityEngine; namespace Continentis { [CustomEditor(typeof(CombatOrganizer))] public class CombatOrganizerEditor : DataEditor { private SerializedProperty _playerCharactersProp; private SerializedProperty _enemyCharactersProp; private string _pickerTargetListName; // --- 核心修改 1:声明一个用于存储我们自定义样式的变量 --- private GUIStyle _boldFoldoutStyle; protected override void OnEnable() { base.OnEnable(); _playerCharactersProp = serializedObject.FindProperty("playerCharacters"); _enemyCharactersProp = serializedObject.FindProperty("enemyCharacters"); } public override void OnInspectorGUI() { // --- 核心修改 2:在OnInspectorGUI的开头初始化我们的自定义样式 --- // 我们只在需要的时候创建一次,以避免性能开销 if (_boldFoldoutStyle == null) { // 以默认的Foldout样式为基础 _boldFoldoutStyle = new GUIStyle(EditorStyles.foldout); // 将字体样式设置为粗体 _boldFoldoutStyle.fontStyle = FontStyle.Bold; } serializedObject.Update(); DrawCharacterListGUI(_playerCharactersProp); EditorGUILayout.Space(); DrawCharacterListGUI(_enemyCharactersProp); HandleObjectPicker(); serializedObject.ApplyModifiedProperties(); } } } #endif