public void UpdateColor(GameObject colorGO)
    {
        ColorOption inputColor     = 0;
        ColorOption newColorOption = 0;
        Material    targetMaterial = colorGO.GetComponent <MeshRenderer>().material;

        // Check which type of input we received NOTE: this is now redundant. Only used for prompt.
        if (colorGO == colorPromptGO) // update prompt material
        {
            // Should probably make this into its own method.
            inputColor = PlayerController.Instance.DisplayRandomColor();
            ColorObject colorObject = colorGO.GetComponent <ColorObject>();
            newColorOption           = RandomizeColor();
            colorObject.currentColor = newColorOption;
            colorObject.LightColorPrompt();
        }

        Color newColor = Color.black;

        switch (newColorOption)
        {
        case ColorOption.blue:
            newColor = Color.blue;
            break;

        case ColorOption.green:
            newColor = Color.green;
            break;

        case ColorOption.red:
            newColor = Color.red;
            break;

        case ColorOption.yellow:
            newColor = Color.yellow;
            break;

        case ColorOption.invalid:
            Debug.LogWarning("Invalid color!");
            break;
        }

        if (targetMaterial.color != newColor)
        {
            targetMaterial.color = newColor;
        }
    }