//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; } }
//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; } } }