void HitBall(Vector3 Direction, float Speed) { if (!Replaying) { //Save replay information LastHitSpeed = Speed; LastHitDirection = Direction; HitCount++; } //Save positions LastBallPositions.Clear(); foreach (GameObject Ball in Balls) { LastBallPositions.Add(Ball.transform.position); } //Hit to rigidbody Balls[0].GetComponent <Rigidbody>().AddForce(Direction * (Speed * 5f)); HitSpeed = 0f; //Switch to watch mode CanPlay = CanHit = false; IsWatching = true; CameraCtrl.ActivateCamera(true, Replaying); ReplayButton.SetActive(false); }
private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) { mainCameraController.ActivateCamera(CameraID); } }
public void StartLevel() { mainUI.gameObject.SetActive(false); loadUI.gameObject.SetActive(false); playerController.ActivatePlayer(); // FIXME should this be a static thing too? cameraController.ActivateCamera(); // FIXME should this be a static thing too? CubeOfDeathController.cubesActive = true; Time.timeScale = 1; }
void OnTriggerEnter2D(Collider2D collider) { CameraController.ActivateCamera(); }
protected override void ApplyEffect() { // Downscale resolution to closest one applicable FIXME render textures are supposedly better for this Resolution[] supportedResolutions = Screen.resolutions; int currDiff = int.MaxValue; int resInd = -1; for (int i = 0; i < supportedResolutions.Length; i++) { Resolution res = supportedResolutions[i]; int heighDiff = Mathf.Abs(res.height - (screenResolution.height / numberOfCameras)); if (heighDiff < currDiff) { currDiff = heighDiff; resInd = i; } int widthDiff = Mathf.Abs(res.width - (screenResolution.width / numberOfCameras)); if (widthDiff < currDiff) { currDiff = widthDiff; resInd = i; } } Screen.SetResolution(supportedResolutions[resInd].width, supportedResolutions[resInd].height, fullScreenMode, screenResolution.refreshRate); // Create list of flips List <Quaternion> roll = new List <Quaternion>(numberOfCameras); List <Quaternion> yaw = new List <Quaternion>(numberOfCameras); //Vector3[] baseCamOffset = new Vector3[numberOfCameras]; roll.Add(Quaternion.identity); yaw.Add(Quaternion.identity); for (int i = 1; i < numberOfCameras; i++) { float rollAngle = Random.Range(angleRange[0], angleRange[1]) - (Random.Range(0, 2) * 360); float yawAngle = Random.Range(angleRange[0], angleRange[1]) - (Random.Range(0, 2) * 360); roll.Add(Quaternion.AngleAxis(rollAngle, mainCamTrans.InverseTransformDirection(playerCont.ForwardDir))); yaw.Add(Quaternion.AngleAxis(yawAngle, mainCamObjTrans.InverseTransformDirection(playerCont.UpDir))); } // Create additional cameras additionalCameras = new GameObject[numberOfCameras]; int[] randCamRectIndices = Utilities.RandomIndices(numberOfCameras); for (int i = 0; i < numberOfCameras; i++) { // Create new cam and set viewport GameObject camObj = Object.Instantiate(mainCamObj); Camera cam = camObj.GetComponentInChildren <Camera>(); cam.depth = 1; cam.rect = camRect[randCamRectIndices[i]]; // Activate CameraController camCont = camObj.GetComponent <CameraController>(); camCont.ActivateCamera(); // FIXME there probably is a one frame lag in which the camera is already lerping due to the activate. Changing how cam activation works with resetting position and moving it down here would solve it likely // Make positions/rotations identical to main cam Transform camObjTrans = camObj.transform; Transform camPivotTrans = camObjTrans.GetChild(0); Transform camTrans = camPivotTrans.GetChild(0); camCont.SetBaseCamRot(mainCamCont.GetBaseCamRot()); camCont.SetBasePivotRot(mainCamCont.GetBasePivotRot()); camCont.SetBaseCamOffset(mainCamCont.GetBaseCamOffset()); camObjTrans.position = mainCamObjTrans.position; camPivotTrans.transform.position = mainCamPivotTrans.position; camPivotTrans.transform.localRotation = mainCamPivotTrans.localRotation; camTrans.transform.position = mainCamTrans.position; // Apply rotations camCont.SetBaseCamRot(mainCamCont.GetBaseCamRot() * yaw[i]); camObjTrans.rotation = mainCamObjTrans.rotation * yaw[i]; camTrans.transform.localRotation = mainCamTrans.localRotation * roll[i]; // Save additionalCameras[i] = camObj; } }