【发布时间】:2018-01-12 06:44:14
【问题描述】:
如果有人问这个问题,我很抱歉,因为我错过了一些非常基本的东西。
我收到KeyNotFoundException 错误:
给定的键在 Unity 的字典中不存在一段时间 搜索字典键。
下面添加了示例代码。
当我按下 GUI 上的 GET DATA 按钮时,它工作正常。但是当我按下 GUI 上的 GET DATA CAST 按钮时,它会给出KeyNotFoundException。
我错过了什么?我需要在代码中进行的任何建议更改
我在 Dict 中插入了数据,很抱歉我错过了在此处发布的内容 类
[System.Serializable]
public sealed class AnimName
{
public static readonly AnimName IDLE = new AnimName("IDLE");
public AnimName(string value)
{
Value = value;
}
public string Value { get; private set; }
}
字典和代码:
Dictionary<AnimName, AnimData> KeyValueData = new Dictionary<AnimName, AnimData>();
//这个被调用一次
Start(){
KeyValueData.Add(AnimName.IDLE, new AnimData(new Vector3(-0.09f, -0.02f, -0.25f), new Vector3(-41.866f, 386.781f, -524.68f), new Vector3(-0.028f, 0.027f, 0.13f), new Vector3(18.724f, 19.477f, -32.435f), 0.3f));
}
void OnGUI()
{
if (GUI.Button(new Rect(10, 10, 150, 100), "GET DATA"))
{
Debug.Log(KeyValueData [AnimName.IDLE]);
}
if (GUI.Button(new Rect(200, 10, 150, 100), "GET DATA CAST"))
{
AnimName a = new AnimName("IDLE");
Debug.Log(KeyValueData [a]);
}
}
【问题讨论】:
-
哪行代码给你错误?你能分享“GET DATA”点击和“GET DATA CAST”点击的代码吗?以及填充“KeyValueData”的位置。
-
你有没有用
[AnimName.IDLE]的键将一些东西放入KeyValueData中?否则字典出现 - 从你的代码 - 是空的,因此错误消息:) -
因为你的字典在我看来是空的
-
老实说,错误消息并没有告诉您确切的问题吗?
-
@ChetanRanpariya,它已经发布了问题
标签: c# dictionary unity3d