- Home /
Controlling when a script is enabled with another Script
Trying to control how often my light flickers with another script. I can succesfully control my LightFlicker script in the update function of my FlickerRate script. However I can't seem to get it to work with a StartCourotine/IEnumerator function. Please help me shed some light on this. Here's my LightFlicker Script which works as intended.`using UnityEngine; using System.Collections;
public class LightFlicker : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
public void Update ()
{
{
if (Random.value > 0.7) //a random chance
{
if (light.enabled == false) //if the light is on...
{
light.enabled = true; //turn it off
}
else
{
light.enabled = false; //turn it on
}
}
}
}
}
And here is my FlickerRate Script which is not currently doing anything.
using UnityEngine;
using System.Collections;
public class FlickerRate : MonoBehaviour {
public LightFlicker LightFlickerScript;
// Use this for initialization
void start () {
StartCoroutine (flicker ());
GetComponent<LightFlicker>();
}
// Update is called once per frame
void Update () {
}
IEnumerator flicker()
{
LightFlickerScript.enabled = true;
yield return new WaitForSeconds (2.0f);
LightFlickerScript.enabled = false;
yield return new WaitForSeconds (2.0f);
}
}
`
Comment
Best Answer
Answer by Cyrax756 · Nov 02, 2014 at 01:18 AM
Figured it out, This is what i ended up doing.
using UnityEngine;
using System.Collections;
public class FlickerRate : MonoBehaviour {
public LightFlicker LightFlickerScript;
// Use this for initialization
void start () {
GetComponent<LightFlicker>();//LightFlicker Script
GetComponent<AudioSource>();
}
// Update is called once per frame
void FixedUpdate () {
if(LightFlickerScript.enabled == true)//Light will be on at end of start Coroutine
{
StartCoroutine(flickeroff());
}
}
IEnumerator flickeroff()
{
yield return new WaitForSeconds (3.0f);//Light Flickers for X seconds then stops
LightFlickerScript.enabled = false;//Light stops flickering
audio.enabled = false;//Audio turns off
light.enabled = false;//Light is off after flickering
yield return new WaitForSeconds (5.0f);//Light begins flickering again after X seconds
audio.enabled = true;//audio turns on
yield return new WaitForSeconds (0.5f);//Let's audio play for X seconds before light flickers
LightFlickerScript.enabled = true;//Light turns on
}
}
Your answer
Follow this Question
Related Questions
Getting all children of 3d model at once 1 Answer
Can't find fix for buggy camera 0 Answers
How do I turn this into a Lerp function 1 Answer