有一段时间一直没明白为啥有的时候第三方的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. tar基本命令

    常用基本命令 压缩文件 # touch a.txt # tar -czvf test.tar.gz a.txt  //或  tar -czvf /path/to/file.tar.gz file 列出 ...

  2. 对rpc长连接与短连接的思考

    大家好,我是思无邪,某go中厂开发工程师,也是OSPP2024的学生参与者! 如果你觉得我的文章有帮助,记得三连支持一下哦! 目前正在深入研究源码,与你们一起进步,共同攻克编程难关! 欢迎关注我的公众 ...

  3. DeepSeek+AnythingLLM打造自己大模型知识库

    DeepSeek+AnythingLLM打造自己大模型知识库 目       录 1.      安装Ollama 2.      下载DeepSeek模型 3.      安装AnythingLLM ...

  4. DBeaver出现“Public Key Retrieval is not allowed”错误的解决办法

    1.问题描述 我们在使用DBeaver连接MySql的时候,可能会出现"Public Key Retrieval is not allowed"的错误提示,如下图所示: 2.解决办 ...

  5. maven项目中解决 .git文件太大问题

    一.git项目上传后项目文件太大,git filter-branch手动清理 最近发现一个项目git目录已经达到200MB,严重影响了clone代码.操作之前请全量备份代码,操作失误可恢复 二.测试项 ...

  6. Core WebAPI配置Swagger

    1.配置Swagger: Swagger是一套接口文档的规范,通过这套规范,你只需要按照它的规范去定义接口以及接口相关的信息.再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接 ...

  7. pytest自动化测试 - 我对测试用例超时处理的一点看法

    1 pytest自动化测试 - 我对测试用例超时处理的一点看法 1.1 背景   用例在执行过程中,可能由于网络等待,或者等待一些特殊的文件,而又由于一些异常,导致这些条件一直不能满足,用例卡死,这种 ...

  8. 百万架构师第四十课:RabbitMq:RabbitMq-工作模型与JAVA编程|JavaGuide

    来源:https://javaguide.net RabbitMQ 1-工作模型与Java编程 课前准备 预习资料 Windows安装步骤 Linux安装步骤 官网文章中文翻译系列 环境说明 操作系统 ...

  9. ITSS 运维2.0 实践

    最近公司在评审itss 2.0,参与了一部分工作,对工作过程中的问题梳理如下: 大的背景:评审itss 2.0会有评审 为什么公司会申请各种资质 首次申请资质后,公司可以申请一笔费用(x万元)! 申请 ...

  10. RCE_STUDY

    概念 RCE(Remote code execution)远程代码执行漏洞,RCE又分命令执行和代码执行. RCE-远程代码执行:远程执行PHP代码 RCE-远程命令执行:远程执行Linux或者Win ...