leizhiren 发表于 2020-7-7 20:17

在Unity2019.4.1f1中VisualStudio自定义类库如何引用PackageManager中的包

场景:我们的Unity项目分为三部分,开发工程,安卓打包工程,iOS打包工程.

我们自己有个类库叫Base,这个Base负责最基层的功能以供上层业务代码使用调用.如资源路径管理,与Timeline的支持管理.

比如需要继承PlayableBehaviour并重写OnBehaviourPlay方法.那这种情况.Base就需要引用到Timeline的PlayableBehaviour类.

换言之按照以前的做法就是引用UnityEngine.Timeline.dll文件即可,但现在Timeline成为了Package于PackageManager安装与管理.

没有了UnityEngine.Timeline.dll文件,故无法在VisualStudio添加引用了,研究了一下,发现位于Library/ScriptAssemblies中能找到Unity.Timeline.dll.

尝试着复制一份到VisualStudio工程中并添加引用,此时Base.dll成功编译生成了,将Base.dll放置至开发工程Assets/Plugins内.开发工程内运行一切正常,

启动安卓打包工程,尝试打包安卓应用时,会将所有资源与Base.dll与其他的业务代码编译生成的DLL拷贝至打包工程进行打包.但在Build的过程中出现了如下错误.

简单的理解就是说Base.dll引用了UnityEngine.Timeline这个程序集(虽不知为什么,但Unity.Timeline.dll内代码的命名空间就是UnityEngine.Timeline,不知为何把Engine去除了),但是UnityEngine.Time这个程序集不能被引用或找不到所在路径.如下图

Unity工程Packages中是有Timeline包的,版本为1.2.15.至此,打包流程被无奈的终止了.



已做过以下尝试,无效,报的错一模一样:

1,将Base.dll与Unity.Timeline.dll文件拷贝至Unity工程Assets/Plugins目录下,同时将Timeline从PackageManager中移除.

2,将Unity.Timeline.dll文件更名为UnityEngine.Timeline.dll后在VisualStudio重新引用并重新编译.


页: [1]
查看完整版本: 在Unity2019.4.1f1中VisualStudio自定义类库如何引用PackageManager中的包