void DetermineCameraLocation() { var camPos = transform.position; camPos.y = puzzleObj.position.y; var angle = Vector3.SignedAngle(puzzleObj.forward, (camPos - puzzleObj.position).normalized, puzzleObj.up); int angleInt = Mathf.RoundToInt(angle); CAMERA_LOCATION newCameraLocation = cameraLocation; if (-90 <= angleInt && angleInt <= 0) { newCameraLocation = CAMERA_LOCATION.FRONT_RIGHT; } else if (0 <= angleInt && angleInt <= 90) { newCameraLocation = CAMERA_LOCATION.FRONT_LEFT; } else if (90 <= angleInt && angleInt <= 180) { newCameraLocation = CAMERA_LOCATION.BACK_LEFT; } else if (-180 <= angleInt && angleInt <= -90) { newCameraLocation = CAMERA_LOCATION.BACK_RIGHT; } if (cameraLocation != newCameraLocation) { cameraLocation = newCameraLocation; if (slicers) { slicers.UpdateBlueSlicersVisibility(cameraLocation); } } Debug.Log(cameraLocation); }
private void Awake() { camRotAllowed = true; cameraLocation = CAMERA_LOCATION.FRONT_RIGHT; }