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