This is the code i have so far.
#pragma strict
function Start ()
{
var FlashingLight : Light;
FlashingLight.enabled = false;
}
function FixedUpdate ()
{
var RandomNumber = Random.value;
;
if(RandomNumber<=.7)
{
FlashingLight.enabled = true;
FlashingLight.enabled=false;
}
}
If someone could let me know what parts I need to fix, I would really appreciate it!
Right now, the compiler error is telling me that:
Assets/iTween/FlashingLight.js(16,23): BCE0020: An instance of type ‘UnityEngine.Behaviour’ is required to access non static member ‘enabled’.
If someone could explain that to me too, that would be great! Sorry about this!
I appreciate your feedback on this!
I tried this but for some reason this gave me:
Assets/iTween/FlashingLight.js(16,23): BCE0020: An instance of type ‘UnityEngine.Component’ is required to access non static member ‘active’.
I’d imagine you’re getting the error because your FlashingLight
variable is being defined within your Start
function. If you define it in there, it won’t be remembered when Update
rolls around.
Move your variable declaration outside of Start
.
(I know nothing of JavaScript, but I still think this might be the reason why.)
Additionally, if this script’s being placed on the same GameObject with the light on it, I’d suggest you do something along the lines of:
FlashingLight = gameObject.GetComponent(Light);
This would help prevent any errors revolving around not having a Light to modify.
I found, with a bunch of looking around, a really useful script. It uses different methods of creating a flicker, either random or “pulsing” with many uses. You can attach the script to any light in the scene and change the values using the interface. This is what I use (javascript):
// Properties
var waveFunction : String = "sin"; // possible values: sin, tri(angle), sqr(square), saw(tooth), inv(verted sawtooth), noise (random)
var base : float = 0.0; // start
var amplitude : float = 1.0; // amplitude of the wave
var phase : float = 0.0; // start point inside on wave cycle
var frequency : float = 0.5; // cycle frequency per second
// Keep a copy of the original color
private var originalColor : Color;
// Store the original color
function Start () {
originalColor = GetComponent(Light).color;
}
function Update () {
var light : Light = GetComponent(Light);
light.color = originalColor * (EvalWave());
}
function EvalWave () {
var x : float = (Time.time + phase)*frequency;
var y : float;
x = x - Mathf.Floor(x); // normalized value (0..1)
if (waveFunction=="sin") {
y = Mathf.Sin(x*2*Mathf.PI);
}
else if (waveFunction=="tri") {
if (x < 0.5)
y = 4.0 * x - 1.0;
else
y = -4.0 * x + 3.0;
}
else if (waveFunction=="sqr") {
if (x < 0.5)
y = 1.0;
else
y = -1.0;
}
else if (waveFunction=="saw") {
y = x;
}
else if (waveFunction=="inv") {
y = 1.0 - x;
}
else if (waveFunction=="noise") {
y = 1 - (Random.value*2);
}
else {
y = 1.0;
}
return (y*amplitude)+base;
}
very nice information you share with us. thanks for this.
light novel
My best guess is, to remove “FlashingLight.enabled = false;”, and put “FlashingLight.active = false;”
(This is untested)