public void PlayQTE(CameraQTEParams[] camSequence) { this.camSequence = camSequence; oriParams = camRig.param; startTime = Time.time; index = 0; isPlaying = true; }
void TransitionTo(CameraQTEParams targetParams) { transitionFrom = camRig.param; transitionTo = targetParams; isTransition = true; transitionStartTime = Time.time; transitionTo.curve = null ?? CameraQTEParams.DefaultCurve; }
public static CameraRigParams Lerp(CameraRigParams from, CameraRigParams to, float t) { CameraRigParams result = new CameraRigParams(); result.basePosition = Vector3.Lerp(from.basePosition, to.basePosition, t); result.fov = Mathf.Lerp(from.fov, to.fov, t); result.offsetInFov = Vector2.Lerp(from.offsetInFov, to.offsetInFov, t); result.turn = Mathf.LerpAngle(from.turn, to.turn, t); result.pitch = Mathf.LerpAngle(from.pitch, to.pitch, t); result.roll = Mathf.LerpAngle(from.roll, to.roll, t); result.distance = Mathf.Lerp(from.distance, to.distance, t); return result; }
public void UpdateCamera(CameraRigParams param) { if (camT == null) { return; } camT.camera.fieldOfView = param.fov; camPos.localPosition = new Vector3(0, 0, param.distance); camOffset.localPosition = param.basePosition; camRoll.localPosition = param.offsetInFov * Mathf.Tan((param.fov * 0.5f) * Mathf.Deg2Rad) * 2* param.distance; camTurn.localEulerAngles = new Vector3(0, param.turn,0); camPitch.localEulerAngles = new Vector3(param.pitch, 0, 0); camRoll.localEulerAngles = new Vector3(0, 0, param.roll); camT.position = camPos.position; camT.rotation = Quaternion.LookRotation((camTarget.position - camPos.position).normalized, camRoll.up); }