public cfTuple getCameraFadeTupleForFrame(ITarget itarget, int frame) { if (keys == null || keys.Count <= 0) { return(new cfTuple(0, 0, 0, null, null, false)); } for (int i = 0; i < keys.Count; i++) { CameraSwitcherKey key = keys[i] as CameraSwitcherKey; // compact if (frame < key.frame) { break; } else if (frame < key.endFrame) { if (!key.still || key.cameraFadeType == (int)CameraSwitcherKey.Fade.None || key.targetsAreEqual(itarget)) { break; } bool isReversed = key.isReversed(); if (isReversed) { return(new cfTuple(key.endFrame, key.typeEnd, key.type, key.GetCameraEnd(itarget), key.GetCamera(itarget), isReversed)); } else { return(new cfTuple(key.frame, key.type, key.typeEnd, key.GetCamera(itarget), key.GetCameraEnd(itarget), isReversed)); } //return new cfTuple((isReversed ? (cache[i] as AMCameraSwitcherAction).endFrame : (cache[i] as AMCameraSwitcherAction).startFrame),(cache[i] as AMCameraSwitcherAction).startCamera,(cache[i] as AMCameraSwitcherAction).endCamera,isReversed); } } return(new cfTuple(0, 0, 0, null, null, false)); }
private void previewCameraFade(ITarget itarget, float frame, CameraSwitcherKey action) { // if transition is None, show end camera / color if (action.cameraFadeType == (int)CameraSwitcherKey.Fade.None) { // reset camera fade if visible // camera if (action.typeEnd == 0) { Camera endCam = action.GetCameraEnd(itarget); if (endCam) { Utility.SetTopCamera(endCam, GetCachedCameras(itarget)); } CameraFade.reset(); } else { showColor(action.colorEnd); } return; } // Get camerafade CameraFade cf = CameraFade.getCameraFade(); cf.isReset = false; bool isReversed = action.isReversed(); int firstTargetType = (isReversed ? action.typeEnd : action.type); int secondTargetType = (isReversed ? action.type : action.typeEnd); // Set render texture or colors if render texture is used setRenderTexture(itarget, cf, frame, firstTargetType, secondTargetType, isReversed, action); setColors(cf, firstTargetType, secondTargetType, isReversed, action); if (cf.irisShape != action.irisShape) { cf.irisShape = action.irisShape; } cf.mode = action.cameraFadeType; cf.setupMaterials(); cf.r = action.cameraFadeParameters.ToArray(); float t = (float)(frame - action.frame) / (float)(action.endFrame - action.frame); float percentage; if (action.hasCustomEase()) { percentage = Utility.EaseCustom(0.0f, 1.0f, t, action.easeCurve); } else { var ease = Utility.GetEasingFunction((Ease)action.easeType); percentage = ease(t, 1.0f, action.amplitude, action.period); } cf.value = 1.0f - percentage; cf.percent = percentage; }