Beispiel #1
0
    void Refresh(float startTime)
    {
        m_AnimatedObjects = BulletTime.CollectAnimatedObjects();
        m_MaxTime         = BulletTime.GetAnimationLength(m_AnimatedObjects);

        m_CurrentScene     = EditorApplication.currentScene;
        m_Sequencers       = Object.FindObjectsOfType(typeof(SplineCameraSequencer)) as SplineCameraSequencer[];
        m_SplineAnimators  = Object.FindObjectsOfType(typeof(SplineAnimator)) as SplineAnimator[];
        m_ImportantObjects = Object.FindObjectsOfType(typeof(ImportantObject)) as ImportantObject[];

        foreach (var sa in m_SplineAnimators)
        {
            sa.Invalidate();
        }

        foreach (var seq in m_Sequencers)
        {
            seq.Invalidate();
        }

        float maxSplineTime = 0.0f;

        if (m_Sequencers != null)
        {
            foreach (var seq in m_Sequencers)
            {
                maxSplineTime = Mathf.Max(seq.timeLength, maxSplineTime);
            }
        }

        if (maxSplineTime < Mathf.Epsilon)
        {
            foreach (var sa in m_SplineAnimators)
            {
                maxSplineTime = Mathf.Max(sa.timeLength, maxSplineTime);
            }
        }

        m_MaxTime = Mathf.Max(m_MaxTime, maxSplineTime);

        BulletTime.time = startTime; BulletTime.deltaTime = m_MaxTime;
    }