Rain Drop Effect by chkztrukaz - 2

CameraShaders & Effects

RainDropEffect for the Unity Asset Store

Unity 5.5.0f3MIT LicenseUpdated 1 year agoCreated on April 16th, 2017
Go to source

Rain Drop Effect2: Beautiful, flexible, and faster rain distortion effect for Unity

This project enables creating a screen effect with not only rain distortion but blood effect and water effect.

Image not found.


  • Easy to use
  • Dynamic and realistic distortion, fast and flexible
  • DirectX9 is supported
  • VR is supported


Youtube video not found.


How to use

Open the following demo project, and you will find how to use the project.


Game-in-ready prefabs

Some basic and useful prefabs are prepared for you. Please use prefabs in



Normal rain drop effects where you can D&D the prefab(s) at your scene.

Blood Rain

A splash of blood


Cheap rain effects optimized for mobiles

Water Splash In

A water splash (diving) effect

Water Splash Out

A water splash (leap out) effect


This is a freezing effect in a cold environment


VR supported effects

  • If an effect is not playable at start, you have to call a method from your script as follows:
[RainCameraController].Refresh (); // If you need
[RainCameraController].Play (); 

Customize your effect


RainCameraController.cs is a main component you’ll use. It requires an orthographic camera, or perspective view in case you use VR mode. When you attach RainCameraController.cs for an arbitrary game object, a camera is automatically added. Please refer properties of RainCameraController to customize.

Inspector Configuration

Render Queue

The Render Queue controls the order for effect rendering. If you are using GUI assets (e.g., NGUI) under RainCameraController, you can controll the queue of effects. 3000 is a default value.


You can control whole rain alpha value under the camera.


// It returns the current draw call RainCameraController.cs issues.
public int CurrentDrawCall {get;}

// Gets the max draw call theRainCameraController.cs issues.
public int MaxDrawCall {get;}

// It's true when rain drop controllers are playing.
public bool IsPlaying {get;}


// You can call this method when you want to redraw rain.
public void Refresh ()

// Starts the rain increasingly.
public void Play ()

// Stops the rain gradually.
public void Stop () 

// Stops the rain immediately.
public void StopImmidiate ()


You can optimize performance using low scale rain drop normal map. Do not forget to adjust the resolutions too. In some case, resolutions on mobile platforms are too high.

Show all projects by chkztrukaz