有一段时间一直没明白为啥有的时候第三方的package里的代码没法引用我们项目的,最近有点心得,记录下:

在创建unity项目的时候默认是创建一个解决方案就是以.sln为结尾的。默认开发时都在同一个解决项目里,所以不会出现相互引用不到的问题。当我们引用到第三方的package时就会出现引用不到的问题,有些第三方的代码是以另一个解决方案.sln来加入到现有项目的,这样的话我们只要在相互引用上添加上就可以使用using命令了。另外一种是以下面的这种方式来加入到项目里的,assembly definition ,他说这样创建的,首先在unity里新建一个文件夹,然后在该文件夹里新建一个assembly definition,这样整个文件夹都会归属到这个程序集里,外边的代码可以访问到这个文件夹里的,但是这个文件夹里的代码如果不就行引用设置就访问不到外部。这样做有两个好处,第一做了代码层上的隔离,保证这个文件夹里的代码只会向外提供某个功能,而和哪个项目无关,这样就可以抽象出来做成框架,在新的项目里这部分代码就可以共用起来。第二个好处是编译上的加速,我们都知道当我们更改了c#文件保存后回到unity的时候,unity会重新进行编译处理主要进行语法,语义等的检查,如果我们使用这个assembly definition那么你改动其他的地方,不会重新执行这个文件夹里的代码编译,同样改了这个文件夹里的代码,不会引起其他文件夹里的代码重新编译。这样我们的编译速度就会加快。

当然我们也能设置其他的引用配置如下图所示的可以往里添加其他的程序集assembly definition。

每次创建一个assembly definition时如果我们在vs上看就会看见它以杂项项目来加载上来的:

https://blog.csdn.net/qq_17026475/article/details/126760298

https://blog.csdn.net/weixin_36760331/article/details/129367603

ET框架中程序集的使用方式,unity中创建好Assembly Definition后会自动创建对应的csproj

https://www.bilibili.com/video/BV1rhYyeKExP?spm_id_from=333.788.videopod.episodes&vd_source=ea39ce2be93b866a10862d7de9b08df9&p=3

unity里生成的.csproj和.sln :assembly definition以及ET框架中的程序集定义的更多相关文章

  1. Unity C# 多态 委托 事件 匿名委托 Lambda表达式 观察者模式 .NET 框架中的委托和事件

    一.多态 里氏替换原则: 任何能用基类的地方,可以用子类代替,反过来不行.子类能够在基类的基础上增加新的行为.面向对象设计的基本原则之一. 开放封闭原则: 对扩展开放,意味着有新的需求或变化时,可以对 ...

  2. Unity里的人物驱动/换装备/换武器/换衣服/卡通重定位(转)

    Unity里的人物驱动/换装备/换武器/换衣服/动画重定位 刚学的过程被这个问题困扰最多. 首先,基本的,大家都知道驱动人物需要骨架.绑骨的Mesh和动画(这三个要是不知道的话就得考虑看看计算机图形学 ...

  3. qmake生成VS的vcproj/sln工程文件

    qmake 生成的vs工程与环境变量中的 qmakespec相关,可以有两种方法: 1.默认情况下,即环境变量qmakespec为你装的qt for vs的版本,默认生成的为该版本的vs工程,如,你装 ...

  4. android服务里生成通知点击后返回正在运行的程序和当前的Activity

    想在服务里生成一个通知,并且点击通知打开当前应用程序下单当前活动,折腾了半天,网上的那些都不靠谱,试了半天,最后把ActivityManager和反射都用进来了,终于解决了这个问题.这样在服务中想恢复 ...

  5. Unity 梯子生成算法

    Unity之生成梯子算法的实现. 1.通过预制物体动态生成角度可设置的梯子形状. 1.1 主要涉及到的数学知识点,角度与弧度的转化. 弧度=角度乘以π后再除以180 角度=弧度除以π再乘以180 1. ...

  6. 【Unity Shaders】Unity里的雾效模拟

    写在前面 熟悉Unity的都知道,Unity可以进行基本的雾效模拟.所谓雾效,就是在远离我们视角的方向上,物体看起来像被蒙上了某种颜色(通常是灰色).这种技术的实现实际上非常简单,就是根据物体距离摄像 ...

  7. (转载)Unity里实现更换游戏对象材质球

    在unity中本来想实现在一个背景墙上更换图片的功能 在网上查了一些资料说是用Image,但我是新手小白刚接触Unity不久好多组建还不会用,就想能不能通过改变游戏对象的材质球来更换游戏对象的背景. ...

  8. 关于unity里pbr技术和材质 unity5默认shader和传统的对比

    刚开始也不知道什么是pbr (Physically Based Rendering)后来才发现这是一种新的渲染方式 与之对应的是材质是pbs(Physically Based Shader) unit ...

  9. Unity 自动生成组件索引类工具

    Unity 自动生成组件索引类工具 需求由来 我们在写UI类时 需要获取预设中的组件 joystick = transform.Find("joystick"); backgrou ...

  10. Unity之生成扫描二维码

    Unity之生成扫描二维码 Unity之生成扫描二维码 前言 开篇 Unity版本及使用插件 正题 前期准备 首先生成二维码 然后需要扫描二维码 该使用了 挂载脚本绑定按钮和输入框 运行内容 生成二维 ...

随机推荐

  1. PDCA使用指南详解(史上最强)

    PDCA循环,一个老话题了,大家都知道要这么做,但在平时的生活和工作当中,你是否真的都这样做呢? 当你发现你面对的困难重重,寸步难行时,是否反思过是因为自己一开始的方法就不正确? 本文包涵了PDCA循 ...

  2. MySQL如果数据存在则更新,不存在则插入

    如果数据存在则更新,不存在则插入,MySQL有duplicate.replace into.replace三种方式如何更新数据? insert ignore into 又是如何插入数据的呢? 准备表和 ...

  3. Overleaf使用技巧

    插入图片 %插入图片% \begin{figure} \centering %居中% \resizebox{0.8\hsize}{!}{\includegraphics[clip=true]{Imag ...

  4. oracle的新发现for语句

    今天为了解决一个查询结果想两次遍历的方法,去ORACLE官网文档中心 https://docs.oracle.com/en/database/oracle/,意外发现这个有意思的for语句.还是官方资 ...

  5. linxu7下安装pacemaker+corosync集群-01

    1.yum仓库的配置-自行配置 2.安装软件包: yum -y install pacemaker* corosync* pcs* psmisc yum -y install pcs fence-ag ...

  6. 再次使用layui遇见问题

    Layui似乎只接收data里的数据,所以只能使用这个方式把原有数据放入dataparseData: function (res) { //res 即为原始返回的数据 return { "c ...

  7. shell脚本sed命令

    Sed 是一个脚本型的编译器,全称StreamEDitor,即流编辑器是非交互式的编辑器 sed 原理简析sed 以行为处理单位,每次从标准输入/文本获取一行信息,存储到其" 模式空间 &q ...

  8. calcite-avatica数据传输时对日期类型压缩,导致客户端展示数据异常问题排查

    一.背景 用户使用如下sql来获取周开始和结束时间,直连presto查询该sql,得到的week_start=2019-12-30,而通过calcite-avatica查询出结果为week_start ...

  9. dbeaver软件使用问题

    一.dbeaver导出数据表到csv后数据乱码 按如下方式导出即可 勾选插入BOM即可 Excel在读取csv的时候是通过读取文件头上的bom来识别编码的,如果文件头无bom信息,则默认按照unico ...

  10. 水利地理信息系统 - www.WaterGIS.cn

    用C#语言开发了一个免费GIS软件,可以用来快速浏览和编辑SHAPE文件,支持天地图等. 下载可以去QQ群:722489551