#if UNITY_EDITOR using System; using UnityEditor; using UnityEngine; [CustomEditor(typeof(CubeConfigData))] [ExecuteInEditMode] public class PropDataEditor : Editor { public override void OnInspectorGUI() { CubeConfigData gridData = (CubeConfigData)target; DrawDefaultInspector(); if (GUILayout.Button("Initialize Grid")) { gridData.InitializePropGrid(); } var arr = gridData.GetArray(); // 显示和编辑二维数组 if (gridData.PropArr != null) { for (int i = gridData.PropRows - 1; i >= 0; i--) { EditorGUILayout.BeginHorizontal(); for (int j = 0; j < gridData.PropColumns; j++) { // arr[i, j] = EditorGUILayout.IntField(i + "x" + j,arr[i, j]); // Debug.Log(i + "x" + j); arr[i, j] = EditorGUILayout.IntField(arr[i, j]); } EditorGUILayout.EndHorizontal(); } } if (GUILayout.Button("Save Grid")) { gridData.Serializable2DArray(arr); // 修改数据后 EditorUtility.SetDirty(gridData); AssetDatabase.SaveAssets(); } } } #endif