예제 #1
0
 /* 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);
 }
예제 #2
0
    /* 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);
        }
    }