背景

时过境迁,这是一篇老文,写于2019年5月。

在学习最新的unity ecs过程中,以及学习最新的effect 时,在迈出第一步的时候即遭遇一些困难(学习和测试环境搭建不起来,有时候真的很无语),造成了一种“出师未捷,身先死”的赶脚。

实现

经过不断的尝试,实验和总结,总于有了很好的解决方案。
首先描述一下问题
具体问题以 ECS为例,按照官方以及大佬的教程和样例,
1、无法通过packages manager(国内部分网络如中国移动宽带)进行必要的包下载
2、可下载大佬教程例子,但包下载冲突或者api过期无法编译(初学者直接蒙逼,一声叹息!)
问题1的原因,unity 2018版本后推出了Package manager进行自己开源和第三方开源的包和插件的管理(类似.net nuget,又跟风) 大概可以定位到Package manager 用了一种本地代理的技术进行包下载,鉴于国内恶略的网络环境出现问题也是正常,解决方案 其实就是两种
a、土豪法,直接给网络搞定,这个就不用我多说了,土豪都懂得
b、屌丝法  又分为三个方法

1) 直接通过 packages 的mainfast.json配置文件进行包管理,目前github 下载下来的工程基本默认是这种方式,但是还是会出现不好用的情况(其实出现这种问题可以归结到问题2,这个在问题也是的解决方法中,描述解决方法)
2) 通过直接拷贝packages包的源文件文件夹进行解决,这个也是一些网上的unity新版本学习先行者提出来的,理论可行但是比较麻烦,首先要能正确下载需要的包文件,这个其实倒是不难,但是这种方法总显得有些麻烦,毕竟不如方法1 来的方便,所以不推荐使用
3) 通过修改 mainfast.json 配置文件进行 package 本地离线配置,进行包管理,实际上解决的方式很暴力,不是网络下载不了吗,那我直接使用离线版本行了吧,通过此方法竟然还能带来一个神奇的副作用,可以直接编译,debug 包的源代码了(比如我们要深入学习unity ecs系统就特别happy)。
文后附件,我会提供相关的配置文件和工程源码有需要的同学自己自行获取。
问题2 的原因 又分为两个 1、主要在于unity package manager这种跟风开源的组件包的策略的天生弊端性。
我们听说过一句话“开源就代表着质量低下”,道理很简单吗,如果开源的代码质量都那么好,干嘛需要商业软件,商业软件存在必定有他的道理。那么unity的 package 开源形式本事就存在着预览版不稳定,然后又加上本身包之间又有依赖关系,如ecs中 enities 又依赖burst ,collection ,job等多个包,本身这些包又是多个小组开发的又都是预览版,怎么保证这么多现编译的代码,再加上本身unity editor又是多版本快速迭代,这些东西加在一起,就变成了一种不可控制的变量了,不出问题都不正常。
2、本身这些包,在预览版不断迭代,api 变更很频繁,如ecs系统 竟然经过了30个版本的迭代(如本文发布的时候竟然是0.0.12-preview30)让人很蛋疼。照成了很多新手学习之后发现 过了一段时间api就变了,或者看的教程就是非最新版本的包,连下载都不能下载环境的搭建不出来,照成学习半途而废。
所以这里给的解决方案有3
1、按照问题1 的解决方法,建立一个相对稳定的版本和开发学习环境,(如学习ecs)在这个稳定环境中 将要学习的插件学习好,先不理会官方最新版本的迭代,我们先将知识的精髓学会
2、当你明白了包的精髓(如ecs学习),明白了他的原理以后呢,我们就可以很轻松的调整package manager 包管理器的mainfast.json配置文件,来选择自己所希望的版本
3、查询官方文档,特别是release 版本变更或者是api升级的文档,修改过时或者被拒绝的api到最新的api,最终跟上unity的快节奏。

是什么在阻止我们学习unity2019?的更多相关文章

  1. css3常用标签

    30个最常用css选择器解析   你也许已经掌握了id.class.后台选择器这些基本的css选择器.但这远远不是css的全部.下面向大家系统的解析css中30个最常用的选择器,包括我们最头痛的浏览器 ...

  2. 使用C# yield关键字来提高性能和可读性

    对于”yield”这个关键字我已经见过N次了,直到最近我才知道这个关键字所蕴含的力量.我将在下面展示出一些使用”yield”让你的代码有更高可读性和更好性能的例子. 为了让你对yield有一些快速概览 ...

  3. 小白菜初探nodejs

    记得大四那年实习的时候出去找工作,就常常听见大家说node.从那以后,悄然埋下了一颗学习nodejs的心.不过由于基础太薄弱,一直没有学习.加之工作上没有相关应用,就一直搁置到现在. 年会的时候,老大 ...

  4. LA 3485 (积分 辛普森自适应法) Bridge

    桥的间隔数为n = ceil(B/D),每段绳子的长度为L / n,相邻两塔之间的距离为 B / n 主要问题还是在于已知抛物线的开口宽度w 和 抛物线的高度h 求抛物线的长度 弧长积分公式为: 设抛 ...

  5. 30个最常用css选择器解析

    转自:http://www.cnblogs.com/yiyuanke/archive/2011/10/22/CSS.html 你也许已经掌握了id.class.后台选择器这些基本的css选择器.但这远 ...

  6. [转]C#中yield用法

    yield 关键字向编译器指示它所在的方法是迭代器块.编译器生成一个类来实现迭代器块中表示的行为.在迭代器块中,yield 关键字与 return 关键字结合使用,向枚举器对象提供值.这是一个返回值, ...

  7. 一周学会Mootools 1.4中文教程:(1)Dom选择器

    利器: 君欲善其事须先利其器,好吧因为我们的时间比较紧迫,只有六天而已,那么六天的时间用死记硬背的方式学会Mt犹如天方夜谭,因此我们需要借鉴一下Editplus的素材栏帮我们记忆就好了,当我们需要用到 ...

  8. 函数式编程很难,这正是你要学习它的原因 | 外刊IT评论网

    函数式编程很难,这正是你要学习它的原因 | 外刊IT评论网 函数式编程很难,这正是你要学习它的原因 156 次分享 新浪微博 腾讯微博 Tweet 人人网 QQ空间 很奇怪不是,很少有人每天都使用函数 ...

  9. Image Restoration[Deep Image Prior]

    0.背景 这篇论文是2017年11月29号第一次提交到arxiv并紧接着30号就提交了V2版本的. 近些年DCNN模型在图像生成和修复上面表现很好,大部分人认为好的原因主要是由于网络基于大量的图片训练 ...

随机推荐

  1. [Angular] Lazy Load CSS at runtime with the Angular CLI

    Ever had the need for multiple "app themes", or even to completely dynamically load CSS ba ...

  2. 题解 [51nod1358] 浮波那契

    题解 [51nod1358] 浮波那契 题面 解析 首先根据经验应该能一眼矩阵快速幂加速.... 因为给了你递推式,并且\(O(n)\)求显然不可能. 所以考虑怎么构造矩阵. 首先要处理的是小数的问题 ...

  3. 使用JSP/Servalet技术开发新闻发布系统------JSP数据交互一

    什么是内置对象 JSP内置对象是 Web 容器创建的一组对象,不用通过手动new就可以使用 JSP中的九大内存对象  request 请求对象  response 响应对象  out   输出对象  ...

  4. 使用这些 CSS 属性选择器来提高前端开发效率

    属性选择器非常神奇.它们可以使你摆脱棘手的问题,帮助你避免添加类,并指出代码中的一些问题.但是不要担心,虽然属性选择器非常复杂和强大,但是它们很容易学习和使用.在本文中,我们将讨论它们是如何运行的,并 ...

  5. hive 的 beeline用法

    先开启服务端: nohup hive --service metastore & nohup  hive --service hiveserver2 & 进入beeline: beel ...

  6. bzoj 3420: Poi2013 Triumphal arch 树形dp+二分

    给一颗树,$1$ 号节点已经被染黑,其余是白的,两个人轮流操作,一开始 $B$ 在 $1$ 号节点,$A$ 选择 $k$ 个点染黑,然后 $B$ 走一步,如果 $B$ 能走到 $A$ 没染的节点则 $ ...

  7. decodeURI 与 decodeURIComponent 区别

    1. 关于URL.encodeURI 及 encodeURIComponent: URI: Uniform Resource Identifiers,通用资源标识符 Global 对象的 encode ...

  8. 第12章、乐活人生的ABCDE

    目录 第12章.乐活人生的ABCDE 什么时候该乐观 让自己乐观的ABC 确认ABC 你的ABC记录 反驳和转移注意 转移注意 反驳 保持距离 学习与自己争辩 证据 其他可能性 暗示 用处 你的反驳记 ...

  9. 爬虫(六):Selenium库使用

    一:Selenium简介 selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处 ...

  10. 爬虫(十七):scrapy分布式原理

    一:scrapy工作流程 scrapy单机架构: 单主机爬虫架构: 分布式爬虫架构: 这里重要的就是我的队列通过什么维护?这里一般我们通过Redis为维护,Redis,非关系型数据库,Key-Valu ...