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