Search Unity

[Released] UI 3D-System: advanced solution for 3D objects in GUI

Discussion in 'Assets and Asset Store' started by MODev, Feb 7, 2018.

  1. MODev

    MODev

    Joined:
    Jul 30, 2013
    Posts:
    136

    I'm happy to announce new great GUI plugin: UI 3D-System, the extended version of UI Particle System.

    UI 3D-System is advanced solution for 3D objects and particles used in Unity GUI. With this plugin you will not need to worry about changing sorting orders, adding multiple canvases, etc. With it you can just add 3D Renderers or particles to GUI in few quick steps. UI 3D-System is also mobile friendly, its very efficient depth buffer generating method makes is very cheap for performance.

    Features:
    -rendering particles on GUI, based on custom depth buffer
    -rendering 3D models on GUI, based on custom depth buffer
    -full support for Shuriken Particle System (only what you need to change is shader)
    -culling mask feature (so you can use particles in scroll views, etc.)
    -support for lights on 3D models
    -easy to setup component-attach UI 3D-System
    -advanced, highly customizable shaders for particles, 3D standard models, unlit and transparent objects
    -support for GUI distortion effects
    -possibility to easily extend system with own shaders
    -support for perspective view of rendered 3D object with GUI culling
    -support for multiple cameras with different set-ups
    -support for Shader Amplify Editor, easy to use node based shader editor: http://u3d.as/y3X

    Perfect for:
    -3D previews of game characters in GUI
    -3D previews of in-game rewards on GUI view
    -special effects of GUI elements like buttons or other interactable elements
    -rewarding effects with complicated and advanced particles
    -game card effects

    Requirements:
    -Unity GUI
    -Canvas with Screen Space - Camera mode or World Space mode. System does not work without GUI camera set

    Supported depth/culling sources:
    -Image (GUI component)
    -RawImage (GUI component)
    -RectTransform with selected, in component, texture

    You can find it here: https://www.assetstore.unity3d.com/en/#!/content/109573
    Please note that if you have already bought UI Particle System, you will be able to buy upgrade to UI 3D-System instead of paying full price.



     
    Last edited: Apr 3, 2018
  2. MODev

    MODev

    Joined:
    Jul 30, 2013
    Posts:
    136
    Update to 1.04 has been released!
    What's new:
    - Added UI3DRectTransSizeFollower
    - Added Soft particle collision with GUI
    - Improved UI3DCanvas mask refresh on resize game view
    - Fixed issue with inverted culling mask on some platforms
     
  3. MODev

    MODev

    Joined:
    Jul 30, 2013
    Posts:
    136
    I have great news, version 1.07 has been released and there are new cool features!
    What's there:
    -added distortion particle shader
    -added support for Amplify Shader Editor, so you can make in no time your custom shaders to make great 3D effects for GUI!
    Check out how button below can be animated with use of shader from ASE: https://i.imgur.com/fINLelt.gif

    (Of course now you can make more like melting buttons, advanced shaders for character previews and many many more, check out for possibilities here: http://u3d.as/y3X)
     
    Last edited: Apr 3, 2018
  4. MODev

    MODev

    Joined:
    Jul 30, 2013
    Posts:
    136
    Great news! Now Mesh Effects also work with UI 3D-System!
     
    umcherrel likes this.
  5. MODev

    MODev

    Joined:
    Jul 30, 2013
    Posts:
    136
    Next effects package joined to support for UI 3D-System: Materialize FX!
     
    umcherrel likes this.
  6. mehtanitish

    mehtanitish

    Joined:
    Mar 22, 2016
    Posts:
    13
    Thanks for such a great plugin! I am facing an issue in Menu3D scene, for each panel the first button is in highlighted state by default. I am unable to find any script which might be doing this. Could you please tell me what is causing the top button on each panel for Menu3D scene to be in highlighted state on start?
     
  7. MODev

    MODev

    Joined:
    Jul 30, 2013
    Posts:
    136
    Hi! I'm happy to hear that you like it :)
    Have you set proper layer in Ui 3d canvas inspector? I mean different than your gui layer and something which your gui camera doesn't see. Best if you could send me screenshot of gui and your ui 3d system settings on support mail so I could see how it looks like if above thing does not help.
     
    Last edited: Jul 10, 2018
  8. Gillissie

    Gillissie

    Joined:
    May 16, 2011
    Posts:
    52
    Hi there. I got this working in the editor, but it doesn't appear to work on WebGL builds. Any tips? Or am I just out of luck? The main platform for our game is WebGL.
     
  9. MODev

    MODev

    Joined:
    Jul 30, 2013
    Posts:
    136
    Hi! Thanks for buying UI3DSystem.
    Have you checked if in Mask layer in UI3D Canvas you have mask different than the Culling Mask in your GUI camera? It's common thing and sometimes randomly editor allows to work without this.
    If this doesn't help maybe you could send me on support mail screen shots with your UI3D Canvas, GUI camera, Canvas and particles/3d object material configuration?
    UI 3D-System works on every platform (it's very platform independent so should work on everything which supports Unity GUI).

    Edit:
    I've double checked build for WebGL and example scenes work without problem
     
  10. Gillissie

    Gillissie

    Joined:
    May 16, 2011
    Posts:
    52
    At first it seemed that WebGL builds didn't work, but it turned out that the compiler was stripping the unused keywords for enabling the clipping mask because I didn't have any materials with that enabled in my assets since I swap shaders at runtime. The solution to this was to simply make a placeholder material with the UI3D shader chosen, and enable the clip mask on the material. Then, put that placeholder material in a Resources folder so it's included in the build. Nothing actually needs to use the material, it just needs to exist with the keyword enabled so it doesn't get stripped by the compiler during the build.

    Here is the function I wrote for swapping shaders at runtime to be able to use any object as a clipped object without the need to explicitly create multiple materials for everything.

    Code (CSharp):
    1. // Prepares a 3D object for UI masking by replacing the shaders with the maskable one,
    2. // and then enabling the clipping mask.
    3. // This works in conjunction with UI3DDepthObject and UI3DCanvas.
    4. public static void enable3DUIMask(MonoBehaviour component)
    5. {
    6.     Renderer rend = component.GetComponent<Renderer>();
    7.     Material[] mats = rend.materials;
    8.  
    9.     for (int i = 0; i < mats.Length; i++)
    10.     {
    11.         Material mat = new Material(mats[i]);
    12.  
    13.         // This line could be more dynamic by checking the existing shader name
    14.         // and choosing one of the various shaders based on that.
    15.         mat.shader = Shader.Find("MODev/UI3D/Standard");
    16.  
    17.         mat.EnableKeyword("USE_CLIPPING_MASK");
    18.         mat.EnableKeyword("USE_CLIPPING_MASK_ON");
    19.  
    20.         mats[i] = mat;
    21.     }
    22.  
    23.     rend.materials = mats;
    24. }
     
    MODev likes this.
  11. MODev

    MODev

    Joined:
    Jul 30, 2013
    Posts:
    136
    Because Xmas time is coming I've prepared video tutorial, how to add snow into gui with use Ui particle system or Ui 3d-system plugin here:
     
  12. wadewt

    wadewt

    Joined:
    Mar 17, 2013
    Posts:
    14
    Hello, I was just wondering if there's chance of this asset supporting the HDRP?
     
  13. MODev

    MODev

    Joined:
    Jul 30, 2013
    Posts:
    136
    Hi,
    we are planning to add support for HDRP and LWRP when it become more stable and won't cause errors like this: https://forum.unity.com/threads/maximum-shader-keywords-exceeded.515431/ but for now it's not supported. I think it can come in incoming month or two (first will be full LWRP support because UI3DS works there nearly without changes - just few shader fixes)
     
  14. wadewt

    wadewt

    Joined:
    Mar 17, 2013
    Posts:
    14
    Thanks for the information, looking forward to the update.
     
  15. MODev

    MODev

    Joined:
    Jul 30, 2013
    Posts:
    136
    Here it is!
    Support for semi-transparent clipping masks and semi-transparent (non-overlapping) depth objects has been added to UI 3D-System.
    Now available at version 1.23!
     
  16. kdion4891

    kdion4891

    Joined:
    May 29, 2019
    Posts:
    2
    I need help. What is your email or discord? I want to use a mask on a scroll view to just hide the 3D objects in the viewport. I can't figure it out.
     
  17. MODev

    MODev

    Joined:
    Jul 30, 2013
    Posts:
    136
    Hi,
    I've just answered for your question in forum PM :)