Exemple #1
0
    private void initMirrors()
    {
        laserStartX   = Random.Range(0, cols);
        laserEndX     = Random.Range(0, cols);
        fillerMirrors = numMirrors - solutionMirrors;
        HashSet <Vector2Int> laserSet  = new HashSet <Vector2Int> ();
        HashSet <Vector2Int> mirrorSet = new HashSet <Vector2Int> ();

        // init laser set with surrounding 4 squares so they don't get filled
        for (int i = rows / 2 - 1; i <= rows / 2; i++)
        {
            for (int j = cols / 2 - 1; j <= cols / 2; j++)
            {
                laserSet.Add(new Vector2Int(j, i));
            }
        }
        while (!randomSolution(ref laserSet, ref mirrorSet))
        {
            ;
        }
        randomFiller(laserSet, mirrorSet);

        foreach (Vector2Int point in mirrorSet)
        {
            Vector3    pos    = getTransformPos(point, -5f);
            GameObject mirror = Instantiate(mirrorTemplate, pos, Quaternion.identity, gameObject.transform);
            InteractableMirrorController control = mirror.GetComponent <InteractableMirrorController> ();
            control.setManager(this);
            mirrors.Add(point, mirror);
        }
    }
 public void OnDeselect(Transform t)
 {
     Debug.Log("mirror OnDeselect");
     if (t.gameObject.tag == "GameMirror")
     {
         numPressed--;
         if (numPressed == 0)
         {
             t.gameObject.transform.GetChild(1).gameObject.GetComponent <Renderer>().material = oldHoverMat;
             t.gameObject.GetComponent <InteractableMirrorController>().unselectMirror();
             controller = null;
         }
     }
 }
 public void OnSelect(Transform t)
 {
     Debug.Log("mirror OnSelect " + t.gameObject.tag);
     if (t.gameObject.tag == "GameMirror")
     {
         numPressed++;
         if (numPressed == 1)
         {
             oldSelectMat = t.gameObject.transform.GetChild(1).gameObject.GetComponent <Renderer>().material;
             if (greenMat != null)
             {
                 t.gameObject.transform.GetChild(1).gameObject.GetComponent <Renderer>().material = greenMat;
             }
             t.gameObject.GetComponent <InteractableMirrorController>().selectMirror();
             controller = t.gameObject.GetComponent <InteractableMirrorController>();
             StoreHandPositions();
         }
     }
 }