Exemplo n.º 1
0
    public override void PrepareFrame(Playable playable, FrameData info)
    {
        m_PreviewPlay = false;
#if UNITY_EDITOR && UNITY_2019_2_OR_NEWER
        var cacheMode = TargetPositionCache.Mode.Disabled;
        if (!Application.isPlaying)
        {
            if (GetMasterPlayableDirector != null)
            {
                var d = GetMasterPlayableDirector();
                if (d != null && d.playableGraph.IsValid())
                {
                    m_PreviewPlay = GetMasterPlayableDirector().playableGraph.IsPlaying();
                }
            }
            if (TargetPositionCache.UseCache)
            {
                cacheMode = m_PreviewPlay ? TargetPositionCache.Mode.Record : TargetPositionCache.Mode.Playback;
                if (m_ScrubbingCacheHelper == null)
                {
                    m_ScrubbingCacheHelper = new ScrubbingCacheHelper();
                    m_ScrubbingCacheHelper.Init(playable);
                }
            }
        }
        TargetPositionCache.CacheMode = cacheMode;
#endif
    }
Exemplo n.º 2
0
    public override void OnPlayableDestroy(Playable playable)
    {
        if (mBrain != null)
        {
            mBrain.ReleaseCameraOverride(mBrainOverrideId);     // clean up
        }
        mBrainOverrideId = -1;
#if UNITY_EDITOR && UNITY_2019_2_OR_NEWER
        m_ScrubbingCacheHelper = null;
#endif
    }
Exemplo n.º 3
0
    public override void PrepareFrame(Playable playable, FrameData info)
    {
        mPlaying = info.evaluationType == FrameData.EvaluationType.Playback;
#if UNITY_EDITOR && UNITY_2019_2_OR_NEWER
        if (Application.isPlaying || !TargetPositionCache.UseCache)
        {
            TargetPositionCache.CacheMode = TargetPositionCache.Mode.Disabled;
        }
        else
        {
            if (m_ScrubbingCacheHelper == null)
            {
                m_ScrubbingCacheHelper = new ScrubbingCacheHelper();
                m_ScrubbingCacheHelper.Init(playable);
            }
            m_ScrubbingCacheHelper.ScrubToHere(
                (float)playable.GetGraph().GetRootPlayable(0).GetTime(),
                mPlaying ? TargetPositionCache.Mode.Record : TargetPositionCache.Mode.Playback,
                mBrain);
        }
#else
        TargetPositionCache.CacheMode = TargetPositionCache.Mode.Disabled;
#endif
    }
Exemplo n.º 4
0
 public override void OnGraphStart(Playable playable)
 {
     base.OnGraphStart(playable);
     m_ScrubbingCacheHelper = null;
 }