找回密码
 立即注册
查看: 965|回复: 0

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

[复制链接]
发表于 2020-7-7 20:17 | 显示全部楼层 |阅读模式
场景:我们的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重新引用并重新编译.


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-24 04:35 , Processed in 0.103849 second(s), 31 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表