【Unity 插件推薦】Particle Effect For UGUI 粒子特效神器,UI 粒子效果新標杆!

目錄
【Unity 插件推薦】Particle Effect For UGUI 粒子特效神器,UI 粒子效果新標杆!

 

前言

 

今天要推薦的是 Particle Effect For UGUI,這是一款專為 Unity 打造的高效且強大的粒子特效插件,能夠輕鬆將炫目的粒子效果融入 UI 元素,讓你的介面設計瞬間煥然一新!這次的文章將結合 Particle Effect For UGUI 的使用教學,帶你一步步掌握如何在 UI 中應用粒子特效,打造令人驚豔的視覺效果。文中還附上【詳細介紹】與【補充說明】,幫助開發者快速上手,跨越技術門檻,實現即時互動的遊戲體驗!如果你對多人遊戲開發充滿熱情,千萬不要錯過這篇文章。
 

今天要推薦的是 Particle Effect For UGUI,這是一款專為 Unity 打造的高效且強大的粒子特效插件,能夠輕鬆將炫目的粒子效果融入 UI 元素,讓你的介面設計瞬間煥然一新!這次的文章將結合 Particle Effect For UGUI 的使用教學,帶你一步步掌握如何在 UI 中應用粒子特效,打造令人驚豔的視覺效果。文中還附上【詳細介紹】與【補充說明】,幫助開發者快速上手,跨越技術門檻,實現即時互動的遊戲體驗!如果你對多人遊戲開發充滿熱情,千萬不要錯過這篇文章。

 

 

Unity Particle Effect For UGUI 插件介紹

 

Unity Particle Effect For UGUI 是一款專為 Unity UI 開發的粒子特效解決方案,能將粒子效果完美融入 UI 元素。這款插件簡化了粒子特效在 UI 中的應用,提供直觀的控制與靈活的 API,讓開發者能輕鬆實現引人注目的用戶界面效果,為應用程序注入更多創意與活力。

 

Unity Particle Effect For UGUI Logo 圖片

 

功能特色

  1. 豐富的特效自訂化
    提供多種參數調整功能,包括粒子的【顏色】、【透明度】、【縮放】、【速度】等,讓開發者能靈活控制特效的外觀與行為,實現個性化設計。
  2. 高性能渲染
    針對 UI 環境進行性能優化,確保在多平台環境中,粒子效果的運行流暢且穩定,適合各種規模的專案需求。
  3. 跨平台支援
    支持 【Windows】、【Unity】、【iOS】、【Android】和【WebGL】,確保一次開發,便可輕鬆部署至多種設備與環境。

 

適用場景

  1. 遊戲內 UI 粒子特效
    適用於【按鈕點擊】、【主選單】和【道具欄】等場景,通過粒子散射、背景粒子動畫等動態效果,提升界面的視覺吸引力,增強玩家的沉浸感與操作樂趣。
  2. 技能與特效展示
    在遊戲中展示【角色技能】或【狀態變化】的視覺效果,例如技能釋放時的炫目粒子效果或獎勵觸發時的即時粒子提示,強調重要場景或操作,提升玩家的視覺體驗。
  3. 即時互動介面
    適用於【聊天室】或【即時戰鬥】等多人互動場景,通過粒子特效增強互動性與即時反饋,讓玩家感受到更加豐富和身臨其境的視覺效果。

 

【Unity 插件推薦】Particle Effect For UGUI 粒子特效神器,UI 粒子效果新標杆!

 

 

Unity Particle Effect For UGUI 功能描述

 

此插件使用新的 API MeshBake/MashTrailBake (隨 Unity 2018.2 新增)透過 CanvasRenderer 渲染粒子。您可以在沒有 Camera、RenderTexture、Canvas 的情況下為 UGUI 遮罩和排序粒子。

將這種「烤網」方法與傳統方法進行比較:

 

方法螢幕截圖
Baking mesh (UIParticle)按原樣呈現。可屏蔽。排序。更少的對象。不支援自訂頂點流 TEXCOORD*.zw 的元件。

 

Baking mesh (UIParticle)  按原樣呈現。可屏蔽。排序。更少的對象。
Do nothing按原樣呈現。看起來像一個小故障。不可屏蔽。不可排序。
Do nothing  按原樣呈現。
Convert particle to UIVertex (UIParticleSystem)可屏蔽。可排序。更少的對象。調整是困難的。需要 UI 著色器。難以調整比例。強制分層縮放。模擬結果不正確。不支援追蹤、變換旋轉、時間縮放。每幀生成大量 GC。
Convert particle to UIVertex (UIParticleSystem)  可屏蔽。可排序。更少的對象。
Use Canvas to sort按原樣呈現。可排序。您必須管理分類訂單。不可屏蔽。更多批次。
Use Canvas to sort  按原樣呈現。可排序。
Use RenderTexture可屏蔽。可排序。需要 Camera 和 RenderTexture。難以調整位置和大小。品質取決於。
Use RenderTexture  可屏蔽。可排序。


 

方法編輯器上的 FPSiPhone6 上的 FPSXperia XZ 上的 FPS
Particle System435722
UIParticleSystem430(不可測量)
Sorting By Canvas434418
UIParticle17124
UIParticle with MeshSharing444530

 

 

Unity Particle Effect For UGUI 特徵

 

  • 易於使用:包裝開箱即用。
  • 以同級索引對粒子效果和 UI 進行排序。
  • 不需要 Camera、RenderTexture 或 Canvas。
  • 透過 Mask 或 RectMask2D 遮罩。
  • 支援 Trail 模組。
  • 支援 CanvasGroup alpha。
  • 沒有分配。
  • 支援疊加、相機空間和世界空間。
  • 支援通用渲染管線(URP) 和高清渲染管線(HDRP)。
  • 支援停用 Enter Play Mode Options > Reload Domain。
  • 支援使用 AnimationClip (AnimatableProperty) 更改材質屬性。

 

支援使用 AnimationClip (AnimatableProperty) 更改材質屬性。

 

  • [4.0.0+] 支援 8 + 材質。
  • [4.0.0+] 更改獨立平台( Windows、MacOSX 和 Linux)的視窗大小時,正確世界空間粒子位置。
  • [4.0.0+] UI 的自適應縮放。
  • [4.0.0+] 網格共享群組以提高效能。

 

[4.0.0+]網格共享群組以提高效能

 

  • [4.0.0+] 粒子吸引子組件。

 

[4.0.0+] 粒子吸引子組件。

 

  • [4.1.0+] 相對/絕對粒子位置模式。

 

[4.1.0+] 相對/絕對粒子位置模式。

 

 

Unity Particle Effect For UGUI Demo 演示

 

WebGL Demo WebGL 演示
 

 

WebGL Demo WebGL 演示

 

WebGL 演示(卡通特效與戰爭特效)

 

 

WebGL 演示(卡通特效與戰爭特效)

 

 

Unity Particle Effect For UGUI 如何玩演示

 

對於 Unity 2019.1 或更高版本

1.開啟 Package Manager 視窗

2.在套件清單中選擇 UI Particle 套件

3.點選 Import Sample 按鈕

 

3.點選 Import Sample 按鈕

 

4.示範項目被匯入到 Assets /Samples/UI Particle/{version}/Demo

5.開啟 UIParticle_Demo 場景並播放

 

對於 Unity 2018.4 或更早版本

  1. 從選單中選擇 Assets/Samples/UI Particle Demo
  2. 示範項目被匯入到 Assets/Samples/UI Particle/{version}/Demo
  3. 開啟 UIParticle_Demo 場景並播放
     

 

Unity Particle Effect For UGUI 用法

 

UIParticle 元件

UIParticle 控製附加到其自己的遊戲物件和子遊戲物件的 ParticleSystems。

 

UIParticle 控製附加到其自己的遊戲物件和子遊戲物件的 ParticleSystems。

 

效能描述
Maskable此圖形是否允許遮罩。
Scale縮放渲染。啟用切換後 3D ,支援 3D 比例(x,y,z)。
Animatable Properties如果要在 AnimationClip 中更新材質屬性(例如 _MainTex_ST 、 _Color ),請使用它來標記變更。
Mesh Sharing粒子模擬結果在同一組內共享。在很小的負載下可以顯示大量相同的效果。啟用 Random 切換後,它將隨機分組。
Position ModeAbsolute(絕對):從 ParticleSystem 的世界位置發出。 Relative(相對):從 ParticleSystem 。
Auto ScalingTransform.lossyScale(= 世界比例)將在更新(1, 1, 1) 時設定為。它可以防止 root-Canvas 縮放影響層次結構縮放 ParticleSystem 。
Rendering Order要呈現的ParticleSystem 清單。您可以更改順序和材料。

 

注意: 按下 Refresh 按鈕可依子 ParticleSystem 的排序順序和 z 位置重建渲染順序。

 

 

基本上是用法

 

1.選擇此選項 Game Object/UI/ParticleSystem 可建立具有 ParticleSystem 的 UIParticle。

 

1.選擇此選項 Game Object/UI/ParticleSystem 可建立具有 ParticleSystem 的 UIParticle。

 

2.根據需要調整 ParticleSystem。

 

2.根據需要調整 ParticleSystem。

 

 

使用您現有的 ParticleSystem 預製件

 

1.選擇以 Game Object/UI/ParticleSystem (Empty) 建立 UIParticle。

 

1.選擇以 Game Object/UI/ParticleSystem (Empty) 建立 UIParticle。

 

2.將 ParticleSystem 預製件拖曳到 UIParticle 上。

 

2.將 ParticleSystem 預製件拖曳到 UIParticle 上。

 

 

附 Mask 或 RectMask2D 元件

 

如果要遮罩粒子,請將支援範本的著色器(例如 UI/UIAdditive )設定為 ParticleSystem 的材質。如果使用某些自訂著色器,請參閱如何建立自訂著色器以支援  Mask/RectMask2D 元件部分。

 

如果要遮罩粒子,請將支援範本的著色器(例如 UI/UIAdditive )設定為 ParticleSystem 的材質。如果使用某些自訂著色器,請參閱如何建立自訂著色器以支援 Mask/RectMask2D 元件部分。

 

腳本用法

 

// Instant ParticleSystem prefab with UIParticle on runtime.

var go = GameObject.Instantiate(prefab);

var uiParticle = go.AddComponent<UIParticle>();

// Control by ParticleSystem.

particleSystem.Play();

particleSystem.Emit(10);

// Control by UIParticle.

uiParticle.Play();

uiParticle.Stop();

 


UIParticleAttractor 元件

 

UIParticleAttractor 吸引由指定的 ParticleSystem 產生的粒子。
 

UIParticleAttractor 吸引由指定的 ParticleSystem 產生的粒子。

 

UIParticleAttractor 吸引由指定的 ParticleSystem 產生的粒子。

 

效能描述
Particle System吸引由指定粒子系統產生的粒子。
Distination Radius一旦粒子在半徑內,粒子生存期將變為 0 並被 OnAttracted 呼叫。
Delay Rate延遲開始吸引。它是粒子起始壽命的百分比。
Max Speed最大吸引速度。如果此值太小,則吸引可能無法在生存期結束時完成,且  OnAttracted 可能不會被呼叫。
Movement吸引運動類型。 (線性、平滑、球面)
Update Mode正常(Normal):使用縮放的增量時間進行更新。未縮放時間(Unscaled Time):使用未縮放的增量時間進行更新。
OnAttracted吸引完成時呼叫的事件(每個粒子)。

 

 

開發說明

 

常見問題:為什麼我的粒子效果無法正確顯示?

如果 ParticleSystem 單獨顯示粒子但 UIParticle 無法正確顯示,請檢查以下幾點:

  • 著色器限制
    • 大多數情況可以透過使用 UI/Additive 或 UI/Default 來解決。
  • 顆粒被遮蔽
    • UIParticle 是可屏蔽的。
    • 正確設定 Mask 或 RectMask2D 元件。
  • 顆粒太小
    • 如果粒子夠小,它們就不會出現在螢幕上。
    • 增加 Scale 值。
    • 如果您不想根據解析度變更表觀大小,請嘗試 Auto Scaling 選項。
  • 顆粒太多
    • 最多可顯示 65535 個頂點(對於網格組合限制)。
    • 請正確設定 Emission 模組和 Max Particles ParticleSystem。
  • 粒子在螢幕外發射。
    • 當 Position Mode = Relative 時,粒子是從 ParticleSystem 的縮放位置發射的,而不是從 ParticleSystem 的螢幕點發射的。
    • 將 ParticleSystem 放置在適當的位置或嘗試 Position Mode = Absolute .
  • UIParticle 附加到與 ParticleSystem
    • Transform.localScale 將會被 Auto Scaling 選項覆蓋。
    • 建議放在 ParticleSystem UIParticle .

 

 

著色器限制

 

建議使用 UI 著色器。

  • 如果需要簡單的加性著色器,請改用 UI/Additive 色器。
  • 如果您需要一個簡單的 alpha 混合著色器,請改用 UI/Default 色器。
  • 如果自訂著色器無法與 UIParticle 搭配使用,請考慮建立自訂 UI 著色器。

 

不支援內建著色器

UIParticle 不支援除 UI/Default .

如果偵測到它們的使用,檢查器中會顯示錯誤。

請改用 UI 著色器。

 

(2019.4 或更早版本)UV.zw 組件將被丟棄

UIParticleRenderer 是基於 UIVertex 渲染粒子。

因此,著色器中的每個 UV 只有 xy 分量可用。 (ZW 組件將被丟棄)。

因此,不幸的是,UIP 文章不能很好地與某些著色器一起使用。

 

(2019.4 或更早版本)自訂頂點流

使用自訂頂點流時,可以用「不必要的」資料填入 zw 元件。

 


開賣

 

UIParticle 有一些開銷,批次取決於 UGUI。

提高效能時,請記住以下幾點:

  • 如果要顯示大量相同的效果,請考慮 Mesh Sharing UIParticle 元件中的功能。
    • 如果您不喜歡統一的輸出,請考慮 Random Group 功能。
       
UIParticle 有一些開銷,批次取決於 UGUI。 提高效能時,請記住以下幾點:  如果要顯示大量相同的效果,請考慮 Mesh Sharing UIParticle 元件中的功能。  如果您不喜歡統一的輸出,請考慮 Random Group 功能。

 

  • 如果您使用多種材質,您將有更多的繪製呼叫。
    • 考慮單一材質、圖集精靈,並在 ParticleSystem Texture Sheet Animation 的模組中使用 Sprite 模式。

 

 

如何製作自訂著色器以支援 Mask/RectMask2D 元件

 

著色器提示

 

Shader “Your/Custom/Shader”

{

   Properties

   {

       // …

       // #### required for Mask ####

       _StencilComp ("Stencil Comparison", Float) = 8

       _Stencil ("Stencil ID", Float) = 0

       _StencilOp ("Stencil Operation", Float) = 0

       _StencilWriteMask ("Stencil Write Mask", Float) = 255

       _StencilReadMask ("Stencil Read Mask", Float) = 255

       _ColorMask ("Color Mask", Float) = 15

       [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0

   }

   SubShader

   {

       Tags

       {

           // …

       }

       // #### required for Mask ####

       Stencil

       {

           Ref [_Stencil]

           Comp [_StencilComp]

           Pass [_StencilOp]

           ReadMask [_StencilReadMask]

           WriteMask [_StencilWriteMask]

       }

       ColorMask [_ColorMask]

       // ...

       Pass

       {

           // …

           // #### required for RectMask2D ####

           #include “UnityUI.cginc”

           #pragma multi_compile __ UNITY_UI_CLIP_RECT

           float4 _ClipRect;

           // #### required for Mask ####

           #pragma multi_compile __ UNITY_UI_ALPHACLIP

           struct appdata_t

           {

               // …

           };

           struct v2f

           {

               // …

               // #### required for RectMask2D ####

               float4 worldPosition    : TEXCOORD1;

           };

           

           v2f vert(appdata_t v)

           {

               v2f OUT;

               // …

               // #### required for RectMask2D ####

               OUT.worldPosition = v.vertex;

               return OUT;

           }

           fixed4 frag(v2f IN) : SV_Target

           {

               // …

               // #### required for RectMask2D ####

               #ifdef UNITY_UI_CLIP_RECT

                   color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);

               #endif

               // #### required for Mask ####

               #ifdef UNITY_UI_ALPHACLIP

                   clip (color.a - 0.001);

               #endif

               return color;

           }

           ENDCG

       }

   }

}
 

 

粒子特效神器插件下載點

 

【Particle Effect For UGUI】

GitHub 下載連結:Particle Effect For UGUI

————————————————

以上內容改編節錄 CSDN 作者:向宇it

 

更多好用插件:【Unity 好用插件推薦】持續更新,一起讓遊戲開發事半功倍!

 

 

 

本文原創(或整理)於亞洲電玩通,未經作者與本站同意不得隨意引用、轉載、改編或截錄。

特約作家簡介

X
A
Y
B
JamXu的頭像
JamXu
十年遊戲研發
二十年遊戲台主
三十年遊戲玩家

經中華網龍遊戲企劃進入遊戲圈,然後被雷打到去學程式前後端又學了點設計帶帶幾個研發團隊,見證了 3D 渲染技術及遊戲引擎互相進步,也見證了研發代理的更迭與博弈遊戲的興起,再毅然研究起 SEO 網路行銷社群廣告投放,深信自研自賣才是最大贏家,期望能為台灣研發重回輝煌時光貢獻一點力量。如果你也有遊戲夢,歡迎交流認識。


支持贊助 / DONATE

 

亞洲電玩通只是很小的力量,但仍希望為復甦台灣遊戲研發貢獻一點動能,如果您喜歡亞洲電玩通的文章,或是覺得它們對您有幫助,歡迎給予一些支持鼓勵,不論是按讚追蹤或是贊助,讓亞洲電玩通持續產出,感謝。

亞洲電玩通AsiaGameMaster - Steam 遊戲鑑賞家
亞洲電玩通AsiaGameMaster - FB 粉絲專頁
亞洲電玩通AsiaGameMaster - IG 粉絲專頁
亞洲電玩通AsiaGameMaster - Twitter
亞洲電玩通AsiaGameMaster - Yoytube 粉絲專頁
亞洲電玩通AsiaGameMaster - Tiktok

BTC

亞洲電玩通AsiaGameMaster - BTC 鏈贊助地址

352Bw8r46rfXv6jno8qt9Bc3xx6ptTcPze

 

ETH

亞洲電玩通AsiaGameMaster - ETH 鏈贊助地址

0x795442E321a953363a442C76d39f3fbf9b6bC666

 

TRON

亞洲電玩通AsiaGameMaster - TRON 鏈贊助地址

TCNcVmin18LbnXfdWZsY5pzcFvYe1MoD6f

延伸閱讀