unity中Timeline动画的播放和播放中如何判断播放结束

  金牌会员 | 2024-12-30 02:22:13 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 805|帖子 805|积分 2415

       播放timeline简单,但偶然我们希望得到播放完成的回调信息,今天分享下工作中的技巧,然后自己以后也可以随时查阅,谢谢阅读!

1. 照例我们先看下理论知识,Time概述:

        使用Unity的Timeline创建影戏内容、游戏序列、音频序列和复杂的粒子结果。

        使用Unity的Timeline创建的每个剪切场景、影戏或游戏序列都由Timeline资源和Timeline实例组成。timeline窗口同时创建和修改timeline资源和timeline实例。
        “timeline资源和实例”主题提供了有关“timeline”窗口、“timeline asset”和“timeline instances”之间关系的具体信息。
        “timeline工作流”部分提供了有关如何创建timeline资源和timeline实例、录制基本动画、设置类人动画、使用动画覆盖轨迹、子timeline和其他timeline功能的基本步调。
timeline示例部分提供了timeline包中包罗的示例的描述。
2. 当前首先是播放我们的制作好的timeline,如下代码

PlayableDirector playableDirector = m_RoleObject.GetComponent<layableDirector>();
playableDirector.Play();
3. 然后就是判断什么时候播放完成

注意完成代码的判断要在MonoBehaviour派生类的Update中完成,如下代码
if (playableDirector.state == PlayState.Playing && playableDirector.time >= (playableDirector.duration * 0.9))
            {
                Debug.Log("播放完成");
                playableDirector.Stop();
                playableDirector.time = 0;
                m_HangGunBarrel.SetActive(false);
                m_GunBarrel.SetActive(true);
            }
    如上,我发现这行代码(playableDirector.duration * 0.9))中的0.9原来我使用了1.0,出现了标题,然后我修改成了0.9,然后就没什么标题了,究竟0.9就差0.1就完成,也没什么关系。
       然后我将成员time设置为了0,并调用了成员函数Stop(),是为了复位PlayableDirector动画,以便让它可以再次举行重新播放。





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表