Ejemplo n.º 1
0
    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);
            }
        }
    }
Ejemplo n.º 2
0
    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);
    }