ParticleEffectForUGUI === This plugin provide a component to render particle effect for uGUI in Unity 2018.2+. The particle rendering is maskable and sortable, without Camera, RenderTexture or Canvas. [](https://github.com/mob-sakai/ParticleEffectForUGUI/releases) [](https://github.com/mob-sakai/ParticleEffectForUGUI/releases)  [](https://github.com/mob-sakai/ParticleEffectForUGUI/blob/upm/LICENSE.md) [](http://makeapullrequest.com) [](https://twitter.com/intent/follow?screen_name=mob_sakai) << [Description](#Description) | [WebGL Demo](#demo) | [Download](https://github.com/mob-sakai/ParticleEffectForUGUI/releases) | [Usage](#usage) | [Development Note](#development-note) | [Change log](https://github.com/mob-sakai/ParticleEffectForUGUI/blob/upm/CHANGELOG.md) >> ### What's new? Please see [See changelog ](https://github.com/mob-sakai/ParticleEffectForUGUI/blob/upm/CHANGELOG.md) ### Do you want to receive notifications for new releases? [Watch this repo ](https://github.com/mob-sakai/ParticleEffectForUGUI/subscription) ### Support me on Patreon! [](https://www.patreon.com/join/2343451?) <br><br><br><br> ## Description  This plugin uses new APIs `MeshBake/MashTrailBake` (added with Unity 2018.2) to render particles by CanvasRenderer. You can mask and sort particles for uGUI without Camera, RenderTexture, Canvas. Compares this "Baking mesh" approach with the conventional approach: (This scene is included in the package.) |Approach|Good|Bad|Screenshot| |-|-|-|-| |Baking mesh<br>**\(UIParticle\)**|Rendered as is.<br>Maskable.<br>Sortable.<br>Less objects.|**Requires Unity 2018.2+.**<br>Requires UI shaders to use Mask.|<img src="https://user-images.githubusercontent.com/12690315/41765089-0302b9a2-763e-11e8-88b3-b6ffa306bbb0.gif" width="500px">| |Do nothing|Rendered as is.|**Looks like a glitch.**<br>Not maskable.<br>Not sortable.|<img src="https://user-images.githubusercontent.com/12690315/41765090-0329828a-763e-11e8-8d8a-f1d269ea3bc7.gif" width="500px">| |Convert particle to UIVertex<br>[\(UIParticleSystem\)](https://forum.unity.com/threads/free-script-particle-systems-in-ui-screen-space-overlay.406862/)|Maskable.<br>Sortable.<br>Less objects.|**Adjustment is difficult.**<br>Requires UI shaders.<br>Difficult to adjust scale.<br>Force hierarchy scalling.<br>Simulation results are incorrect.<br>Trail, rotation of transform, time scaling are not supported.<br>Generate heavy GC every frame.|<img src="https://user-images.githubusercontent.com/12690315/41765088-02deb9c6-763e-11e8-98d0-9e0c1766ef39.gif" width="500px">| |Use Canvas to sort|Rendered as is.<br>Sortable.|**You must to manage sorting orders.**<br>Not maskable.<br>More batches.|<img src="https://user-images.githubusercontent.com/12690315/41765087-02b866ea-763e-11e8-8c33-081c9ad852f8.gif" width="500px">| |Use RenderTexture|Maskable.<br>Sortable.|**Requires Camera and RenderTexture.**<br>Difficult to adjust position and size.<br>Quality depends on the RenderTexture's setting.|<img src="https://user-images.githubusercontent.com/12690315/41765085-0291b3e2-763e-11e8-827b-72e5ee9bc556.gif" width="500px">| #### Features * Sort particle effects with uGUI * No Camera, RenderTexture or Canvas are required * Masking with Mask or RectMask2D * Easy to use * Support Trail module * Change alpha with CanvasGroup * Scaling independent of Transform * No heavy allocation every frame * All ParticleSystem.ScalingModes and all Canvas.RenderModes are supported. They look almost the same in all modes.  * Scaled gizmo  <br><br><br><br> ## Demo [WebGL Demo](http://mob-sakai.github.io/ParticleEffectForUGUI) <br><br><br><br> ## Install #### Using UnityPackageManager (for Unity 2018.3+) Find the manifest.json file in the Packages folder of your project and edit it to look like this: ```js { "dependencies": { "com.coffee.ui-particle": "https://github.com/mob-sakai/ParticleEffectForUGUI.git#2.1.0", ... }, } ``` To update the package, change `#{version}` to the target version. #### Using .unitypackage file (for Unity 2018.2+) Download `*.unitypackage` from [Releases](https://github.com/mob-sakai/ParticleEffectForUGUI/releases) and import the package into your Unity project. Select `Assets > Import Package > Custom Package` from the menu.  <br><br><br><br> ## How to play demo * Import `UIParticle_Demo.unitypackage` into your project. * The demo unitypackage exists in `Assets/Assets/Coffee/UIExtensions/UIParticle` or `Packages/UI Particle`. * Open UIParticle_Demo scene and play it. <br><br><br><br> ## Usage 1. Add your particle effect to canvas. 2. (Option) If you want to mask particles, set a UI shader such as "UI/UIAdditive" to material for ParticleSystem.  3. Add `UIParticle` component to root particle system of your effect from `Add Component` in inspector.  4. If your effect consists of multiple ParticleSystems, click "Fix".  5. Adjust the Scale property to change the size of the effect.  6. Enjoy! ##### Requirement * Unity 2018.2+ (Tested in Unity 2018.2.0f2) * No other SDK are required <br><br><br><br> ## Development Note <br><br><br><br> ## License * MIT * © UTJ/UCL ## Author [mob-sakai](https://github.com/mob-sakai) [](https://twitter.com/intent/follow?screen_name=mob_sakai) [](https://www.patreon.com/join/2343451?) ## See Also * GitHub page : https://github.com/mob-sakai/ParticleEffectForUGUI * Releases : https://github.com/mob-sakai/ParticleEffectForUGUI/releases * Issue tracker : https://github.com/mob-sakai/ParticleEffectForUGUI/issues * Current project : https://github.com/mob-sakai/ParticleEffectForUGUI/projects/1 * Change log : https://github.com/mob-sakai/ParticleEffectForUGUI/blob/upm/CHANGELOG.md