Unity编辑器报错
KeyNotFoundException: Cannot find Delegate Adapter for:scienceTree/<>c__DisplayClass15_0.<click>b__1(KeyValuePair`2 q), Please add following code:
appdomain.DelegateManager.RegisterFunctionDelegate<System.Collections.Generic.KeyValuePair<ILRuntime.Runtime.Intepreter.ILTypeInstance, FairyGUI.GButton>, System.Boolean>();
参考资料1
由于Dictionary<T,T1>太过灵活,T什么类型的类都可以,通过FirstOrDefault减少冗余代码。
但是FirstOrDefault在热更新中得注册。
...
using FairyGUI;
using System.Linq;//FirstOrDefault
...
if (dict.ContainsValue(gb))
{
Debug.Log("click item3:" + gb.id + "/name:" + gb.name + "/");
//dict.
//var keys = dict.Where(q => q.Value == gb).Select(q => q.Key);
var firstKey = dict.FirstOrDefault(q => q.Value == gb).Key;
Debug.Log("click item1:" + gb.id + "/name:" + gb.name);

这篇博客主要探讨了在Unity使用ILRuntime进行热更新时,如何处理C# Dictionary类型的数据。由于Dictionary的灵活性,作者提到了在热更新环境中通过FirstOrDefault方法减少冗余代码的需求,但指出此方法需要在ILRuntime中注册。文章引用了Unity编辑器的错误信息,并提供了ILRuntimeWrapper.cs文件的相关内容,以及针对热更新报错的解决办法,特别是当涉及通过Dictionary值获取键的问题。
最低0.47元/天 解锁文章
2735





