public void SelectNextMirror() { int index = GetNextMirror(); if (index > -1) { previousMirror.DeselectAsPrevious(); previousMirror = currentMirror; previousMirror.SelectAsPrevious(); } if (index > -1) { currentMirror.Deselect(); current = index; currentMirror = Mirrors[current]; currentMirror.Select(); } index = GetNextMirror(); if (index > -1) { nextMirror.DeselectAsNext(); nextMirror = Mirrors[index]; nextMirror.SelectAsNext(); } }
public void SelectCertainMirror(int mirrorNumber) { currentMirror.Deselect(); if (mirrorNumber >= 0 && mirrorNumber < Mirrors.Length && bIsMirrorAvailable[mirrorNumber]) { current = mirrorNumber; currentMirror = Mirrors[current]; currentMirror.Select(); } else { Debug.LogWarning("The mirror " + mirrorNumber + " cannot be selected."); } }
// Use this for initialization void Start() { GameObject[] mirrorsWithTag = GameObject.FindGameObjectsWithTag("Mirror"); int size = 0; for (int i = 0; i < mirrorsWithTag.Length; i++) { RotateObject mirror = mirrorsWithTag[i].GetComponentInParent <RotateObject>(); mirror.mirrorManager = this; if (mirror.MirrorNumber > -1) { size++; } else { Debug.LogWarning("Mirror number did not assign\n"); } } Mirrors = new RotateObject[size]; bIsMirrorAvailable = new bool[size]; for (int i = 0; i < size; i++) { bIsMirrorAvailable[i] = false; } for (int i = 0; i < mirrorsWithTag.Length; i++) { RotateObject mirror = mirrorsWithTag[i].GetComponentInParent <RotateObject>(); if (mirror.MirrorNumber > -1) { int iMirrors = mirror.MirrorNumber; if (iMirrors >= Mirrors.Length) { Debug.LogError("Mirror number out of bound, make sure the number is within 0 to total-1\n"); break; } Mirrors[iMirrors] = mirror; if (bIsMirrorAvailable[iMirrors]) { Debug.LogWarning("Mirror number duplicated " + iMirrors + "\n"); } bIsMirrorAvailable[iMirrors] = true; } } current = 0; currentMirror = Mirrors[current]; currentMirror.Select(); int NextIndex = GetNextMirror(); if (NextIndex > -1) { nextMirror = Mirrors[NextIndex]; nextMirror.SelectAsNext(); } previousMirror = Mirrors[Mirrors.Length - 1]; if (previousMirror != null) { previousMirror.SelectAsPrevious(); } }