Unity2018更新日誌大總結

題外話:寫篇文章的主要動力來源還是看了Unity2018.3.0發佈視頻(地址:https://v.qq.com/x/page/z0815ok9b0l.html)之後對我帶來的驚喜和衝動。剛好公司項目組也有員工分享會,所以就想把這些內容整理一下分享更大家。同時給Unity官方這次更新內容點個贊,新內容確實不錯。

文章內容主要主要根據Unity2018的三個版本(1.0,2.0,3.0)進行整理,都是主要核心功能,並不是這次更新的所有內容。

1.0版本主要功能:

1、新渲染架構:Scriptable Render Pipeline

        Scriptable Render Pipeline可編程腳本渲染管線,簡稱SRP。是一種在Unity中通過C#腳本配置和執行渲染的方式。

渲染入口點

        當使用SRP時,你需要定一個類,用於控制渲染;這就是你將要創建的渲染管線。入口點是一個對“Render”函數的調用,它需要兩個參數,渲染上下文以及一個需要渲染的攝像機列表。

public class BasicPipeInstance : RenderPipeline

{

  public override void Render(ScriptableRenderContext context, Camera[] cameras){}

}

        簡單介紹一下什麼是渲染上下文:SRP渲染採用的是延遲執行的方式。用戶要設置好需要執行的命令列表,然後再執行。用來設置這些命令的對象叫做“ScriptableRenderContext”。當你向上下文填充完操作命令後,可以通過調用“Submit”提交隊列中的所有繪製調用。

        渲染的攝像機列表就是遊戲中的Camera了,一個遊戲畫面有可能有多個相機繪製,最終疊加或拼湊出一個顯示畫面。所有需要把這些相機都放到一個數組列表內傳入到Render。

2、着色器可視化編程工具Shader Graph

        你可以通過可視化的方式來創建Shader Graph以生成所需的着色器,無需再手動編寫着色器代碼,只需通過連接各種節點創建節點網絡即可。簡單的講就是官方出了一個類似Shader Forge的插件,簡單操作如下圖:

 

3、C# Job System

        隨着我們在Unity 2018.1中推出新的高性能多線程系統,我們正在重構Unity的核心基礎。新的系統將使你的遊戲完全利用當下的多線程處理器,不用再爲編程而煩惱。

        這得益於全新的C# Job System,它爲用戶提供了一個安全簡易的沙盒環境,能夠在裏面編寫並行代碼。我們還引入了新的模型來默認使用實體組件系統(ECS)編寫高性能代碼,並使用Burst Compiler聲稱高度優化的本地代碼。

        有了默認提供的高性能,你不僅可以在更多的硬件上運行自己的遊戲,還能使用更多的單位和更復雜的模擬效果來創建更豐富的遊戲世界。

4、實體組件系統(ECS)

        在Unity 2018.2中,我們加入了多個改進內容,包括反應系統(Reactive system)示例。反應系統將使你在組件狀態發生變化時做出反應,並模擬由事件驅動的行爲。

        ECS是什麼?簡單來說就是Unity中的一種新的架構模式。準備未來取代GameObject / Component的模式。其模式遵循組合優於繼承原則,遊戲內的每一個基本單元都是一個實體,每個實體又由一個或多個組件構成,每個組件僅僅包含代表其特性的數據(即在組件中沒有任何方法)。系統便是來處理擁有一個或多個相同組件的實體集合的工具,其只擁有行爲(即在系統中沒有任何數據)。實體與組件是一個一對多的關係,實體擁有怎樣的能力,完全是取決於其擁有哪些組件,通過動態添加或刪除組件,可以在(遊戲)運行時改變實體的行爲。

        ECS旨在比GameObject / MonoBehaviour更容易處理大量物體。

        ECS的特點是,由於面向數據的設計 , 很容易並行高速處理,和 C# Job System 一起工作。

5、Burst Compiler

        Burst是一個編譯器,它使用LLVM將IL / .NET字節碼轉換爲高度優化的本機代碼。它作爲Unity包發佈,並使用Unity Package Manager集成到Unity中。

        Burst主要用於與Job系統高效協作。您可以通過使用屬性[BurstCompile]裝飾Job結構,從而在代碼中簡單地使用burst編譯器 。默認情況下,在編輯器中,Burst JIT是通過異步來編譯job,但在上面的示例中,我們使用該選項CompileSynchronously = true確保在第一個Schedule中編譯該方法。通常,您應該使用異步編譯。

6、移除了獨立播放器構建中對Windows XP的支持。Windows Vista現在是Windows獨立播放器所支持的最老操作系統。

        說白了就是不支持XP電腦了,現在確實好多遊戲慢慢都都不支持XP系統了,包括LOL,據說2019年春節的10.0版本就不在支持XP系統完了,主要是微軟很早就停止了對XP系統的支持。就連現在Unity2018也必須在window10下面纔可以運行。

7、放棄了對MonoDevelop-Unity的支持,意味着現在Visual Studio是MacOS和Windows系統上的推薦和支持的C#編輯器。

        自從官方推出IL2CPP之後,就意味着Mono的終結遲早要來,現在只是IDE的不支持,未來有可能完全放棄Mono。給大家推薦一款牛逼的IDE,也是現在市面上比較火的VS Code,這個也是微軟輕量級的IED,功能缺失非常強大,主要還是因爲開源,外圍插件太豐富了。有興趣的可以瞭解一下。

8、逐步移除舊粒子系統 新的系統Shuriken

        這個沒啥說的,舊的粒子系統應該是3.x版本的了,我記得4.x就已經使用Shuriken忍者粒子系統了。

2.0版本主要功能:

1、更新可編程渲染管線SRP

2、更新着色器視圖Shader Graph(預覽版)

3、更新對Vulkan支持(實驗版)

        Unity 2018.2包含在Windows和Linux端編輯器運行Vulkan的支持。Vulkan是新一代圖形和計算API。它可以對PC、主機、移動端和嵌入式平臺的各類設備上的GPU提供高效的跨平臺訪問功能。

4、紋理Mipmap流

        1、在Unity 2018.2中,我們根據需要向內存添加了紋理Mipmap流支持,啓用此功能可以減少Unity應用的紋理內存要求。

        2、啓用此係統後,Unity將僅在網格靠近已激活的攝像機時,加載更高分辨率的紋Mipmap。高分辨率Mipmap數據保存在內存中,整體的紋理內存會限制在用戶定義的預算範圍內。

        3、如果在加載新的紋理Miplevel後,紋理內存超出預算,那麼與攝像機距離最遠網格上的較高分辨率Midmap會從內存中釋放出來。

        4、由於首次加載的紋理數據減少,即僅加載較低分辨率Mipmap,初始場景的載入速度也會加速。初始加載速度的提升效果將根據平臺有所不同。

        5、你可以完全控制Texture Mipmap Streaming系統,決定哪些Mipmap會加載到內存中。通常Unity會加載所有存儲在硬盤上的Mipmap,但使用此係統,你可以直接控制要加載哪些Mipmap等級。

        6、該系統還會佔用一小部分的CPU時間,從而節省大量的GPU內存。

        7、啓用和管理過程十分簡單通過質量設置(Quality Setting)可以輕鬆啓用該功能,你可以定義每個紋理是否應進行流式處理,你也可以查詢指標,以識別紋理內存的使用情況,同時還能節省內存。你還可以調整各種設置來控制系統,從而平衡內存節省和CPU消耗,並允許你優先處理一些紋理,例如:將角色紋理優先於環境紋理。

 

5、根據架構分離APK文件

        現在新增一個選項用來根據目標架構,如x86、ARM 32和ARM 64分離出多個APK文件,而不是生成一個較大的APK文件。然後,對於支持此選項的商店,例如Google Play,你只需要下載相應架構的APK文件即可。

 

6、Google Play Instant Games插件

        獲取新用戶的一大阻礙往往是因爲繁瑣的安裝過程。下載並打開應用程序需要花費時間,這會導致不少用戶還沒體驗遊戲之前就放棄。

        有了Google Play Instant,用戶不需要預先安裝就可以嘗試體驗遊戲的10MB版本。此插件簡化了基於Unity的Android應用轉換爲即時應用的過程,並可以通過Google Play Instant來進行部署。

該插件在GitHub上作爲一個項目提供,並且能在Unity 2017.x及更高版本上使用。

        該插件的功能包括:

        1、可在已安裝(Installed)和即時構建(Instant-build)模式之間切換的選項。

        2、帶有Unity構建設置上的集中式視圖和Android安裝包設置,這些設置經過修改後能夠支持Google Play Instant。

        3、能夠在連接ADB的Android設備上構建並運行即時應用。

7、結束對UnityScript的支持

        C#、UnityScript、Boo。這三種Unity最早支持的開發語言,現在只剩下c#一種了,boo是最早被淘汰的。

8、Visual Studio Code調試器擴展

    對於使用Visual Studio Code作爲IDE的用戶,我們開發並維護了Visual Studio Code Debugger for Unity擴展,它目前作爲預覽版推出。

 

PS:Unity 2018.2還包括183項改進內容和1426個錯誤修復。

 

3.0版本主要功能:

1、預製件嵌套和改進的工作流程

        官方演示視頻 https://v.qq.com/x/page/q0708i3vd0p.html

主要分爲下面三個功能點,這是2018的大功能,詳細內容可以自行谷歌查找,這裏就不展開寫了。

        1 、預設模式 (Prefab Mode)

        2、預設嵌套功能(Nested Prefab)

        3、預設變體(Variants Prefab)

2、編輯器用戶偏好設置改進

        1、入口改變了,以前的那個地方找不到偏好設置了。同時新的窗口外觀

        2、新的窗口外觀還提供了一個API,方便開發者可以插件自定義到偏好設置裏面

 

3、影視相關Timeline和Cinemachine改進

        1、Timeline添加了權限的軌道偏移模式、改進了編輯器的預覽功能

        2、Cinemachine加入了物理攝像機支持,事件映射器和一個具有可交互展示功能的程序化噪聲編輯器。我們可以通過可視化噪聲編輯器,調整Cinemachine攝像機的逼真感。

4、地形系統改進

        主要包括:性能提升、多地形支持、新資源類型

5、資源包管理器

            資源包管理器可爲項目動態加載和更新Unity開發的功能,幫助開發者快速獲取Unity的新功能。隨着更多Unity功能以資源包格式提供,我們正在穩步改進用戶體驗,從而幫助開發者更輕鬆地發現可用資源包和更新,並管理項目中已安裝的資源包。

 

6、Unity Hub改進

        2018年9月,我們發佈了Unity Hub v1.0,Unity Hub是一個連接Unity的桌面端應用程序,旨在通過提供管理Unity項目、許可證和附加組件的中心化位置,來簡化所有用戶的使用和製作流程。Unity Hub v1.2加入了通過Unity下載存檔URL來直接下載和安裝舊版Unity編輯器的功能。依賴特定(舊版)編輯器版本的用戶可以通過Unity Hub一鍵獲取舊版編輯器。

 

7、代碼大小移除等級(Stripping Level)選項已替換爲託管移除等級(Managed Stripping Level)選項

 

8、內存分析器Memory Profiler

        Memory Profiler這個分享工具在5.x就有了,只是在github上面自己下載導入工程,這次更新了一下功能,但是還是預覽版本,不過可以通過資源包管理器在Unity編輯器內直接下載使用了。

 

9、Android App Bundle

        Android App Bundle是Google Play全新的應用發佈格式,包含遊戲中所有已編譯的代碼和資源,但它會推遲APK生成和Google Play簽名。

        Google Play的新版應用服務模型Dynamic Delivery,它會使應用程序包根據用戶的設備配置來生成並提供優化過的APK文件,因此用戶只需下載運行應用所需的代碼和資源即可。

開發者不再需要構建、簽名並管理多個APK來爲多個不同設備提供支持,而用戶則能下載到更小的優化過的文件。

 

10、TextMesh Pro

        Unity 2018.3的TextMesh Pro是驗證過的資源包,它加入了高度優化的Font Generator字體生成器,可在運行時生成字形。

        你可以通過調用混合動態字體系統(Hybrid Dynamic Font System)來結合項目中的靜態字體資源和動態字體資源。

 

11、Visual Effect Graph(預覽版)

        全新的Visual Effect Graph在Unity 2018.3中作爲預覽版提供,需結合HDRP使用。你可以使用它來製作可配置,可重用的次世代效果,還可以在GPU上處理數百萬個粒子。

        Visual Effect Graph受到主流電影特效軟件的啓發,提供了靈活且易於使用的節點系統,能夠幫助藝術家爲遊戲等交互式內容創作驚豔的視覺效果。

Visual Effect Graph演示項目地址:

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

觀看Visual Effect Graph介紹視頻地址:

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

12、Project Tiny小遊戲開發套件

        Project Tiny是Unity的一個全新模塊,提供了全新的運行時和編輯器模式,旨在構建可以即時加載而無需安裝的遊戲和體驗。

Project Tiny爲開發者提供了快速創建高質量2D小遊戲和可玩式廣告所需的工具,創建出的遊戲安裝包非常之小,可以在各種移動設備上快速啓動。

 

13、Unity FPS示例項目

在今年10月Unite LA上,我們正式發佈了FPS示例項目,這是一款第一人稱多人射擊遊戲的演示項目。該項目旨在成爲開發者的靈感源泉,你可以用它來學習Unity中的新功能。

視頻演示地址:

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

Unity FPS示例項目下載地址:

https://github.com/Unity-Technologies/FPSSample

 

14、除此之外還更新了:物理功能:PhysX 3.4、多場景物理、垃圾回收控制、NET 4.x Equivalent腳本運行時、C# 7.3:Roslyn編譯器、用於重新壓縮下載資源包的運行時API、尋路系統更新、2D功能更新一些了新功能、粒子系統、光照更新、AR、XR等等內容

PS:Unity 2018.3正式版中包含新增45項功能,250項改進,以及1915個Bug修復



作者:爐石不傳說
鏈接:https://www.jianshu.com/p/ec054482d457
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

發佈了38 篇原創文章 · 獲贊 16 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章