Unity版本差异总结

5.x相对于4.x的区别:

  • 规范化了资源管理,统一了所有组件的获取方式,如之前animator,material无需在awake或者start函数进行获取,可直接使用,现在全部要使用getcomponent的形式进行获取,
  • 5.x收编了ngui的开发团队,开始整合ugui;
  • 5.3 版本移除了发布模块和内置的资源包,让用户根据实际需求自行安装,减少了包体大小
  • 优化了软件启动速度
  • 打开界面的方式进行了转变,没有登陆就不能使用
  • 5.4 版本内置了json解析
  • 5.6版本引入新的解压方式,之前Unity压缩文件采取zip形式,也就是lzma 格式。因为压缩率高,所以压缩文件小,但是解压损耗时间就更多了。新的压缩方式lz4的压缩率没那么高(包体大),相对而言,解压速度就快,这就是空间与时间的问题。
  • 5.6.6之后,固定更新日期,以2周或者1周为其进行发布

2017版本相对于5.x的区别 文章引用

  • 增加了Timeline是一款强大的可视化新工具,可用于创建影视内容,例如过场动画、预告片、游戏试玩视频等等。
  • Cinemachine是一个高级相机系统,您可以像电影导演一样,在Unity中合成镜头,无需编写任何代码,引领您进入程序化摄影时代。
  • Post-processing可以很方便地为场景应用各种逼真滤镜,使用电影工业级技术、控件和颜色空间格式来创造高质量视觉效果,让画面更生动、更逼真,助您描绘更好的视觉故事。
  • 我们发布了Unity Teams,它由一系列简化创作者协作流程的功能和解决方案组成,包含Collaborate多人协作(现已发布)和Cloud Build云构建。
  • Unity 2017.1对粒子系统和Progressive Lightmapper进行了大量改进,提供了更多选择来实现您的艺术愿景并控制性能。不同平台可采用不同的渲染品质,例如iOS平台上的Deferred Rendering,和PC上的NVIDIA VRWorks。
  • Unity 2017.1可以通过数据驱动的实时操作,随时获得丰富的分析数据。深入了解您的用户与您作品的互动情况,并实时做出相应的调整,迎合他们的习惯,无需重新部署新版本。在Unity 2017中,您可以更好地为用户提供更佳的游戏体验。
  • 在Unity 5.6中,我们为2D游戏开发者对工具和工作流程进行了重大改进。Unity 2017.1中引入了 2D Sprite Atlas ,这是一种新的Asset,将取代Sprite Packer。随着它的出现,新改进的工作流程可以在运行时更好地控制精灵的打包和使用。图集是Unity中2D工作流程的重要组成部分,而精灵图集不仅提供了更简单的图集创建和管理方式,还有相应的脚本API,可获得更多的控制和用途。
  • 我们对Animation窗口进行了全面修改,改进了关键帧的工作流程,使动画制作更方便和熟练,并支持与Animator状态机进行交互。Performance Recording是一个实验性功能。
  • Playables API通过使用树状结构的PlayableGraph组织和评估数据来源,提供一种创建工具、特效或其他游戏机制的方法。PlayableGraph允许您混合和修改多个数据源,合成为单一输出后播放。
  • 在Unity 2017.1中,我们增加了对环绕立体声音频剪辑的支持,这是全方位环绕音频技术,它(除了水平面外)还覆盖了听众上方和下方的声源。
  • 我们在UnityEditor.IMGUI.Controls中添加了一个 新的ArcHandle类 ,它可以在场景视图中交互式地编辑弧线。还加入了名为SearchField的新IMGUI控件,它带有普通和工具栏用户界面风格,但也可以自行定制。
  • 改进了对Visual Studio的支持,包括Mac OS,Unity安装程序现在可以选择在Windows上安装Visual Studio Community 2017(而非Visual Studio Community 2015)。安装速度显著提高也更轻量。
  • 场景与Asset Bundle改进,我们对游戏中的场景和Asset Bundle进行了一些改进。更改底层架构使场景和Asset Bundle加载速度更快,从而使玩家体验更加流畅。我们还创建了一个工具,Asset Bundle浏览器——以帮助创建和优化Asset Bundle。
  • Asset Bundle浏览器:Asset Bundle浏览器的Beta版与Unity 2017.1一同发布。该工具允许您在Unity项目中查看和编辑Asset Bundle的配置。它的目的是替换当前选择Asset的工作流,并在检视窗口中手动设置Asset Bundle的工作流程。现在您可以集中查看所有的Asset Bundle配置。通过使用上下文菜单和拖放功能,配置、修改和分析相关资源包。
  • 脚本运行时升级(实验性):畅享 C# 6和.NET 4.6:在Unity 2017.1中,我们引入了实验性版本的脚本运行时内核,该内核已升级到Mono/.NET 4.6运行时。它包含了许多修复、性能改进,可以使用C# 6。我们相信它会提高游戏的整体性能。
  • 模型导入器改进:从像Maya这样流行的数字内容创作(DCC)工具导入Asset的过程是首批重要的改进对象,这使得DCC工作流程变得更加轻松。最终提高了艺术家和设计师的生产力,减少了程序员的麻烦。
  • Progressive Lightmapper改进:Unity 2017.1增加了Progressive Lightmapper中对烘焙LOD的支持。在烘焙LOD时,Enlighten和Progressive Lightmapper之间的主要区别在于,使用Progressive Lightmapper不必在LOD周围放置光照探针来获得反射光。在完全烘焙分辨率下,间接光照将为LOD提供更优质的烘焙光照贴图,您也可以避免为它们设置光照探针的繁琐过程。(Unity 5.6中也有此功能。)
  • 实时阴影改进:我们优化了在稳定模式下,级联定向光源阴影投射器的选择。这意味着生成阴影贴图时会产生更少的Draw Call。这增益是与场景和配置相关的。例如,在四个级联光的情况下,可以看到Draw Call数量显著下降。根据太阳/摄像机的方向,场景中可以减少50%的阴影投射器。
  • 粒子系统改进:我们引入了精灵集成,粒子碰撞力(可以推动碰撞器),大量形状方面的改进,包括一个新的形状类型,噪音模块增加了新选项,以及其他一些较小的特性和增强。因为增加了新的控制和约束,例如速度与对齐,使得在2D中使用粒子更加轻松。可以使用粒子来获得比以往更多的特效和动画效果,包括光线的线条和尾迹。
  • Windows Store现在改名为Universal Windows Platform:Unity现在支持Windows商店的Universal Windows Platform(UWP)应用模式,支持为Xbox One、Windows 10、Windows Phone 10和HoloLens进行构建。
  • 底层原生插件渲染扩展:我们已经扩展了底层渲染插件API,并提供了一些很酷的新特性:
    现在可以将用户数据发送到回调函数。
    我们已经扩展了插件将接收回调的可能事件列表。
    我们在着色器编译器进程中添加了钩子,可以在发送到编译器之前对着色器打补丁。支持创建自定义关键字所控制的自定义变体。
  • VR: NVIDIA VRWorks
    现在,在Unity 2017.1中,NVIDIA VRWorks通过以下特性,为虚拟现实提供了一种全新高度的视觉保真度、性能和响应能力:

2018版本相对于2017版本的区别 文章引用

  • 新渲染架构:Scriptable Render Pipeline
    Scriptable Render Pipeline可编程脚本渲染管线,简称SRP。是一种在Unity中通过C#脚本配置和执行渲染的方式。
  • 着色器可视化编程工具Shader Graph
    你可以通过可视化的方式来创建Shader Graph以生成所需的着色器,无需再手动编写着色器代码,只需通过连接各种节点创建节点网络即可。
  • C# Job System
    随着我们在Unity 2018.1中推出新的高性能多线程系统,我们正在重构Unity的核心基础。新的系统将使你的游戏完全利用当下的多线程处理器,不用再为编程而烦恼。
  • 实体组件系统(ECS)
    在Unity 2018.2中,我们加入了多个改进内容,包括反应系统(Reactive system)示例。反应系统将使你在组件状态发生变化时做出反应,并模拟由事件驱动的行为。
  • Burst Compiler
    Burst是一个编译器,它使用LLVM将IL / .NET字节码转换为高度优化的本机代码。它作为Unity包发布,并使用Unity Package Manager集成到Unity中。
  • 移除了独立播放器构建中对Windows XP的支持。Windows Vista现在是Windows独立播放器所支持的最老操作系统。
  • 放弃了对MonoDevelop-Unity的支持,意味着现在Visual Studio是MacOS和Windows系统上的推荐和支持的C#编辑器。Windows系统上的推荐和支持的C#编辑器。
  • 逐步移除旧粒子系统 新的系统Shuriken
  • 纹理Mipmap流
  • 现在新增一个选项用来根据目标架构,如x86、ARM 32和ARM 64分离出多个APK文件,而不是生成一个较大的APK文件。然后,对于支持此选项的商店,例如Google Play,你只需要下载相应架构的APK文件即可。
  • Google Play Instant Games插件
  • 结束对UnityScript的支持
  • Visual Studio Code调试器扩展
  • 预制件嵌套和改进的工作流程
  • 编辑器用户偏好设置改进
  • 影视相关Timeline和Cinemachine改进
  • 地形系统改进
  • 资源包管理器
  • Unity Hub改进
  • 代码大小移除等级(Stripping Level)选项已替换为托管移除等级(Managed Stripping Level)选项
  • 内存分析器Memory Profiler
  • Android App Bundle
  • TextMesh Pro
  • Visual Effect Graph(预览版)
  • Project Tiny小游戏开发套件

2019版本 文章引用

  • HDRP;高清渲染管线(High Definition Render Pipeline)预览版
  • LWRP;轻量级渲染管线(light Weight Render Pipeline)
  • Visual Effect Graph;预览版
  • Adaptive Performance移动平台自适应性功能(预览版)
  • Shortcut Manager快捷键管理器
  • Android Logcat集成(预览版)
  • AR Remote(预览版)
  • Burst编译器
  • Unity Physics(预览版)
  • 新的音频渲染和混合工具(实验性)
  • .基于DOTS技术的物理系统;Profile Analyzer(预览版)
  • 增量式垃圾回收(实验性)
  • Quick Search快捷搜索(预览版)
  • .Animation Rigging动画绑定(预览版)
  • Unity Hub 2.0 Beta
  • .UI Elements
  • Scene Visibility场景可视化工具
  • GPU光照贴图(预览版)
  • 编辑器内的异步着色器编译
  • HDRP改进
  • 光照质量和控制
  • 反射系统改进
  • .Shder Graph;着色器视图改进
  • 图形和光照改进
  • 艺术创作工具
  • Timeline Signals信号功能
  • Mobile Notifications(预览版资源包)
  • 使用Unity Hub安装Android SDK和NDK
  • Scripts Only Build
  • AR Foundation
  • LWRP支持AR和VR
  • 立体渲染模式回退功能
  • 立体实例化的后期处理支持
  • WebGL
  • Async Compute异步计算
  • Windows平台的ARM64支持
  • PhysX改进
  • 物理多场景改进
  • 性能分析器更新
  • ScriptableObjects可编程对象
  • 软引用 现在丢失程序集定义文件引用时会被无视,不会产生丢失引用的错误,它允许开发者给asmdef程序集添加引用。
  • Version Defines版本定义通过使用Assembly Definition检视窗口的全新Version Defines版本定义功能,开发者可以定义哪些C#预处理指令会根据项目有关的资源包版本范围和模块而设定,这样允许开发者在可选资源包中用#if指令处理C#代码。
  • 在Unity 2019.1中,在项目窗口选中预制件时,便可在检视窗口编辑预制件资源。这意味着开发者不必在预制件模式打开预制件或把预制件拖入场景,才能编辑预制件
  • 编辑器的控制台,加入点击式跟踪链接,它会转到堆栈中列出的函数调用对应的代码行,还加入了搜索工具,以便筛选控制台条目。
  • 在编辑器内查看资源包和核心依赖,从GitHub代码库直接安装资源包,并行管理私有和Unity托管的注册表。新版资源包管理器包含对程序集定义文件引用的支持,详见Version Defines版本定义部分。
  • Sketchup Importer现在拥有新的UI。我们添加了对摄像机导入的支持,可以导入Sketchup中所有摄像机类型,包括:正交摄像机、透视摄像机和Two-Point摄像机。最后,我们提升了Model模型导入器Material Tab UI的性能。
  • Timeline Signals(Timeline信号)是Timeline中用来交互场景对象的简单方法。通过使用信号发射器和信号资源,触发游戏中的信号接收器,然后它会向Timeline定义一组预配置反应。Signal Emitter信号发射器用于在Timeline经过特定时间点的时候,触发场景状态的改动。
  • Unity 2019.1加入了对H.265视频编码的支持,这可以让用户播放H.265影片,也可以把其它支持的视频格式转码为H.265编码格式。
  • U nity的Video Player视频播放器和Video Recorder视频录制器现在完全支持SRP,因此在通过HDRP或LWRP进行渲染时,视频播放器可以回放视频。
  • Sprite Shape资源包加入了多项改进,例如:你可以让Sprite Shape的最终2D碰撞体在形状上更符合精灵的外观效果,允许添加更适合Sprite Shape Renderer的多边形碰撞体和边缘碰撞体。
  • 使用新版2D Animation V2.1版资源包在编辑器内和运行时蒙皮精灵时,你会注意到性能提升,因为新版资源包是通过C# Job System和Burst编译器构建的。如果屏幕上有多个使用该工具制作动画的角色,此次更新也提升了这种情况下的性能。
  • 所有2D物理查询现在允许提供结果缓冲区作为.Net “List”,而之前版本需要使用数组。它和数组有相同的优点,如果列表的容量足够包含查询结果,就不会分配任何内存。
  • 你现在可以使用C# Job System处理粒子数据,不必在脚本和本地代码之间复制粒子数据。设置时,请创建基于IParticleSystemJob的作业结构,使用SetJob将它附加给粒子系统,在执行本地粒子更新后,该作业结构会从线程中调用。
  • 网格改进Unity 2019.1包含对网格粒子的一些小改进,例如:通过脚本可以进行查询和指定到每个粒子的网格。
  • Optix AI Denoiser是一种基于深度学习的降噪器,它使用路径跟踪图像库进行训练。这是对过滤选项的重大改进,在样本数量较少的情况下,它可以灵活应变漏光和模糊情况。它可以结合其它过滤器,实现更加平滑的光照贴图。
  • MIS Environment是一种对Cubemap /HDRI中最重要区域进行采样的新方法。这项技术会避免发射大量GI光线到半球体,把光线聚焦于重要区域,例如:太阳明亮的位置。
  • 其它光照改进
  • 用于查看资源的实验性功能LookDev已被移除,我们会继续改进该功能,在今年晚些时候重新添加到SRP,并提供LWRP和HDRP支持
  • Unity编辑器会推迟着色器编译过程,直到渲染过程首次需要特定着色器变体。但是这可能会导致编译器停顿现象,因为着色器编译器的处理需要大量时间。
  • 现在可以对每个顶点使用32个骨骼影响,通过蒙皮网格渲染器的API,最多可以使用255个骨骼影响。这样会在运行时保持蒙皮权重保真度和外部程序的原始内容一致。

2020版本相对于2019版本的区别 [文章引用]

  • UI Toolkit(原UI Elements)预览版可以在游戏运行时中试用了
  • 在场景中可以直接编辑Prefab
  • Asset Store没办法在编辑器中直接访问了
  • Build Report Inspector工具
  • 可以打开多个Inspector窗口
  • 编辑器扩展增加了异步任务API和后台任务窗口
  • 进度条窗口更新
  • FBX轴向调整
  • Accelerator增加了Web管理面板
  • Presets功能更新
  • 项目模板不再包含在Unity安装包中

附加各个版本Unity对应C#版本

Unity 2020.2 C#8 2020.2将支持除默认接口方法外所有C# 8的新功能特性与改进。
Unity 2018.3 C#7.3
Unity 2018.2 C#7.2
Unity 2017.1 C#6 .Net 4.6
Unity 5.5 C#4.0

  • C#8.0新特性
    Nullable reference types:可空引用类型
    Default interface members::默认接口成员
    Recursive patterns:递归模式
    Async streams:异步流
    Enhanced using:增强using
    Ranges and indexes:范围和索引
    Null-coalescing assignment: Null合并分配
    Static local functions:静态本地函数
    Unmanaged generic structs:非托管泛型structs
    Readonly members:只读成员
    Stackalloc in nested contexts:嵌套上下文中的Stackalloc
    Obsolete on property accessors:属性访问器已经过时
    Permit t is null on unconstrained type parameter:不受限制的类型参数的许可
  • C#7.3新特性
    System.Enum, System.Delegate and unmanaged constraints:泛型约束,枚举、委托和非托管
    Ref local re-assignment:现在可以使用ref分配运算符(= ref)重新分配 Ref locals和ref参数。
    Stackalloc initializers:现在可以初始化堆栈分配的数组
    Indexing movable fixed buffers:索引可移动固定缓冲区
    Custom fixed statement:自定义fixed语句
    Improved overload candidates:改进重载候选项
    Expression variables in initializers and queries:初始化和查询中的表达式变量
    Tuple comparison:元组比较
    Attributes on backing fields:后备字段属性
  • C#7.2新特性
    Span and ref-like types ref-like类型的编译安全规则
    In parameters and readonly references:值类型的引用语法
    Ref conditional:条件ref
    Non-trailing named arguments:不在尾部的指定名字参数
    Private protected accessibility:访问修饰符
    Digit separator after base specifier:前缀数字(非十进制)分割
  • C#7.1新特性
    Async main:异步Main方法
    Default expressions:默认表达式
    Reference assemblies:参考程序集
    Inferred tuple element names:推断元组元素名称
    Pattern-matching with generics:泛型的模式匹配
  • C#7.0新特性
    Out variables:out变量直接声明,例如可以out in parameter
    Pattern matching:模式匹配,根据对象类型或者其它属性实现方法派发
    Tuple 元组
    Deconstruction:元组解析
    Discards:舍弃
    Local Functions:本地函数
    Binary Literals:二进制文字
    Digit Separators:数字分隔符
    Ref returns and locals:Ref返回和临时变量
    Generalized async return types:异步返回类型的广泛支持
    More expression-bodied members:更多表达式化的成员体
    Throw expressions:抛出表达式
  • C#6.0新特性
    Draft Specification online
    Compiler-as-a-service (Roslyn)
    Import of static type members into namespace:支持仅导入类中的静态成员
    Exception filters:异常过滤器
    Await in catch/finally blocks:支持在catch/finally语句块使用await语句
    Auto property initializers:自动属性初始化
    Default values for getter-only properties:设置只读属性的默认值
    Expression-bodied members:支持以表达式为主体的成员方法和只读属性
    Null propagator (null-conditional operator, succinct null checking):Null条件操作符
    String interpolation:字符串插值,产生特定格式字符串的新方法
    nameof operator:nameof操作符,返回方法、属性、变量的名称
    Dictionary initializer:字典初始化
  • C#5.0新特性
    Asynchronous methods 异步方法
    Caller info attributes:调用时访问调用者的信息
    foreach loop was changed to generates a new loop variable rather than closing over the same variable every time
  • C#4新特性
    Dynamic binding:动态绑定
    Named and optional arguments:命名参数和可选参数
    Generic co- and contravariance:泛型的协变和逆变
    Embedded interop types (“NoPIA”):开启嵌入类型信息,增加引用COM组件程序的中立性

你可能感兴趣的:(unity,c#,android)