首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在unity编辑器中显示以下KeyValuePair (以便它是可编辑的)

在Unity编辑器中显示KeyValuePair(键值对),以便其可编辑,可以通过自定义Inspector来实现。

首先,创建一个自定义的Editor脚本,用于显示KeyValuePair。以下是一个示例代码:

代码语言:txt
复制
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"按钮来删除最后一个键值对。

请注意,这只是一个示例,您可以根据自己的需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Unity编辑器】UnityEditor多重弹出窗体与编辑器窗口层级管理

最近马三为公司开发了一款触发器编辑器,对于这个编辑器策划所要求的质量很高,是模仿暴雪的那个触发器编辑器来做的,而且之后这款编辑器要作为公司内部的一个通用工具链使用。其实,在这款触发器编辑器之前,已经有一款用WinForm开发的1.0版触发器编辑器了,不过由于界面不太友好、操作繁琐以及学习使用成本较高,所以也饱受策划们的吐槽。而新研发的这款编辑器是直接嵌入在Unity中,作为Unity的拓展编辑器来使用的。当然在开发中,马三也遇到了种种的问题,不过还好,在同事的帮助下都一一解决了。本篇博客,马三就来和大家分享一下其中一个比较有趣的需求,RT,“UnityEditor多重弹出窗体与编辑器窗口层级管理”。   针对一些逻辑和数据部分的代码,由于是公司机密而且与本文的内容联系不大,马三就不和大家探讨了,本文中我们只关注UI的表现部分。(本文中所有的样例代码均经过重写,只用了原来的思想,代码结构已经和公司的编辑器完全不一样了,因此不涉及保密协议,完全开源,大家可以放心使用)先来说下今天我们要探讨的这个需求吧:

03
  • 领券