/* Clicking on a color wheel triangle calls back to set the wall material color */ public void ChangeColorCallback(Color wallColor, ColorWheelTriangle selector) { if (m_currentlySelectedTriangle != null) { m_currentlySelectedTriangle.Select(false); } m_currentlySelectedTriangle = selector; controller.ChooseColor(wallColor); }
/* Loading Coroutine, for performance reasons. Reduces load by initializing one object per update*/ private IEnumerator C_Load() { // set properties of m_colorTrianglePrefab m_colorTrianglePrefab.transform.localScale = TRIANGLE_SCALE; yield return(null); // create %NUM_TRIANGLES number of triangles for (int index = 0; index < NUM_TRIANGLES; index++) { Quaternion rotation = Quaternion.Euler(0, 0, index * 360 / NUM_TRIANGLES); GameObject newObject = GameObject.Instantiate( m_colorTrianglePrefab, gameObject.transform.position, rotation); newObject.SetActive(false); yield return(null); // move the triangle away slightly newObject.transform.position += rotation * new Vector3(0, -1, 0) * SEPARATION; arr_triangles[index] = newObject; // register controller with triangle ColorWheelTriangle triangleScript = newObject.GetComponent <ColorWheelTriangle>(); if (triangleScript == null) { Debug.Log("error: ColorWheel has created a prefab without a ColorWheelTriangle script"); } else { triangleScript.SetController(this); triangleScript.SetColors(WALL_COLORS[index], DISPLAY_COLORS[index], HOVER_HIGHLIGHT_COLORS[index]); } yield return(null); } }