// Use this for initialization void Start() { // Se obtienen las referencias a los componentes del objeto y la cámara. objUserMotionController = objUser.GetComponent<MotionController>(); objUserTransform = objUser.GetComponent<Transform>(); thisTransform = transform; thisCamera = camera; // Se inicializa la perspectiva de la cámara cameraPersp = CameraPersp.cenital; }
// Use this for initialization void Start() { // Se obtienen las referencias a los componentes del objeto y la cámara. thisTransform = transform; thisCamera = camera; userTransform = objUser.transform; floorTransform = objFloor.transform; // Se inicializa la perspectiva anterior de la cámara oldCameraPersp = CameraPersp.none; // Se obtienen los límites tanto del jugador como del suelo. boundsUser = userTransform.renderer.bounds; boundsFloor = floorTransform.renderer.bounds; }
// Update is called once per frame void Update() { switch (_cameraPersp) { case CameraPersp.cenital: if (oldCameraPersp != CameraPersp.cenital) // Si el frame anterior la cámara era cenital { thisCamera.orthographic = true; thisTransform.position = floorTransform.position + floorTransform.up * fHeight; thisTransform.LookAt( floorTransform); oldCameraPersp = CameraPersp.cenital; } break; case CameraPersp.first: thisCamera.orthographic = false; // Se situa la cámara en primera persona. Se posiciona en el lugar del extremo de la pistola. thisTransform.position = userTransform.position + userTransform.forward * boundsUser.extents.z; thisTransform.rotation = userTransform.rotation; oldCameraPersp = CameraPersp.first; break; case CameraPersp.iso: if (oldCameraPersp != CameraPersp.iso) // Si el frame anterior la cámara era isométrica { thisCamera.orthographic = true; thisTransform.position = floorTransform.position + floorTransform.forward * boundsFloor.extents.z + floorTransform.right * boundsFloor.extents.x + floorTransform.up * fHeight; thisTransform.LookAt( floorTransform); oldCameraPersp = CameraPersp.iso; } break; default: break; } }