コード例 #1
0
    void UpdateRedSlicersVisibility(Slicer.SLICER_POSITION visibleBluePosition)
    {
        // 현재 보이고 있는 blue slicer에 대응하는 red slicer를 보이게 한다
        Slicer.SLICER_POSITION visibleRedPosition = Slicer.SLICER_POSITION.MAX;

        switch (visibleBluePosition)
        {
        case Slicer.SLICER_POSITION.BACK_LEFT:
            visibleRedPosition = Slicer.SLICER_POSITION.FRONT_RIGHT;
            break;

        case Slicer.SLICER_POSITION.BACK_RIGHT:
            visibleRedPosition = Slicer.SLICER_POSITION.FRONT_LEFT;
            break;

        case Slicer.SLICER_POSITION.FRONT_LEFT:
            visibleRedPosition = Slicer.SLICER_POSITION.BACK_RIGHT;
            break;

        case Slicer.SLICER_POSITION.FRONT_RIGHT:
            visibleRedPosition = Slicer.SLICER_POSITION.BACK_LEFT;
            break;
        }

        foreach (Slicer slicer in redSlicers)
        {
            slicer.gameObject.SetActive(false);
            if (slicer.slicerPosition == visibleRedPosition)
            {
                slicer.gameObject.SetActive(true);
            }
        }
    }
コード例 #2
0
    public void UpdateBlueSlicersVisibility(CameraRotationManager.CAMERA_LOCATION currentCameraLoaction)
    {
        _currentCameraLoaction = currentCameraLoaction;
        if (isPuzzleSliced)
        {
            return;
        }

        // 카메라가 바라보는 위치에 따라 어떤 blue slicer를 보이게 할 것인지 결정
        Slicer.SLICER_POSITION visibleBluePosition = Slicer.SLICER_POSITION.MAX;

        switch (currentCameraLoaction)
        {
        case CameraRotationManager.CAMERA_LOCATION.BACK_LEFT:
            visibleBluePosition = Slicer.SLICER_POSITION.BACK_RIGHT;
            break;

        case CameraRotationManager.CAMERA_LOCATION.BACK_RIGHT:
            visibleBluePosition = Slicer.SLICER_POSITION.BACK_LEFT;
            break;

        case CameraRotationManager.CAMERA_LOCATION.FRONT_LEFT:
            visibleBluePosition = Slicer.SLICER_POSITION.FRONT_RIGHT;
            break;

        case CameraRotationManager.CAMERA_LOCATION.FRONT_RIGHT:
            visibleBluePosition = Slicer.SLICER_POSITION.FRONT_LEFT;
            break;
        }

        // 적절한 blue slicer 하나만 보이게 하고 나머지는 다 숨긴다
        foreach (Slicer slicer in blueSlicers)
        {
            slicer.gameObject.SetActive(false);
            if (slicer.slicerPosition == visibleBluePosition)
            {
                slicer.gameObject.SetActive(true);
            }
        }

        UpdateRedSlicersVisibility(visibleBluePosition);
    }