【问题标题】:Chain actions and animations in a sequence在序列中链接动作和动画
【发布时间】:2014-11-25 04:16:43
【问题描述】:

在 Cocos2D 中,我们使用 CCSequence 链接动作/动画以及序列中的任何内容。 喜欢:

  1. 在 5 秒内将图像从屏幕左上角移动(动画)到屏幕右下角。 (我们只需输入图像的开始和结束位置,Cocos2D 会随着时间的推移对位置进行补间)
  2. 延迟/等待序列 2.5 秒
  3. 将该图像再次移动到屏幕中心,同时在 3 秒内将其放大到 1.5 大小。
  4. 然后在完成时调用一个块,以便我们可以继续执行其他代码...

通过这种方式,很容易用大约 4-6 行代码将操作链接起来。我们如何在 Unity 中做到这一点?我正在使用 Unity 4.6,到目前为止只使用 2D 元素。

【问题讨论】:

  • 查找协程,你会发现一个返回 IEnumerator 的方法。这种方法可以利用“WaitForSeconds (float s)”类,它完全按照它所说的那样做,哈哈……如果你看看你问的 Tween 问题,你会看到我的答案。如果替换“yield return 0;”使用“收益返回新的 WaitForSeconds (1.0f);”你会看到它执行了 Lerp 函数然后等待 1.0 秒。然后它将一次又一次地运行代码,直到到达目的地。你可以复制这个方法来缩放等等……

标签: animation unity3d sequence


【解决方案1】:
IEnumerator Sequence()
{
  yield return Move();
  yield return new WaitForSeconds(2.5f);
  yield return MoveScaling;
  yield return OnComplete();
}
...
StartCoroutine(Sequence());

这或多或少是代码的样子。我让你执行单个子程序。要了解更多信息,请查看 Unity coroutine 的工作原理(它们只是 C#'s iterator blocks

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 1970-01-01
    • 2018-06-15
    相关资源
    最近更新 更多