Unity2019.3新功能搶先體驗筆記

你好,我是你的技術(shù)探路者鄭洪智,你可以叫我大智。

直播《聊一聊2019.3的新功能》回放:https://www.bilibili.com/video/av85824703

Unity2019.3終于在2020年的1月28日發(fā)布了。對于這個姍姍來遲的版本,咱們一起來看看都有哪些高(yao)大(xue)上(xi)的新功能吧。

大智根據(jù)官方博客發(fā)布的2019.3的文章(https://blogs.unity3d.com/2020/01/28/unity-2019-3-is-now-available/),對里面提到的新功能進行了體驗,并結(jié)合之前Unity官方公眾號發(fā)布的文章進行了整理。

最受關(guān)注的幾個功能可能是:

  • HDRP正式版發(fā)布
  • DOTS大幅更新
  • 更新了多個正式版的2D工具

先通過官方的一個短視頻來看看都更新了哪些內(nèi)容吧:
https://v.qq.com/x/page/o3058vkrcep.html

下面我們依次來看看都更新了哪些主要功能:

編輯器工具方面

地形更新

現(xiàn)在地形可以挖洞了,可以創(chuàng)建洞穴、地下室等地形了。

Timeline上可以直接編輯動畫的骨骼

Presets功能有重大更新

Preset功能是一個沒有被廣泛推廣但是非常有用的一個功能。

使用Preset可以預設一個項目中各種類型的默認值,舉個簡單的例子比如燈光、剛體等等。

這次更新之前呢,每個類型只能對應一個默認的Preset。
這次更新之后呢,每個類型可以對應多個默認Preset,并且根據(jù)GameObject的命名規(guī)則設置不同的默認Preset。

支持第三方材質(zhì)

編輯器增加了三種材質(zhì)的支持:

  • Autodesk Arnold Standard Surface shader
  • Autodesk 3ds Max physical material
  • Autodesk Interactive shader

場景工具更新

現(xiàn)在ProGrids成為了Unity內(nèi)置的場景網(wǎng)格工具,之前是一個插件。

此外在Hierarchy上面增加了一個小功能:設置GameObject在場景中是否可以選中。在大場景中編輯時非常有用。

2D工具重磅更新

2D更新了非常多的正式版本的工具包,都可以在Package Manager中找到并安裝使用。

此次更新還有一個2D的示例工程,應用了很多下面提到的新功能,你可以在AssetStore中下載安裝:https://assetstore.unity.com/packages/essentials/tutorial-projects/lost-crypt-2d-sample-project-158673

2D更新的正式版工具包括:

  • 2D PSD Importer:PSD文件導入器,可以直接導入PSD并且使用其中的圖層。
  • 2D Animation:提供制作2D骨骼動畫的功能(包括Sprite綁定、骨骼創(chuàng)建、配飾等等)
  • 2D Tilemap Editor:瓦片世界編輯器。此外還有一個額外的工具(https://github.com/Unity-Technologies/2d-extras)可以用來創(chuàng)建帶動畫的瓦片;這個工具還能自動將瓦片的圖形匹配相鄰的瓦片。
  • 2D Sprite Shape:精靈形狀編輯器??梢杂脕韯?chuàng)建輪廓是曲線的精靈和地形。
  • 2D Pixel Perfect:在任何分辨率下都保證2D的渲染是像素最優(yōu)化的,此外Cinemachine還增加了一個擴展CinemachinePixelPerfect,這樣Cinemachine的2D相機也可以支持Pixel Perfect了。

此外還發(fā)布了一些處于實驗中的功能:

  • 2D Lights和2D Shadows:包含在URP的2D渲染器中,支持2D的燈光和陰影。

  • 支持精靈的第二套貼圖:可以給精靈添加法線貼圖和遮罩貼圖,同時能根據(jù)不同的光照環(huán)境做出真實的反應。
    以上兩個功能可以在URP的2D渲染器文檔中具體查看。

  • Sprite Swap:動畫重用的功能(包含在2D Animation包中),替換精靈外觀的同時保持骨骼和動畫。

程序員工具

增加SerializeReference屬性

之前的[Serialiablable]序列化之后都是值類型,而這個新的SerializeReference屬性可以引用其他對象。

并且這個屬性也能支持多態(tài)的數(shù)據(jù)。比如List<IAnimal>列表可以包含class Dog : IAnimal{}class Cat : IAnimal{}。

SerializeReference修飾的成員也可以是null值,而不是像之前使用的是每個類型的構(gòu)造默認值。

這么說可能還有點抽象,你可以體驗一下下面這一段代碼。此外還有一個最直接的改變是可以提高UnityYAML庫文本序列化的速度,帶來場景加載和保存的速度提升。

using System;
using System.Collections.Generic;
using UnityEngine;

public interface IShape {}
[Serializable]
public class Cube : IShape
{
    public Vector3 size;
}
[ExecuteInEditMode]
public class BuildingBlocks : MonoBehaviour
{
    [SerializeReference]
    public List<IShape> inventory;
   void OnEnable()
    {
        if (inventory == null)
        {
            inventory = new List<IShape>()
            {
                new Cube() {size = new Vector3(1.0f, 1.0f, 1.0f)}
            };
            Debug.Log("Created list");
        }
        else
            Debug.Log("Read list");
    }
}

可配置進入播放模式(實驗階段)

設置的地方在Project Settings > Editor > Enter Play Mode。

使用好這個配置可以加快進入Play模式的速度,具體怎么用Unity官方已經(jīng)有相關(guān)說明了:https://mp.weixin.qq.com/s/4mQX9XTmnFx-1g-qFuNXhQ

PhysX從3.4升級到4.1

明顯的改變會是:MeshCollider生成速度加快,布料性能提升。

Profile功能的改進

  • 可配置記錄的幀數(shù),之前最多300幀,現(xiàn)在可以配置(300-2000),查看更多的數(shù)據(jù)了
  • Deep Profile現(xiàn)在可以讓你在所有的Player中看到C#代碼的結(jié)構(gòu),托管內(nèi)存的申請,調(diào)用堆棧等。

圖形渲染改進

這次還發(fā)布了Unity2019電影Heretic的完整版(記得看到底哦,這次是完整版),先來一睹為快吧!

https://v.qq.com/x/page/q3058fjiesf.html

HDRP現(xiàn)在是正式版了

HDRP在2019.3增加了Custom Render Pass、Custom Post processing、Physically Based Sky功能。
此外還有一個好消息是HDRP支持VR了。

HDRP中的實時光線追蹤功能,現(xiàn)在是預覽包。如果你感興趣,可以看一看這個項目:https://github.com/Unity-Technologies/SmallOfficeRayTracing

LWRP更名為URP

之前的LWRP會讓人有些混淆,以為只能用于低端機。實際上URP的目標是用于所有的終端,對畫質(zhì)有極高追求的可以使用HDRP。

使用URP相對于原來的內(nèi)置管線將會有更好的性能和擴展性。

URP也有上圖的Demo可以下載學習:https://github.com/Verasl/BoatAttack/tree/demo-work

Visual Effect Graph正式版發(fā)布

Visual Effect Graph是Unity中新一代的特效工具,可以創(chuàng)建非常強大的特效。相比原來的粒子系統(tǒng),這個工具更系統(tǒng),可以處理特效的整個生命周期,可以用圖形化的方式連接制作。

《大話Unity》中已經(jīng)有Visual Effect Graph的入門教程:https://edu.hongliu.cc/detail/p_5ce27b17264b9_aSdvSmWz/6

掃描/長按識別二維碼查看

編輯器和團隊工作流

編輯器UI的更新

包含圖標、字體、交互視覺反饋、支持高DPI、性能等一系列更新。

Quick Search

Quick Search是Package Manager中的一個包,現(xiàn)在已經(jīng)正式發(fā)布了。可以用于搜索工程中的幾乎所有東西,包括資產(chǎn)、場景中的物體、設置甚至菜單等。

UIElements和UI Builder

Unity的新一代UI系統(tǒng)UIElements有一些更新,此外還有處于預覽版中的UI Builder工具。目前這個UI系統(tǒng)僅能用于編輯器的相關(guān)UI的構(gòu)建,預計在2020版將能用于運行時。

關(guān)注洪流學堂公眾號,將會第一時間推出UI Elements的實戰(zhàn)教程。

Package Manager更新

主要有兩點:
1、可以通過Url安裝,從Git版本庫安裝一個package,那就意味著你現(xiàn)在可以制作自己的package,托管在自己的Git庫中,提高團隊之間的協(xié)作能力
2、Asset Store中的插件資源可以在Package manager中管理安裝了(Unity編輯器中的Asset Store移除了,現(xiàn)在只能通過網(wǎng)頁進行瀏覽和購買,然后通過package manager安裝)

AssetDatabae Pipeline更新到Version 2

你可能對于這個更新不感興趣,但是這個更新能帶來:在不同平臺之間的切換速度會加快很多。(原因是現(xiàn)在它可以保存多個平臺的資產(chǎn)版本,同樣也會帶來項目硬盤占用空間增大)

平臺

新的Input System(預覽版)

舊的輸入系統(tǒng)已經(jīng)被詬病了很久,實現(xiàn)自定義可配置的鍵盤布局都很費勁,那么新的輸入系統(tǒng)是什么樣子呢?

新的輸入系統(tǒng)分離了輸入操作和游戲邏輯,然后進行綁定。

具體可以閱讀官方的博客:《Unity新一代輸入系統(tǒng)介紹》https://mp.weixin.qq.com/s/yWJLD6x2kBblKe7V6FX7jA

Incremental Garbage Collector(增量垃圾回收,正式版)

增量垃圾回收現(xiàn)在是正式版了。增量垃圾回收的機制是:把需要依次回收的垃圾分為幾幀回收,這樣可以將回收的壓力分攤,減少卡頓的現(xiàn)象。(除了WebGL平臺,其他平臺都支持)

AR/VR

AR和VR平臺上更新和增加了很多工具。包括:

AR Foundation

大一統(tǒng)的AR平臺,現(xiàn)在添加了對Magic Leap和HoloLens的支持。

XR Interaction Toolkit

XR交互工具。包含了XR交互中常見的操作。

更詳細的內(nèi)容可見官方博客:《XR Interaction Toolkit預覽版資源包發(fā)布》:https://mp.weixin.qq.com/s/je-RYfXsiSroOkttF164Bg

移動平臺

Device Simulator(預覽版)

Device Simulator設備模擬器,你可以使用它預覽不同手機的具體行為和硬件特點,從而讓游戲代碼能夠在Unity編輯器內(nèi)以接近真實設備的條件運行。開發(fā)者可以在游戲視圖中預覽特定分辨率和屏幕劉海布局的具體效果,也可以預覽針對設備的自定義設置。

詳見:《全新設備模擬器加速移動端迭代》:https://mp.weixin.qq.com/s/trjK_RsIignA65alpPjj9A

Unity as a Library

很多時候,我們會遇到這樣的需求:將3D的內(nèi)容嵌到已有的App中。這個需求之前也是可以實現(xiàn)的,不過會很麻煩。從Unity2019.3開始呢,可以將Unity打包成一個庫,直接丟到原生應用中使用,對未來的AR應用有巨大的助力。

詳見:《在原生iOS或Android應用中將Unity作為庫使用》:https://mp.weixin.qq.com/s/JOnqzZfQbTs89Rgm1Bae-Q

On-demand rendering(按需渲染)

使用按需渲染可以讓你獨立控制渲染,獨立于其他子系統(tǒng)??梢越档碗娏肯模⒈苊獬霈F(xiàn)CPU過熱的情況。

具體API:https://docs.unity3d.com/2019.3/Documentation/ScriptReference/Rendering.OnDemandRendering.html

DOTS

DOTS可謂是目前Unity最重要的發(fā)展方向之一。但是很多人說,DOTS簡直是一個新的引擎,那么DOTS究竟有什么好處,值不值得我們投入學習呢?我們先來看看DOTS都有什么更新吧。

DOTS示例項目:https://github.com/Unity-Technologies/DOTSSample

DOTS編寫代碼更簡單了

了解過ECS的童鞋可能直到,編寫ECS代碼代碼量會大幅增加。Unity的ECS系統(tǒng)也是在做各方面的優(yōu)化,使得在易用性和性能方面取得平衡。

其他的還有

  • DOTS的動畫系統(tǒng)
  • DOTS NetCode:基于DOTS的網(wǎng)絡庫
  • Unity Physics:基于Job System和Burst Compiler的物理庫
  • 轉(zhuǎn)換工作流:可以將GameObjects轉(zhuǎn)換為ECS中的entities的工具。
  • Unity Live Link(實驗階段):有點類似實時熱更新,但目前僅局限于資產(chǎn)。在編輯器中修改后,可以直接在發(fā)布的客戶端中查看到變化。

下面動圖中可以看到,編輯器中做的修改,可以實時同步到已經(jīng)發(fā)布出來的程序中。

Live Link

直播《聊一聊2019.3的新功能》回放:https://www.bilibili.com/video/av85824703

Unity2019.3的新功能視頻教程將會在《大話Unity》中更新。

掃描識別上圖二維碼查看課程詳細內(nèi)容

《大話Unity》直達鏈接:https://edu.hongliu.cc

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容