這篇文章轉載自 Unity 社區大佬 ForgemasterGua。詳細介紹了如何在團結引擎上使用 ShaderGraph 的 UGUIShader 功能。ForgemasterGua 在 Unity 中國開發者社區持續更新技術內容中, 點擊閱讀原文,前往 ForgemasterGua 的社區主頁,閱讀更多干貨文章。
如何在團結引擎上使用ShaderGraph的UGUIShader
Unity 6 的 Shader Graph 增加了 UGUI Shaders ,可以只用 Shader,不用貼圖就實現很多酷炫的 UI 效果。需要把 ShaderGraph 升級到 17.1.0 版本。今天我們來研究下怎么在團結引擎或 Unity2022 里適配這個功能。
團結引擎使用的是 1.4.4 版本,PackageManager 里的 ShaderGraph 是 14.0.11 版本;當前最新的 Unity2022 版本是 2022.3.60,其中使用的 ShaderGraph 是 14.0.12 版本。我們可以先把團結引擎的 ShaderGraph 以及依賴的 URP、RPCore 等都升級到 14.0.12 版本,和 Unity2022 統一。
我們對比一下 ShaderGraph14.0.12 和 17.0.4 m版本的差異,發現新增加的功能主要在 Editor/Generation/Targets/Canvas 中,新增加的例子工程在Samples~/UGUIShaders 中
我們把17.0.4版本中的Editor/Generation/Targets/Canvas和Samples~/UGUIShaders 復制到 14.0.12 中相應的位置,修改 package.json 文件,添加例子工程到 Package 中,即可導入對應的例子工程。導入后,可以看到有編譯報錯,導入報錯等問題,需要相應的修改 URP 及 RPCorePackage 里的代碼。
比如在 URPPackage 里添加 CanvasPass.hlsl、ShadergraphSpriteGUI.cs;在RPCore Package 里添加 DebugMipmapStreamingMacros.hlsl 等文件。
解決報錯問題后,我們還會發現團結引擎中的例子顯示效果跟 Unity6 中不一致。
第一個不一致是 UI 中的 Background 在 Unity6 中是半透明且模糊的,但在團結中是灰色不透明的。
這是由于團結中默認沒有勾選 Opaque Texture 導致的,勾選后,Background 就表現一致了。
第二個不一致是團結中 Welcome 面板中文本的包裹方式不對,Description 的 Wrapping 選擇 Enabled 后,顯示正常了。
最終的 Package 代碼倉庫如下:
ShaderGraph:https://gitee.com/justin19831203/com.unity.shadergraph.git
URP:https://gitee.com/justin19831203/com.unity.render-pipelines.universal.git
RPCore:https://gitee.com/justin19831203/com.unity.render-pipelines.core.git
Unity 中文社區持續征集內容投稿,歡迎與 Unity 官方分享你的技術筆記、項目 demo、行業經驗、有趣案例,加入社區建設,繁榮內容生態,帶領百萬 Unity 中文開發者一同學習。
投稿方式:
方式一:在 Unity 中文社區首頁(https://developer.unity.cn/)創建個人賬號,點擊【寫文章】,發表文章;
方式二:聯系郵箱 learn-cn@unity.cn,投稿技術內容。
Unity 官方微信
第一時間了解Unity引擎動向,學習進階開發技能
每一個“點贊”、“在看”,都是我們前進的動力
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.