コード例 #1
0
    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();
        }
    }
コード例 #2
0
    // 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();
        }
    }