如何在统一编辑器中显示以下KeyValuePair(以便可编辑)

时间:2018-02-25 01:20:59

标签: unity3d unity-editor

在bitesize中:我有一个KeyValuePair,我想在Inspector中显示并进行编辑。

我有自定义键值对的以下实现类。

using UnityEngine;
namespace Unit.Properties
{
    public class ClassificationPropertySuperClass : MonoBehaviour, IClassificationUnitProperty
    {
        [SerializeField]
        KeyValuePair<UnitClassifications, float> value;

        public KeyValuePair<UnitClassifications, float> GetComponentValue()
        {
            return value;
        }

        public void SetComponentValue(KeyValuePair<UnitClassifications, float> value)
        {
            this.value = value;
        }
    }
}

仅供参考,这是我制作的自定义KeyValuePair类

[System.Serializable]
public class KeyValuePair<TKey, TValue>
{
    public KeyValuePair()
    {
    }

    public KeyValuePair(TKey key, TValue value)
    {
        Key = key;
        Value = value;
    }

    public TKey Key { get; set; }
    public TValue Value { get; set; }
}

现在问题的核心是我无法在检查器中编辑这些值。对于设计师来说,这绝对是必须的。我很想创建一个编辑器脚本,但也添加了这个功能,但是当涉及到这些功能时,我有点失落。有谁愿意帮助我吗?

仅供参考,这是它们现在出现在检查器中的方式

enter image description here

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

Inspector无法显示/编辑字段。

而不是

public TKey Key { set; get;}
public TValue Value { set; get}

使用

public TKey Key;
public TValue Value;

它应该在Inspector中可编辑。