Unity 编辑器显示二维数组
时间: 2024-05-09 14:16:05 浏览: 330
Array2DEditor:一点点代码即可从Unity的自定义检查器中查看二维数组
在 Unity 编辑器中显示二维数组可以使用多种方法,以下是其中两种常见的方法:
1. 在 Inspector 窗口中使用自定义编辑器脚本
编写一个继承自 Editor 类的自定义编辑器脚本,然后将其挂载到包含二维数组的 GameObject 上。在脚本中,可以使用 SerializedProperty 类访问二维数组的每个元素并在 Inspector 窗口中显示它们。示例代码如下:
```csharp
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(MyScript))]
public class MyScriptEditor : Editor
{
SerializedProperty myArray;
void OnEnable()
{
myArray = serializedObject.FindProperty("myArray");
}
public override void OnInspectorGUI()
{
serializedObject.Update();
EditorGUILayout.PropertyField(myArray, true);
serializedObject.ApplyModifiedProperties();
}
}
```
其中,MyScript 是包含二维数组的脚本,myArray 是二维数组的 SerializedProperty 对象。
2. 在场景中使用 GUI 控件
在场景中使用 GUI 控件可以在游戏运行时或编辑器运行时显示二维数组。可以使用 GUILayout 或 EditorGUI 中的控件来创建表格或网格来显示二维数组。示例代码如下:
```csharp
using UnityEngine;
public class MyScript : MonoBehaviour
{
public int[,] myArray = new int[3, 3];
void OnGUI()
{
for (int i = 0; i < myArray.GetLength(0); i++)
{
GUILayout.BeginHorizontal();
for (int j = 0; j < myArray.GetLength(1); j++)
{
myArray[i, j] = EditorGUILayout.IntField(myArray[i, j], GUILayout.Width(50));
}
GUILayout.EndHorizontal();
}
}
}
```
在该示例中,使用 GUILayout.BeginHorizontal 和 GUILayout.EndHorizontal 创建每行,使用 EditorGUILayout.IntField 显示二维数组的每个元素,并使用 GUILayout.Width 控制每个元素的宽度。
阅读全文