// Update is called once per frame void Update() { IEnumerable <LedRingController> ledRings = dronesManager.GetDronesGameObjects() .Select((GameObject d) => d.GetComponent <LedRingController>()) .Where((LedRingController lrc) => lrc != null); if (effect != lastEffect) { lastEffect = effect; foreach (LedRingController ledRing in ledRings) { ledRing.effect = effect; } } if ((Color)color != (Color)lastColor) { lastColor = color; foreach (LedRingController ledRing in ledRings) { ledRing.color = color; } } if (headlight != lastHeadlight) { lastHeadlight = headlight; foreach (LedRingController ledRing in ledRings) { ledRing.headlight = headlight; } } }
// Use this for initialization void Start() { dronesManager = GameObject.Find("DronesManager").GetComponent <DronesManager>(); lastEffect = effect; lastColor = color; lastHeadlight = headlight; }
// Use this for initialization void Start() { droneScript = gameObject.GetComponent <Drone>(); droneLight = gameObject.GetComponentInChildren <Light>(); lastEffect = effect; lastColor = color; lastHeadlight = headlight; droneScript.ConnectionEvent += (Drone drone) => { SetParams(true); }; cooldown = Time.time; }
void SetParams(bool force = false) { if (effect != lastEffect || force) { lastEffect = effect; droneScript.SetParam("ring", "effect", (int)effect); } if ((Color)color != (Color)lastColor || force) { lastColor = color; droneScript.SetParam("ring", "solidBlue", (int)color.b); droneScript.SetParam("ring", "solidGreen", (int)color.g); droneScript.SetParam("ring", "solidRed", (int)color.r); } if (headlight != lastHeadlight || force) { lastHeadlight = headlight; droneScript.SetParam("ring", "headlightEnable", headlight ? 1 : 0); } }