【发布时间】: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