- Home /
 
need help with javascript for underwater blur effect
I have an underwater script that produces a fog effect and I am trying to make a blur effect as well, but when I tried adding the blur, I get the error:
NullReferenceException: Object reference not set to an instance of an object
Here is the script I am using:
 var underwaterLevel = 19;
 
 private var defaultFog;
 
 private var defaultFogColor;
 
 private var defaultFogDensity;
 
 private var defaultSkybox;
 
 var noSkybox : Material;
 
 
 
 function Start () {
 
     defaultFog = RenderSettings.fog;
     
     defaultFogColor = RenderSettings.fogColor;
 
     defaultFogDensity = RenderSettings.fogDensity;
 
     defaultSkybox = RenderSettings.skybox;
 
     camera.backgroundColor = Color (0, 0.4, 0.7, 1);
     
 }
 
 function Update () {
     if (transform.position.y < underwaterLevel) {
         RenderSettings.fog = true;
         RenderSettings.fogColor = Color (.5, .6, .6, .6);
         RenderSettings.fogDensity = 0.08;
         RenderSettings.skybox = noSkybox;
         GetComponent("BlurEffect").enabled = true;
     }
 
     else {
         RenderSettings.fog = defaultFog;
         RenderSettings.fogColor = defaultFogColor;
         RenderSettings.fogDensity = defaultFogDensity;
         RenderSettings.skybox = defaultSkybox;
         GetComponent("BlurEffect").enabled = false;
     }
 }
 
               Anyone know what I need to change to fix this? I'm using version 3.5
The part that is giving errors is this:
GetComponent("BlurEffect").enabled = true;
You never did an AddComponent("BlurEffect") in your code, so you're calling a non-existent Component and attempting to access a variable on this null object.
Answer by You! · Jun 15, 2012 at 06:13 AM
I'm thinking that "BlurEffect" is a script... Which object is the script attached to? You might need to create a variable for that game object (to be set in the inspector)...
 var scriptObj : GameObject;
 
               ...and then use that to call for the variable:
 scriptObj.GetComponent("BlurEffect").enabled = true;
 
              I did have to change
var scriptObject : GameObject;
to
var scriptObject : Component;
Your answer
 
             Follow this Question
Related Questions
Camera Effect for partially Underwater View 0 Answers
Can you use a camera effect that only applies to a certain layer? 1 Answer
how to blur an object and then sharpen the edges? 0 Answers
Primitive Nitro Effect 1 Answer
Simulate Shutter Speed 1 Answer