Night vision effect

OK, my game is like splinter cell and I want to make a night vision effect. I already know there is a question about this: Night-vision/thermal possible? - Questions & Answers - Unity Discussions the problem with this is that answer 1 and answer 2 work only with Unity Pro, and I don’t have Unity Pro, then the third answer is a good idea but I cant make it work. Then someone could say why don’t you simply change the ambient light and I already do it the problem is that it doesn’t works as I want because I want also that if you are close to the light the intensity will be more than usually. The effect I want to do is something like this at 1.02: Splinter Cell Chaos Theory: Light House 100% Expert Difficulty Stealth/Ghosting Run Xbox/PC (1KO) - YouTube. So how can I do this without Unity Pro?

You can’t get a glow effect very well without an image effect, but you should still be able to use Replacement shaders. Just use a replacement shader that has a strong green component. That will turn all your objects green:

Something like:

var replacementShader : Shader;

function Update () {
       if(Input.GetButtonDown("TurnOnNightVision") {
               camera.SetReplacementShader(replacementShader, "RenderType");
               //"RenderType" is a common one because all Unity shaders have that tag built in.
       }
}

Then you make a shader for your replacement shader. The docs took me forever to understand what they were saying so let me try and say it differently.

  1. Unity goes through each renderer in your scene and finds the shader it is currently using. It checks to see if it has the tag you specified. above. If it does, then move onto the next step. Otherwise it is not rendered.
  2. Unity goes into the replacement shader and finds a subshader that has the same tag value as the object above. For example if an object has tag "RenderType"="Opaque" then Unity will go into the replacement shader and find a subshader with the tag "RenderType"="Opaque"
  3. Unity then renders the given object with the replacement shader using the determined subshader.

http://unity3d.com/support/documentation/ScriptReference/Camera.SetReplacementShader.html