• 是什么在阻止我们学习unity2019?


    背景

    时过境迁,这是一篇老文,写于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的快节奏。

  • 相关阅读:
    WF4.0 Beta1 自定义跟踪
    WF4.0 Beta1 流程设计器与Activity Designer
    新版本工作流平台的 (二) 权限算法(组织结构部分)
    WF4.0 Beta1 WorkflowInvoker
    WF4.0 基础篇 (十) Collection 集合操作
    WF4.0 基础篇 (十五) TransactionScope 事物容器
    WF4.0 基础篇 (六) 数据的传递 Arguments 参数
    WF4B1 的Procedural Activity 之InvokeMethod , InvokeMethod<T> 使用
    WF4.0 Beta1 异常处理
    WF4.0 Beta1 变量 Variables
  • 原文地址:https://www.cnblogs.com/IlidanStormRage/p/11745407.html
Copyright © 2020-2023  润新知