The official repository for the Unity "Beautiful Dissolves" asset found here.
Beautiful Dissolves is a high-quality, powerful, and versatile shader that can help you enhance the look of your game!
These instructions will get you started on using Beautiful Dissolves in your own projects.
- Unity 5.1.0 or higher
- GPU that supports shader model 3.0 or higher
- PBR Support
- 2D Support
- Mobile Support
- Over 60 Dissolve Maps Included
- ...and more!
| Setting | Description |
|---|---|
| Dissolve Map (R) | The dissolve pattern, uses the red (R) channel of the texture map (lower/darker values dissolve faster) |
| Direction Map (R) | The direction of dissolve controlled by the red (R) channel of the texture map (lower/darker values dissolve faster) |
| (*)Dissolve Mask (A) | The dissolve mask, uses the alpha (A) channel of the texture map (0 = no dissolve, 1 = dissolve) |
| Dissolve Amount (0-1) | The amount of dissolve to apply (0 = no dissolve, 1 = fully dissolved) |
| (*)Dissolve Delay (0-1) | The amount of delay before dissolving begins |
| (*)Dissolve Ramp Up (1-10) | The speed at which dissolve glow/colors will reach its maximum peak |
| Substitute Texture (RGB) | The texture to use inplace of clipping (RGB) |
| Use Color Ramp (boolean) | Switch between using a texture color ramp (RGB) for dissolve edges or interpolated colors |
| Color Ramp (only if Use Color Ramp is set) (RGB) | The color ramp (RGB) to use for the dissolve edge color |
| Inner/Outer Edge Color (only if Use Color Ramp is NOT set) (RGB) | The color(s) (RGB) for the dissolve edge, color is interpolated between inner and outer edge colors |
| Edge Thickness (0-1) | The thickness of the dissolve edge |
| Dissolve Glow (boolean) | Switch between using a dissolve emission glow or not |
| Glow Color (RGB) | Color (RGB) of the dissolve glow |
| Glow Intensity (0-1) | The intensity of the dissolve glow |
| Follow-Through (boolean) | If a Substitute texture is used, this will determine whether the substitute will also glow or not |
(*) These features are only available in Unity 2017.1.0 and higher.
A scriptable object that allows you to reuse dissolve settings for multiple gameobjects. Create a new DissolveSetting by using the menu option Create > BeautifulDissolves > Settings.
| Setting | Description |
|---|---|
| Atomic | Controls whether the dissolve can be interrupted or not |
| Disable After Dissolve | Controls whether this object can be dissolved more than once |
| Dissolve Curve | An animation curve for the dissolve amount |
| Dissolve Start Percent | Percentage at which object should start dissolving from |
| Time | Amount of time the dissolve animation will take assuming speed is 1 |
| Speed | Allows you to "fast-forward" the animation. Similar to the Time parameter |
Add this script to any object with a Dissolve material to easily trigger dissolve by script.
// Triggers dissolve using the DissolveSettings in the inspector
public void TriggerDissolve()
// Triggers dissolve using custom DissolveSettings object
public void TriggerDissolve(DissolveSettings settings)
// Triggers dissolve with custom parameters
public void TriggerDissolve(bool atomic, bool disableAfterDissolve, AnimationCurve dissolveCurve, float dissolveStartPercent, float time, float speed)
// Triggers a reverse dissolve using the DissolveSettings in the inspector
public void TriggerReverseDissolve()| Setting | Description |
|---|---|
| Dissolve Settings | The dissolve settings to use for this dissolve (see above) |
| On Dissolve Start | The events that should trigger on dissolve start |
| On Dissolve End | The events that should trigger on dissolve end |
Add this script to any object with a Dissolve material to add a light source that will respond to the DissolveGlow property of the material. If Glow Source is set to Light then the script's inspector will allow you to create a Light source with a single-click that will update itself based on the current DissolveGlow properties (color, intensity).
| Setting | Options | Description |
|---|---|---|
| Start Mode | (*)On Awake, On Start, By Script | When the glow will start updating |
| Update Rate | (*)Every Frame, Every Nth Frame, Custom Fixed Timestep | The rate at which the glow will update |
| Glow Source | (*)Emissive, Light | The source of glow, Emissive source requres the object to be set to Static. If Light is selected then an option to auto-create a Light source is made available |
| Glow Cutoff | float (0-1) | The dissolve amount at which glow should be 0, this allows you to adjust for when the object is fully dissolved before it reaches a dissolve amount of 1 |
(*) Indicates default options
This script allows you to easily change the dissolve shader properties during runtime. All dissolve properties are exposed through getters/setters, eg. SetDissolveMap(Material mat, Texture2D texture) allows you to change the dissolve map during runtime.
// In your own script
public void ChangeDissolveMap()
{
DissolveHelper.SetDissolveMap(myDissolveMaterial, myDissolveMap);
}