当前位置: 首页> 科技> 能源 > 上海建设检测网_未备案域名_河南seo优化_微网站建站平台

上海建设检测网_未备案域名_河南seo优化_微网站建站平台

时间:2025/7/11 8:22:03来源:https://blog.csdn.net/milu_ELK/article/details/144569192 浏览次数:1次
上海建设检测网_未备案域名_河南seo优化_微网站建站平台

事情发生的原因是在我的一个项目中,该项目使用了TimeLine作为技能编辑器,并使用PlayableDirector和Animantor以及Animancer进行播放,且由代码重载OnAnimatorMove方法并使用Animancer.Animator.deltaPosition来进行位置信息的更新。

Bug发生的情况是:当我暂停PlayableDirector的播放再恢复时,发现获取的DeltaPosition的值产生了错误,根据官方文档,Animator.deltaPosition是自上一帧进行计算的,也就是说很可能对PlayableDirector的控制无法同时控制Animator,而且无法对Animator直接进行Speed的修改。

尝试分别对三种组件进行修改,依旧无法实现正确获取Animator的值,最后的解决方案是直接修改playableDirector.playableGraph.GetRootPlayable(0).SetSpeed(0)。通过修改TimeLine的Playable播放速度来控制Animator,终于使得deltaPosition值获取正常。

    private IEnumerator StopAnim(int time){IsAnim = false;_playableDirector.playableGraph.GetRootPlayable(0).SetSpeed(0);_riginDeltaPosition = _Animancer.Animator.deltaPosition;yield return new WaitForSeconds(Time.fixedDeltaTime * time);_playableDirector.playableGraph.GetRootPlayable(0).SetSpeed(1);IsAnim = true;_stopAnimCoroutine = null;}
关键字:上海建设检测网_未备案域名_河南seo优化_微网站建站平台

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: