void setCameraTask(VirtualCameraTarget cam) { if (camEvent != null) { StopCoroutine(camEvent); } cam.changeCameras(this); camEvent = StartCoroutine(lerpCamera(cam, setCurve, setDuration)); }
public void resetCameraTask(VirtualCameraTarget cam) { if (camEvent != null) { StopCoroutine(camEvent); } cam.changeCameras(cam.defaultCam); camEvent = StartCoroutine(lerpCamera(cam, cam.defaultCam.setCurve, cam.defaultCam.setDuration)); }
IEnumerator lerpCamera(VirtualCameraTarget target, AnimationCurve curve, float setTime) { float timeElapsed = 0; while (timeElapsed < setDuration) { timeElapsed += Time.deltaTime; target.interpolation = curve.Evaluate(timeElapsed / setTime); yield return(new WaitForEndOfFrame()); } target.interpolation = 1; }
//public void resetCamera (ActorBase actorTarget) { //print ("Reset camera!"); //resetCameraTask (actorTarget.cam); //} public void resetCameraDirect(VirtualCameraTarget cam) { print("Reset camera directly!"); resetCameraTask(cam); }
//public void setCamera (ActorBase actorTarget) { //print ("Setting camera!"); //setCameraTask (actorTarget.cam); //} public void setCameraDirect(VirtualCameraTarget cam) { print("Setting camera directly!"); setCameraTask(cam); }