【Unity DOTween】DOTween的部分代码无法在asmdef中运行

 CanvasGroup canvasGroup = card.GetComponent();

 Tween t = canvasGroup.DOFade(0.2f, 0.4f);

以上代码,如果包含在asmdef中会报错,说canvasGroup上不存在DOFade方法,但是如果不是在asmdef中就不会报错。

环境是Unity2021.3

试过了在DOTween面板上创建asmdef并引用,删除.vs缓存目录,重启Unity,都不管用。

原因猜测是DOTween的核心功能都包含在dll中而不是代码中,而asmdef是基于所在文件夹下的代码实现的,但DOTween的那些文件不知道为什么即使创建了asmdef也无法识别,就出现了这个问题。

目前临时的解决方案是直接复制DOTween module文件夹下的各个module文件中的代码直接用,比如我想用DOFade,就直接去DOTweenModuleUI文件中,复制与CanvasGroup相关的那个DOFade方法:


红框内的代码复制出去

注意,不要把整个DOFade方法复制过去,会提示扩展方法只能在特定环境下创建,这里只复制红框里的代码过去就好,现在不报错了,可以编译通过。

你可能感兴趣的:(【Unity DOTween】DOTween的部分代码无法在asmdef中运行)