public void SetTime(float time) { if (!fadePlane) { fadePlane = GameObject.CreatePrimitive(PrimitiveType.Quad); fadePlane.transform.parent = cam.transform; fadePlane.transform.localPosition = new Vector3(0f, 0f, cam.nearClipPlane + 0.1f); fadePlane.transform.localEulerAngles = new Vector3(0f, 0f, 0f); fadeTex = new Texture2D(2, 2); fadeTex.SetPixels(new Color[] { new Color(0, 0, 0, 0), new Color(0, 0, 0, 0), new Color(0, 0, 0, 0), new Color(0, 0, 0, 0) }); fadeTex.Apply(); fadeMaterial = new Material(Shader.Find("Unlit/Transparent")); fadeMaterial.mainTexture = fadeTex; fadePlane.GetComponent <MeshRenderer> ().material = fadeMaterial; } else { fadePlane.transform.localScale = new Vector3(cam.fieldOfView / 60, cam.fieldOfView / 60, cam.fieldOfView / 60); } currentTime = time; KeyframePair closest = FindClosestKeyframes(); // Fire event if (Application.isPlaying && playing && closest.kf1 != null && !closest.kf1.evt.fired) { closest.kf1.evt.Fire(eventHandler); } if (closest.kf1 != null) { if (closest.kf2 != null) { LerpCamera(closest.kf1, closest.kf2, GetCursorPosition(closest.kf1, closest.kf2)); } else { SetCamera(closest.kf1); } } }
public int AddKeyframe(float time) { int i = 0; // Check if keyframe exists at the given time for (i = 0; i < keyframes.Count; i++) { if (keyframes [i].time == time) { return(i); } } // Create new keyframe OJKeyframe kf = new OJKeyframe(); KeyframePair closest = FindClosestKeyframes(); if (closest.kf1 != null && closest.kf2 != null) { float cursor = GetCursorPosition(closest.kf1, closest.kf2); LerpKeyframe(kf, closest.kf1, closest.kf2, cursor); } else if (closest.kf1 != null) { //kf = closest.kf1; } else if (closest.kf2 != null) { //kf = closest.kf2; } kf.time = time; keyframes.Add(kf); // Return the correct index for (i = 0; i < keyframes.Count; i++) { if (keyframes [i].time == time) { return(i); } } return(0); }