unity的编辑器窗口扩展 如何实现列表界面
时间: 2023-09-25 13:12:01 浏览: 131
在 Unity 编辑器中创建列表界面,可以通过 EditorWindow 和 GUILayout 相关的函数来实现。以下是一个简单的示例代码:
```csharp
using UnityEngine;
using UnityEditor;
public class MyWindow : EditorWindow {
private string[] items = new string[] { "Item 1", "Item 2", "Item 3" };
private int selectedIndex = -1;
[MenuItem("Window/My Window")]
public static void ShowWindow() {
GetWindow<MyWindow>("My Window");
}
private void OnGUI() {
GUILayout.Label("My List", EditorStyles.boldLabel);
// 绘制列表
selectedIndex = GUILayout.SelectionGrid(selectedIndex, items, 1);
// 绘制选中的项
if (selectedIndex >= 0 && selectedIndex < items.Length) {
GUILayout.Label("Selected Item: " + items[selectedIndex]);
}
}
}
```
这个代码中,首先定义了一个字符串数组 items 和一个整型变量 selectedIndex,用于存储列表项和当前选中项的索引。在 OnGUI 函数中,使用 GUILayout.Label 绘制列表的标题,然后使用 GUILayout.SelectionGrid 函数绘制列表,并将当前选中的项的索引存储到 selectedIndex 变量中。最后,如果存在选中的项,则使用 GUILayout.Label 显示选中的项的信息。
在 Unity 编辑器中使用这个窗口,可以通过菜单 Window -> My Window 打开。