Search Unity

[RELEASED] UI Particles

Discussion in 'Assets and Asset Store' started by Lex_Dudya, Oct 16, 2016.

  1. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    UI Particles

    Current version 1.0.1

    120x630_1 50%.png

    UI Particles – it's a simple extension allows you to add particles into your UI.

    UI Particles based on Unity Shuriken Particle System, you do not need change your particles. Simple add UIParticles script to your GameObjects with Shuriken Particle System, set it inside Canvas and you're done.
    Supported features:
    UI Particles compatible with all types of canvases:
    • Screen Space - Overlay
    • Screen Space - Camera
    • World Space
    UI Particles support depth sorting inside UI.
    UI Particles supports RectMask2D and Mask components with some shader changes.
    UI Particles compatible with mobile devices. Tested on iOS and Android.
    Unsupported features:
    UI Particles currently not support Shuriken Particle Render module.

    For Unity versions early 5.4 not support:
    -Different particle scale for each axis.
    -Frame over lifetime setting replaced to custom settings in UIPartice script.
    A small trailer.


    Tutorial.

    Assetstore link:
    https://www.assetstore.unity3d.com/en/#!/content/72330

    Support website:
    http://lectusgames.weebly.com/
     
    Last edited: Nov 10, 2016
  2. BillyMFT

    BillyMFT

    Joined:
    Mar 14, 2013
    Posts:
    178
    This looks very useful. Does it actually require Unity 5.4.1 or is that just what you have submitted the package with?
     
  3. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    I've tested it on 5.3, 5.4, 5.4.1 and 5.4.2 versions. It's compatible with this versions.
    I'll try to upload plugin with different unity versions, as soon as possible.
     
  4. BillyMFT

    BillyMFT

    Joined:
    Mar 14, 2013
    Posts:
    178
    that would be great. The store won't let me buy it because I'm using Unity 5.3.6,
     
  5. BillyMFT

    BillyMFT

    Joined:
    Mar 14, 2013
    Posts:
    178
    Can I please get a rough estimate of when this will be available for older versions of Unity? Thanks.
     
  6. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    I'll make it on this week and plus is about 5 days to approve on asset store.
    I hope it'll be available on the end of next week.
     
  7. BillyMFT

    BillyMFT

    Joined:
    Mar 14, 2013
    Posts:
    178
    thank you.
     
  8. NeatWolf

    NeatWolf

    Joined:
    Sep 27, 2013
    Posts:
    924
    Thanks for your answer!

    When do you think next update is going to be available on the store?

    I would be nice if you could just drop the script on a particle system which contains other nested particle systems and just check a "Apply to nested Particle Systems" checkbox.

    Does it support shapes, initial velocities, 3D rotated particle systems?

    Which are the currently supported/unsupported modules of the particle systems?

    Do I have to rebuild an existing FX from scratch or there is some chance it is going to work without having to tweak it too much?

    Thanks for your time
     
  9. AndrewChewie

    AndrewChewie

    Joined:
    Mar 23, 2015
    Posts:
    9
    So first launch on 5.3.6f1 with error:

    Code (CSharp):
    1. MissingMethodException: Method not found: 'UnityEngine.ParticleSystem.Particle.GetCurrentSize3D'.
    2. UiParticles.UiParticles.GenerateParticlesBillboards (UnityEngine.UI.VertexHelper vh)
    3. UiParticles.UiParticles.OnPopulateMesh (UnityEngine.UI.VertexHelper toFill)
    4. UnityEngine.UI.Graphic.OnPopulateMesh (UnityEngine.Mesh m) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Graphic.cs:447)
    5. UnityEngine.UI.Graphic.DoLegacyMeshGeneration () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Graphic.cs:405)
    6. UnityEngine.UI.Graphic.UpdateGeometry () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Graphic.cs:376)
    7. UnityEngine.UI.Graphic.Rebuild (CanvasUpdate update) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Graphic.cs:338)
    8. UnityEngine.UI.CanvasUpdateRegistry.PerformUpdate () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/CanvasUpdateRegistry.cs:149)
    9. UnityEngine.Canvas:SendWillRenderCanvases()
    10.  
    Also is there any reason you've made it dll? Makes it harder to tweak or find problems.
     
  10. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    I've already uploaded new version of plugin to assetstore, its currently under review. It's uploaded with Unity 5.3.0.
    I've added source code instead dll for better comparability, the issue of "MissingMethodException" was fixed in this update too.
    I hope it will be available on this week.
     
  11. AndrewChewie

    AndrewChewie

    Joined:
    Mar 23, 2015
    Posts:
    9
    Great, thanks!
     
  12. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    The new update is available in assetstore.
    Support Unity 5.3.0 version and the dll replaced to source code.
     
  13. AndrewChewie

    AndrewChewie

    Joined:
    Mar 23, 2015
    Posts:
    9
    Me again,

    So I've updated and now it works on 5.3.6f1 Thanks!

    But there is still issues with this asset:

    Texture sheet animation:
    • Naming of variables responsible for Texture frame per particle is a mess. There is no documentation, no example how it works. Only after digging in code I've managed to work with it.
    • Single Row + Random row with Frame over time = 0 doesn't work properly. Often used technique to make 1 emitter that emits different particles (they don't change frame over lifetime), but can't be used with this asset at the moment.
    Hope you'll be able to fix this and improve your documentation,
    because right now this asset have a high price / low value ratio.
     
  14. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    Thanks for your feedback. I'll figure out how to fix this issues, as soon as possible.
     
  15. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    @Lex_Dudya I'm planning to buy it soon but I'd like to know if it supports trails. If not, do you plan to implement it? If so when?
    Thanks
     
  16. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    UI Particles doesn't support Line and Trail Renderer components currently.
    When Unity 5.5. will be released, I'll implement a support of new trail renderer module of particle system, if Unity will provides API, to gets data from this module.

    But, I think, I'll make a research how to implement trail renderer in UI. Seems good feature for update.
     
    mcmorry likes this.
  17. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    Hello,
    The new update is in the final testing stage.

    It will contain
    1) Fixed issue with Single Row + Random row with frame over lifetime property;
    2) Auto attaching UIPartice script to nested particle systems;
    3) New custom editor for more convenient work with MinMaxCurves properties in Unity 5.3;
    4) And a new stretched billboards render mode:



    The new update will be available in early December.
    Thanks, for your feedback, and proposals for new features.
     
    mcmorry likes this.
  18. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    @Lex_Dudya So I bought it and the first things that I'd like to understand better are the shaders GlowAdditiveSimple and TwoColors.
    It seems that the Simple version doesn't take in account the color over lifetime. Is it correct?
    Also, what are the Tint and Core colors/strength and in what are they different from the default color of the particle system.
     
  19. GreatNimbus

    GreatNimbus

    Joined:
    Jul 13, 2013
    Posts:
    13
    Hi there,
    We are considering purchasing your asset, however we are wondering what kind of performance hit it has for mobile. You mention that it is supported on android and ios but we don't see any mention of performance.
    I've purchased various assets in the past that ended up being a complete waste due to a lack of optimization.

    Can you comment on the Perf hit for your asset, especially in regards to mobile?
     
  20. ex_dev

    ex_dev

    Joined:
    Jan 16, 2017
    Posts:
    3
    Hello, nice plugin.
    When running the effects in a Nexus 7 (2012) with Android 5.1.1 the effects get scrambled all over the screen, like they are positioned and rotated from random places. Do you have any idea why and how can we solve this? Other devices seem fine.
     
  21. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    Hello, I've checked the demo scene on ASUS Google Nexus 7 (2013) with Android 6.0.1. The apk was builded with Unity 5.5.0p4 (patch 4). Everything works correctly.
    Please, can you send screenshots of settings of your particles: shuriken and UI Particle components?
    Also, if it's possible, use the latest Unity version. There were a lot of changes in particle system in Unity 5.4 and Unity 5.5 versions.
     
  22. ex_dev

    ex_dev

    Joined:
    Jan 16, 2017
    Posts:
    3
    Hello! Unfortunately I can not upgrade to latest 5.5 Unity due to a lot of audio bugs in my project so I'm stuck with 5.4.2f2 for now. I'll try just the particles later but I already uninstalled the latest Unity version.
    It can be a problem of my device also, it's the older Nexus (no the 2013). I'm attaching the particle settings:

    effect.png
     
  23. NeatWolf

    NeatWolf

    Joined:
    Sep 27, 2013
    Posts:
    924
    Hi there :)

    3 months have passed, are there any news about this?
     
  24. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    Hello, I'm so sorry for so long responding.

    It supports 2d shapes: box, circle, edge and mesh.
    It supports 3d rotating of particles.
    It supports all modules, except renderer module, light module and trails module.
    Renderer module is replaced by custom UI Particles renderer module, and supports billboards and stretched billboards.

    When you integrate your existing particleSystem into UI, you should tweak particles size and speed, because Unity UI use different scale than world space. That's all for most particle systems. Sometimes you should change hierarchy order of your child particles. This is due to, how Unity UI renders components.

    In this tutorial I've showed how integrate existing particle system into the UI:
     
    NeatWolf likes this.
  25. NeatWolf

    NeatWolf

    Joined:
    Sep 27, 2013
    Posts:
    924
    Cool!
    Looks like it's a bit far from what is stated in the asset description "just drag and drop the UI Particles script and you're done!" as it looks like extra tweaking is often necessary.

    Anyway, the asset is pretty useful now that more features have been added!

    Is there any perceivable performance difference when used on Android and iOS?
    Is it truly crossplatform?
     
  26. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    Yes, it's truly crossplatform.
    I've tested it on iPad mini 2, iPhone 5, Google Nexus 7 (2013) and Samsung Galaxy a7 (2015).
    There is no critical difference between this platforms. Only C# code is used for implementing this plugin. Any native plugins are not used. So it should supports any platform which Unity3d supports.

    There is little performance hit compared with regular shuriken particle system, but if your particle system is optimized for mobile platform, it is enought for working properly on this platforms.

    I've made an apk file with demo scene, so you can test it on your device:
    https://drive.google.com/open?id=0BybeJDLvwc0IT0Q3R21GYUVfcGs
     
  27. SignalZak

    SignalZak

    Joined:
    Nov 13, 2014
    Posts:
    12
    We're loving this plugin so far, but we ran into an issue where the artist wants non-square frames in the spritesheet. I peeked at the code, and it looks like UIParticles.cs, ln 290 could be replaced with something like:
    Code (CSharp):
    1.  
    2.                  int column = (int) frame % textureAnimator.numTilesX;
    3.                 int row = (int)  frame / textureAnimator.numTilesY;
    4.  
    5.                 float x = column * cellWidth;
    6.                 float y = row * cellHeight;
    Where cellWidth and cellHeight are calculated somewhere else. :)

    Would this be a feature you're willing to add?
     
  28. mcmorry

    mcmorry

    Joined:
    Dec 2, 2012
    Posts:
    580
    Actually, I ran into the same issue and I sent an email to the developer with a possible fix.

    It was enough to change line 291 into:
    Code (CSharp):
    1. int y = (int) frame / textureAnimator.numTilesX;
    It means dividing by numTilesX instead of numTilesY
     
  29. ivancy1018

    ivancy1018

    Joined:
    Oct 19, 2015
    Posts:
    6
    hi, i purchased this plugin and its really cool! but i just cant add something like

    Code (CSharp):
    1.  void Update()
    2.      {
    3.          if (Time.timeScale < 0.01f)
    4.          {
    5.              particleSystem.Simulate(Time.unscaledDeltaTime, true, false);
    6.          }
    7.      }
    to make it work with TimeScale 0 situation.

    Any solution?
     
  30. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    Hi,
    You should change Update method of UI particles this way:

    Code (CSharp):
    1. protected virtual void Update ()
    2. {
    3.     if (ParticleSystem != null && Time.timeScale < 0.1f)
    4.     {
    5.         ParticleSystem.Simulate(Time.unscaledDeltaTime, true, false);
    6.         SetVerticesDirty();
    7.     }
    8.     if (ParticleSystem != null && ParticleSystem.isPlaying)
    9.     {
    10.         SetVerticesDirty();
    11.     }
    12.    
    13.    if (particleSystemRenderer != null && particleSystemRenderer.enabled)
    14.       particleSystemRenderer.enabled = false;
    15. }
     
    Last edited: Mar 30, 2017
  31. TINYSOFT

    TINYSOFT

    Joined:
    Oct 28, 2015
    Posts:
    3
    Hi Lex Dunya, Good Job!
    When you have know how and shaders. Please create new plugin. Line Renderer in GUI.
    It is possible ?

    Thank you,
     
  32. BigToe

    BigToe

    Joined:
    Nov 1, 2010
    Posts:
    208
    First off I want to let you know that this is great overall. But right now I am having some weird rendering issues with the additive shader in the editor. It seems to be worse when the editor window is resized. Also if there is more than one particle happening in the same masked area.

    https://www.dropbox.com/s/clbpmrpru6upw5m/UIParticle_ShaderProblem.mp4?dl=0

    If you have seen this or have suggestions please let me know.
     
  33. PabloAM

    PabloAM

    Joined:
    Dec 25, 2012
    Posts:
    35
    You plugins looks very good, but I´m afraid that it won´t be updated anymore. Any update since Nov 2016??

    The plugin is 100% clean of bugs?

    Thanks!
     
  34. PabloAM

    PabloAM

    Joined:
    Dec 25, 2012
    Posts:
    35
    Hello I have finally bought it and I have found a problem regarding materials.

    This is a effect at how it should be showed:
    GOODEFFECT.PNG

    And this is what happens when I attach UI particle script:
    BADEFFECT.PNG

    How can I fix it?

    Thanks! :)
     
  35. jason_yak

    jason_yak

    Joined:
    Aug 25, 2016
    Posts:
    531
    Hi there, we have an urgent issue where the UI particles simply don't show up at all on Android. I've not been able to narrow it down yet. We just updated to 5.6.2 and I wonder if that was it.. but I don't think so. They're working on iOS. The problem device is a Samsung Galaxy Tab S2 running Android 5. Everything else about our app is running fine including particles systems elsewhere in the app. Seeing as it's working on iOS a wild guess is that it could be a shader issue. Any ideas? I have another android test device running on 6 which I'll test out shortly and will report back.
     
  36. jason_yak

    jason_yak

    Joined:
    Aug 25, 2016
    Posts:
    531
    So the particles are working on a Samsung S5 running Android 6. Tomorrow I can get some results of an S8 running Android 7. But this is enough of a result to be pretty worried about what causes this bug. So far all I have to go on is that no particles on an Tab S2 running Android 5 :( we have a tight deadline looming, any help/suggestions would be greatly appreciated!! Thanks, Jason
     
  37. jason_yak

    jason_yak

    Joined:
    Aug 25, 2016
    Posts:
    531
    is there by any chance known issues around 'not' using the shaders that come with the plugin? I've just discovered that our particle materials were using the native mobile > particles > alpha blended shader which strangely works for iOS and some Android combos.. but I've just switched all over to using the UI > particles > alpha blended shader and it seems to be working on all devices so far.
     
    mcmorry likes this.
  38. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    Hi, Jason, I'm so sorry for so late response.
    You are right.
    If you are using particles in UI, you should use "UI" shaders for them.
    It's actually about how Unity renders all UI components, not only UI particles.
    In the UI Particles plugin I provided base shaders witch may be used.

    You can find some more information about shaders for UI components here: https://unity3d.com/ru/learn/tutori...s/fill-rate-canvases-and-input?playlist=30089
     
  39. jason_yak

    jason_yak

    Joined:
    Aug 25, 2016
    Posts:
    531
    Oh no worries. Thanks for the confirmation. Yea I'd used the shaders and everything starting working as intended. I'm not sure how I missed those shaders. I guess seeing the mobile shaders working on iOS I didn't need to look any further. All good, thanks!
     
  40. CaptainKirby

    CaptainKirby

    Joined:
    Dec 12, 2011
    Posts:
    36
    Hi, are there any news as to when the trails will be functioning?
     
    darrensmith likes this.
  41. darrensmith

    darrensmith

    Joined:
    Apr 13, 2017
    Posts:
    16
    I'd like to know this as well. I'm trying to create a fireworks effect, and would like to use trails for the rocket tracer. Does the developer have any estimated delivery date for this feature?
     
  42. CaptainKirby

    CaptainKirby

    Joined:
    Dec 12, 2011
    Posts:
    36
  43. olivierplaytika

    olivierplaytika

    Joined:
    Oct 11, 2017
    Posts:
    2
    Im looking forward for this too. Would be a great addition!
     
  44. Noxalus

    Noxalus

    Joined:
    Jan 9, 2018
    Posts:
    80
    Hello everyone,

    I'm using this plugin to display FX on icons in my UI, but the particles scale doesn't follow it's parent size, so if I change the size of my icon, the particles will be too big/small.

    I think I'm not the ony one that encountered this issue, so I was asking if someone already handled it?
     
  45. Noxalus

    Noxalus

    Joined:
    Jan 9, 2018
    Posts:
    80
    To do what I wanted, I create a new class `ResponsiveUiParticles` that inherits from the `UiParticles` with this content:

    Code (CSharp):
    1.     public class ResponsiveUiParticles : UiParticles.UiParticles
    2.     {
    3.         protected override void Awake()
    4.         {
    5.             base.Awake();
    6.  
    7.             transform.localScale = Vector3.one * Mathf.Max(rectTransform.rect.width, rectTransform.rect.height);
    8.         }
    9.     }
     
  46. lebo47

    lebo47

    Joined:
    Oct 18, 2013
    Posts:
    9
    Is this plug in still being supported? We are having problems and could use some help. thanks.
     
  47. TommySkunk

    TommySkunk

    Joined:
    Feb 1, 2015
    Posts:
    9
    Guess not.
     
  48. Iamrocka

    Iamrocka

    Joined:
    Apr 27, 2020
    Posts:
    1
    is the trails function supported?
     
  49. Lex_Dudya

    Lex_Dudya

    Joined:
    Feb 28, 2013
    Posts:
    29
    Due to UI architecture constrains, trails is not supported, unfortunately.
     
  50. SleepyAgapornis

    SleepyAgapornis

    Joined:
    Sep 7, 2018
    Posts:
    23
    I've found a bug when texture sheet animation's mode is set to Grid and animation to Whole Sheet.. I have a 3x3 tileset and the plugin wasn't slicing the spritesheet properly so that only one tile was displayed...
    to solve this I've changed:

    From

    Code (CSharp):
    1. case ParticleSystemAnimationType.WholeSheet:
    2. {
    3.                         frame = Mathf.Clamp(Mathf.Floor(frame01 * totalFramesCount), 0, totalFramesCount - 1);
    4.                         break;
    5. }
    To

    Code (CSharp):
    1. case ParticleSystemAnimationType.WholeSheet:
    2. {  
    3.                         Random.InitState((int) particle.randomSeed);
    4.                         frame = Random.Range(0, textureSheetAnimationModule.numTilesY);
    5.                         int row = Random.Range(0, textureSheetAnimationModule.numTilesY);
    6.                         frame += row * textureSheetAnimationModule.numTilesX;
    7.                         break;
    8. }
    I'm not sure what it did but after trial and error, it worked fine xD