예제 #1
0
    //enable and disable camer ascripts on the object to safe resources. Also changes the rects of the cameras according to chosen playernumber
    private void OverrideCameraValues(SplitscreenPreset _SetValues)
    {
        Cameras[0].rect = new Rect(_SetValues.pos1.x, _SetValues.pos1.y, _SetValues.c1.x, _SetValues.c1.y);
        Cameras[1].rect = new Rect(_SetValues.pos2.x, _SetValues.pos2.y, _SetValues.c2.x, _SetValues.c2.y);
        Cameras[2].rect = new Rect(_SetValues.pos3.x, _SetValues.pos3.y, _SetValues.c3.x, _SetValues.c3.y);
        Cameras[3].rect = new Rect(_SetValues.pos4.x, _SetValues.pos4.y, _SetValues.c4.x, _SetValues.c4.y);

        switch (Type)
        {
        default: Cameras[0].enabled = true; Cameras[1].enabled = true; Cameras[2].enabled = true; Cameras[3].enabled = true; break;

        case SplitType.p1_fullscreen:  Cameras[0].enabled = true;  Cameras[1].enabled = false;     Cameras[2].enabled = false;     Cameras[3].enabled = false;
            CanvasPL[0].SetActive(true);  CanvasPL[1].SetActive(false);     CanvasPL[2].SetActive(false);     CanvasPL[3].SetActive(false); break;

        case SplitType.p2_horizontal:  Cameras[0].enabled = true;  Cameras[1].enabled = true;     Cameras[2].enabled = false;     Cameras[3].enabled = false;
            CanvasPL[0].SetActive(true);  CanvasPL[1].SetActive(true);     CanvasPL[2].SetActive(false);     CanvasPL[3].SetActive(false); break;


        case SplitType.p2_vertical:    Cameras[0].enabled = true;  Cameras[1].enabled = true;     Cameras[2].enabled = false;     Cameras[3].enabled = false;
            CanvasPL[0].SetActive(true);  CanvasPL[1].SetActive(true);     CanvasPL[2].SetActive(true);     CanvasPL[3].SetActive(false); break;

        case SplitType.p3_bot:         Cameras[0].enabled = true;  Cameras[1].enabled = true;     Cameras[2].enabled = true;     Cameras[3].enabled = false;
            CanvasPL[0].SetActive(true);  CanvasPL[1].SetActive(true);     CanvasPL[2].SetActive(true);     CanvasPL[3].SetActive(false); break;

        case SplitType.p3_left:        Cameras[0].enabled = true;  Cameras[1].enabled = true;     Cameras[2].enabled = true;     Cameras[3].enabled = false;
            CanvasPL[0].SetActive(true);  CanvasPL[1].SetActive(true);     CanvasPL[2].SetActive(true);     CanvasPL[3].SetActive(false); break;

        case SplitType.p3_right:       Cameras[0].enabled = true;  Cameras[1].enabled = true;     Cameras[2].enabled = true;     Cameras[3].enabled = false;
            CanvasPL[0].SetActive(true);  CanvasPL[1].SetActive(true);     CanvasPL[2].SetActive(true);     CanvasPL[3].SetActive(false); break;

        case SplitType.p3_top:         Cameras[0].enabled = true;  Cameras[1].enabled = true;     Cameras[2].enabled = true;     Cameras[3].enabled = false;
            CanvasPL[0].SetActive(true);  CanvasPL[1].SetActive(true);     CanvasPL[2].SetActive(true);     CanvasPL[3].SetActive(false); break;

        case SplitType.p4_screen:      Cameras[0].enabled = true;  Cameras[1].enabled = true;     Cameras[2].enabled = true;     Cameras[3].enabled = true;
            CanvasPL[0].SetActive(true);  CanvasPL[1].SetActive(true);     CanvasPL[2].SetActive(true);     CanvasPL[3].SetActive(true); break;
        }
    }
예제 #2
0
    //set for each setup the values so they are stored in the array for the chosen enum
    private void SetCameraValuesAfterEnum()
    {
        Cameras[0] = transform.Find("p1_cam").GetSafeComponent <Camera>();
        Cameras[1] = transform.Find("p2_cam").GetSafeComponent <Camera>();
        Cameras[2] = transform.Find("p3_cam").GetSafeComponent <Camera>();
        Cameras[3] = transform.Find("p4_cam").GetSafeComponent <Camera>();

        CanvasPL[0] = transform.Find("p1_cam").Find("p1_Canvas").gameObject;
        CanvasPL[1] = transform.Find("p2_cam").Find("p2_Canvas").gameObject;
        CanvasPL[2] = transform.Find("p3_cam").Find("p3_Canvas").gameObject;
        CanvasPL[3] = transform.Find("p4_cam").Find("p4_Canvas").gameObject;

        for (int i = 0; i < SplitValues.Length; i++)
        {
            switch (i)
            {
            default: SplitValues[i] = new SplitscreenPreset(); break;

            case 0: SplitValues[i] = new SplitscreenPreset(
                    new Vector2(0f, 0f), new Vector2(1f, 1f),
                    new Vector2(0f, 0f), new Vector2(0f, 0f),
                    new Vector2(0f, 0f), new Vector2(0f, 0f),
                    new Vector2(0f, 0f), new Vector2(0f, 0f)); break;

            case 1: SplitValues[i] = new SplitscreenPreset(
                    new Vector2(0f, 0.5f), new Vector2(1f, 0.5f),
                    new Vector2(0f, 0f), new Vector2(1f, 0.5f),
                    new Vector2(0f, 0f), new Vector2(0f, 0f),
                    new Vector2(0f, 0f), new Vector2(0f, 0f)); break;

            case 2: SplitValues[i] = new SplitscreenPreset(
                    new Vector2(0f, 0f), new Vector2(0.5f, 1f),
                    new Vector2(0.5f, 0f), new Vector2(0.5f, 1f),
                    new Vector2(0f, 0f), new Vector2(0f, 0f),
                    new Vector2(0f, 0f), new Vector2(0f, 0f)); break;


            case 3: SplitValues[i] = new SplitscreenPreset(
                    new Vector2(0f, 0.5f), new Vector2(1f, 0.5f),
                    new Vector2(0.5f, 0f), new Vector2(0.5f, 0.5f),
                    new Vector2(0f, 0f), new Vector2(0.5f, 0.5f),
                    new Vector2(0.5f, 0f), new Vector2(0.5f, 0.5f)); break;

            case 4: SplitValues[i] = new SplitscreenPreset(
                    new Vector2(0f, 0.5f), new Vector2(0.5f, 0.5f),
                    new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f),
                    new Vector2(0f, 0f), new Vector2(1f, 0.5f),
                    new Vector2(0.5f, 0f), new Vector2(0.5f, 0.5f)); break;


            case 5: SplitValues[i] = new SplitscreenPreset(
                    new Vector2(0f, 0f), new Vector2(0.5f, 1f),
                    new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f),
                    new Vector2(0.5f, 0f), new Vector2(0.5f, 0.5f),
                    new Vector2(0.5f, 0f), new Vector2(0.5f, 0.5f)); break;

            case 6: SplitValues[i] = new SplitscreenPreset(
                    new Vector2(0f, 0.5f), new Vector2(0.5f, 0.5f),
                    new Vector2(0f, 0f), new Vector2(0.5f, 0.5f),
                    new Vector2(0.5f, 0f), new Vector2(0.5f, 1f),
                    new Vector2(0.5f, 0f), new Vector2(0.5f, 1f)); break;

            case 7: SplitValues[i] = new SplitscreenPreset(
                    new Vector2(0f, 0.5f), new Vector2(0.5f, 0.5f),
                    new Vector2(0.5f, 0.5f), new Vector2(0.5f, 0.5f),
                    new Vector2(0f, 0f), new Vector2(0.5f, 0.5f),
                    new Vector2(0.5f, 0f), new Vector2(0.5f, 0.5f)); break;
            }
        }
    }