【问题标题】:Unity timeline, playing animation clips and controlling playback on eventsUnity 时间轴,播放动画片段和控制事件播放
【发布时间】:2020-02-06 20:17:43
【问题描述】:

我想知道是否可以帮助我了解如何使用时间线

我计划让角色沿着一条带有触发器的路径行走,该触发器将激活时间线,

我在猴子身上设置了一个简单的状态机 这将由播放时间线的路径触发,该部分工作正常,我可以看到事件触发

我如何在触发时播放时间线的一部分(这甚至可能吗?) 整个序列被保持的位置 Walk>Jump>Walk>Look>Walk>Idle

或者我需要做什么才能播放剪辑/或剪辑序列的一部分

关于猴子:

 public enum State
 {
    WalkHappy,
    Look,
    Jump,
 }

 IEnumerator WalkHappyState()
 {
    Debug.Log("WalkHappy: Enter");
    **//walk sequence with timeline here??**

    while (state == State.WalkHappy)
    {
        yield return 0;
    }
    Debug.Log("WalkHappy: Exit");
    NextState();
}

触发时在路径事件监听器上调用

private void OnCustomEvent(string eventname)
{
    if (eventname.Contains("MonkeyRunningJumpUp"))
    {
          GameObject tempMonkey = GameObject.FindGameObjectWithTag("Player");
          Monkey tempMonkeyState = tempMonkey.GetComponent<Monkey>();
          tempMonkeyState.state = Monkey.State.Jump;

    }
  }

我已经看到可以控制在时间轴上从何处开始播放,但我不知道如何强制播放范围/剪辑然后在剪辑结尾而不是整个序列的结尾暂停

问题是..如何在剪辑结束时停止/暂停以便稍后恢复?

   playableDirector = myPlayableDirectorGO.GetComponent<PlayableDirector>();
    Debug.Log(timeLinePosition);
    playableDirector.time = timeLinePosition / ((TimelineAsset)playableDirector.playableAsset).editorSettings.fps;
    playableDirector.RebuildGraph();
    playableDirector.Play();

感谢娜塔莉 :)

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    首先,如果您还没有安装Default Playables,我建议您安装。

    使用Timeline Signals 和标记在时间线末尾或特定时间点做某事。此外,还有PlayableDirector.stopped 事件。

    您可以使用pauseresume 方法;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-02
      • 2016-07-21
      相关资源
      最近更新 更多