播放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<PlayableDirector>();

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动画,以便让它可以再次进行重新播放。

更多推荐