【问题标题】:How should I do this animation or how should I aproach this dilemma?我应该如何制作这个动画或者我应该如何处理这个困境?
【发布时间】:2017-04-04 08:47:46
【问题描述】:

所以,我有一个立方体,我想制作一个游戏,其中立方体从一个塔跳到另一个,现在我想要让塔倒下,如果立方体停留在上面超过给定时间。

我不想使用物理或刚体,我只使用transform.positionRaycast 来点击下一个塔我想让立方体跳跃,我想使用动画,所以如果幼崽停留在当前的塔上超过给定的时间,该塔将随立方体掉落。

问题是我不知道该做什么,从哪里开始;关于统一的动画,我只知道如何制作动画剪辑。

我会学习做其他事情,但实际上我不知道如何解决这个问题,我应该使用什么技术来获得预期的结果,以及如何?

【问题讨论】:

  • 考虑到您的 pylon 需要倒下,您可以做一个计数器 3 秒,然后 pylon 将其 transfrom.position.y 更改为 0。要实现“动画”效果,您可以使用 @ 987654324@ 移动挂架的功能。虽然我会以不同的方式推荐使用RigidBody,因为它会让一切变得更简单。

标签: animation unity3d procedure


【解决方案1】:
  1. 首先您需要检测立方体是否在塔架上。
  2. 如果是,那么您需要启动一个计时器。
  3. 如果计时器达到 0,则塔会下降。

您可以使用OnCollisionEnter 来检测立方体是否与(降落)塔碰撞:

void OnCollisionEnter(Collision col)
{
    // Check if it is the cube that has collided.
    if (col.gameObject.name == "Player")  // Make sure to assign the Player Tag to the cube
    {
        // Start countdown timer.
    }
}

您可以使用coroutine 启动倒数计时器。 您需要在班级顶部添加using System.Collections;

使用StartCoroutine(MyCoroutine());调用你的协程

IEnumerator MyCoroutine()
{
    // Wait for 3 seconds.
    yield return new WaitForSeconds(3f);

    // Make the pylon fall now.
}

此代码将导致游戏在执行某项操作之前等待 3 秒。如何让塔坠落由你决定,你可以使用 RigidBody 并将 isKinematic 从 true 设置为 false 作为示例,但既然你说你不想使用物理,你可以使用向下平移塔Transform.position.

这应该让你开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    相关资源
    最近更新 更多