// 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);
     }
 }