XGundam05 发表于 2022-1-5 10:24

2022-01-04 解决Unable to find style 'AnimationCurveEditorBackground' in skin 'Dark


[*]问题描述

最近在项目中被要求解决一个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
<hr>

[*]问题解决

于是我百度查了一番,均没有什么好的解决办法,我甚至把插件升级到最新的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
页: [1]
查看完整版本: 2022-01-04 解决Unable to find style 'AnimationCurveEditorBackground' in skin 'Dark