在Unity编辑器中显示KeyValuePair(键值对),以便其可编辑,可以通过自定义Inspector来实现。
首先,创建一个自定义的Editor脚本,用于显示KeyValuePair。以下是一个示例代码:
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(YourScript))]
public class YourScriptEditor : Editor
{
public override void OnInspectorGUI()
{
YourScript yourScript = (YourScript)target;
foreach (KeyValuePair<string, int> kvp in yourScript.keyValuePairs)
{
EditorGUILayout.BeginHorizontal();
kvp.Key = EditorGUILayout.TextField(kvp.Key);
kvp.Value = EditorGUILayout.IntField(kvp.Value);
EditorGUILayout.EndHorizontal();
}
if (GUILayout.Button("Add KeyValuePair"))
{
yourScript.keyValuePairs.Add(new KeyValuePair<string, int>("", 0));
}
if (GUILayout.Button("Remove KeyValuePair"))
{
if (yourScript.keyValuePairs.Count > 0)
{
yourScript.keyValuePairs.RemoveAt(yourScript.keyValuePairs.Count - 1);
}
}
if (GUI.changed)
{
EditorUtility.SetDirty(target);
}
}
}
在上述代码中,YourScript
是包含keyValuePairs
字段的脚本。keyValuePairs
是一个List<KeyValuePair<string, int>>
类型的字段,用于存储键值对。
将上述代码保存为一个名为YourScriptEditor.cs
的文件,并将其放置在Unity项目的Editor文件夹中。
然后,在Unity编辑器中,选择包含keyValuePairs
字段的脚本(YourScript
),在Inspector窗口中将其自定义为YourScriptEditor
。
现在,当您在Unity编辑器中选择包含keyValuePairs
字段的脚本时,您将看到一个可编辑的键值对列表。您可以通过点击"Add KeyValuePair"按钮来添加新的键值对,通过点击"Remove KeyValuePair"按钮来删除最后一个键值对。
请注意,这只是一个示例,您可以根据自己的需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云