void Update()
    {
        ///<remarks>
        ///Selecting the tiles
        ///</remarks>

        if (Input.GetMouseButtonUp(0))
        {
            GameObject tempObject = raycastController.OnClick();

            if (tempObject != null)
            {
                CurrentObject = tempObject;
                MovBlocked    = false;
                //effectsManager.ChangeCurrentObject(currentObject);
                if (!selectedObjects.Contains(tempObject))
                {
                    selectedObjects.Add(tempObject);
                }
                else
                {
                    selectedObjects.Remove(tempObject);
                }
                effectsManager.UpdateEmission(selectedObjects);
            }
        }

        ///<remarks>
        ///Start from updating the tags and materials on the speckle stream objects every 1000 frames
        ///</remarks>

        fCounter++;

        if (fCounter > 1000)
        {
            FindChildren("BH_grid_tiles", "tile");

            // change material for the site objects

            GameObject rt = GameObject.Find("Obj_site");
            if (rt != null)
            {
                foreach (Transform child in rt.GetComponent <Transform>())
                {
                    if (child.GetComponent <Renderer>().material != site)
                    {
                        child.GetComponent <Renderer>().material = site;
                    }
                }
            }

            fCounter = 0;
        }
    }