-
问题描述
最近在项目中被要求解决一个Unable to find style 'AnimationCurveEditorBackground' in skin 'DarkSkin' Layout的警告,于是我双击警告到代码位置,发现是调用一个叫Cinema Suite的插件的接口,但是这个插件已经许久没有更新,项目用的还是1.4的版本,更离谱的是这个调用的接口是写在dll里面的,叫DirectorEditor.dll,ILCode里面有个地方是这么写的:
IL code
private void drawBackground()
{
GUI.Box(this.trackBodyBackground, GUIContent.none, (GUIStyle) "AnimationCurveEditorBackground");
this.rect = this.trackBodyBackgroundNoVerticalScrollbar;
this.BeginViewGUI(false);
this.SetTickMarkerRanges();
this.DrawMajorTicks(this.trackBodyBackground, (float) this.frameRate);
this.EndViewGUI();
}
警告信息为:
Unable to find style 'AnimationCurveEditorBackground' in skin 'DarkSkin' Layout
-
问题解决
于是我百度查了一番,均没有什么好的解决办法,我甚至把插件升级到最新的1.6版,结果还是木大,升级后不仅有报错,原来的功能也不能正常使用了。
但是在查找的过程中,我发现了:
1)这个同学将‘AS TextArea’中的AS去掉,就可以解决警告
2)我想到能不能将AnimationCurveEditorBackground这个GUIStyle换成别的,就能解决这个警告问题,然后去搜索了怎么去修改dll,用微软提供的Ilasm.exe(IL 汇编程序)和Ildasm.exe(IL 反汇编程序)
Download: /releases[ latest ]
然后用微软文档来修改dll,先把dll反编译变成可编辑的il文件,再编译回去。
有些同学应该可以在C盘找到的这两个工具,但是我没找到其中一个,下载后却发现两个版本可能对不上,所以去自己找的汇编程序。
在修改il文件时将AnimationCurveEditorBackground
更换为PopupCurveEditorBackground
,问题解决。
我猜是在一次unity更新后将内置的GUIstyle也做了更新,有些老版本的换了名字。
这个问题在下一篇文章中得到验证查看Unity所有的默认UI效果 GUIStyle
网友评论