void UpdateState(MCamState state) { if (mCamera == null) { return; } mCamera.Pivot.localPosition = state.PivotPos; mCamera.Cam.localPosition = state.CamPos; mCamera.Cam.GetComponent <Camera>().fieldOfView = state.Cam_FOV; }
public void SetCameraState(string name) { NextState = FindState(name); if (NextState.Name == currentState.Name) { return; } StopAllCoroutines(); StartCoroutine(StateTransition(transition)); }
IEnumerator StateTransition(float time) { inTransition = true; float elapsedTime = 0; currentState = NextState; while (elapsedTime < time) { mCamera.Pivot.localPosition = Vector3.Lerp(mCamera.Pivot.localPosition, NextState.PivotPos, Mathf.SmoothStep(0, 1, elapsedTime / time)); mCamera.Cam.localPosition = Vector3.Lerp(mCamera.Cam.localPosition, NextState.CamPos, Mathf.SmoothStep(0, 1, elapsedTime / time)); mCamera.Cam.GetComponent <Camera>().fieldOfView = Mathf.Lerp(mCamera.Cam.GetComponent <Camera>().fieldOfView, NextState.Cam_FOV, Mathf.SmoothStep(0, 1, elapsedTime / time)); elapsedTime += Time.deltaTime; yield return(null); } UpdateState(NextState); inTransition = false; }
void Start() { currentState = States.StateCameraList[0]; //Set to the First State inTransition = false; }
// Use this for initialization void Start() { currentState = FindState("Default"); inTransition = false; }