【问题标题】:How to make a GameObject show after an animation in Unity如何在 Unity 中制作动画后显示 GameObject
【发布时间】:2022-11-25 05:38:37
【问题描述】:

我在 Unity 中创建一个 2D,我有一个加载屏幕,它正在工作(加载动画)。接下来我要做的是让下一个屏幕在一定时间后出现(它是一个游戏对象)。 现在,我的代码是:

    public RectTransform mainIcon;
    public float timeStep;
    public float oneStepAngle;


    float startTime;

    // Start is called before the first frame update
    void Start()
    {
        startTime = Time.time;
    }

    // Update is called once per frame
    void Update()
    {
        if (Time.time - startTime >= timeStep) {

            Vector3 iconAngle = mainIcon.localEulerAngles;
            iconAngle.z += oneStepAngle;

            mainIcon.localEulerAngles = iconAngle;

            startTime = Time.time;
        }
    }

我现在该怎么办?谢谢

【问题讨论】:

  • if(Time.time >= certain value){ Go to next scene }
  • 这可能是一个选择,是的!你认为它适用于游戏对象吗?
  • 当然......我需要更多地了解你实际完成所需的行为......我认为使用一个简单的协同程序将你的图标旋转所需的时间量,然后在完成后简单地转到下一个场景可能是最简单的。 ..
  • 好吧,我想要实现的是:我在加载轮出现的地方创建了一个叠加层。一段时间后,我想前进到层次结构中的下一个叠加层希望我很清楚:)
  • 所以只是为了确认:没有实际加载发生,你只是想添加一个人为延迟?是否需要逐步旋转,或者为什么不简单地使用void Update(){ mainIcon.Rotate(Vector3.forward, anglePerSecond * Time.deltaTime); } ..只是想缩小after an animation对你的意义,因为实际上你的动画完成时似乎没有固定的时刻

标签: c# unity3d animation


【解决方案1】:

转到播放动画的游戏对象 > 创建新脚本并在启动和更新时忽略 > 添加此代码

// object that would appear after animaton
public GameObject obj;

void showGameObject(){
  objSetActive(true);
}

回到播放动画的对象,然后添加将出现的游戏对象 > 转到同一对象上的动画控制器 > 选择我们的对象将在之后出现的动画 > 添加动画事件 > 在检查器中你应该有 this > 选择函数 showGameObject

【讨论】:

  • 我不认为 OP 实际上是在谈论动画......我认为他们将他们在 Update 中的代码称为“动画”
  • 这不是真正的动画,对不起,如果我说错了转到下一个(层次结构中的下一个元素)
【解决方案2】:

您可以使用一个简单的计时器,例如

public RectTransform mainIcon;
public float anglePerSecond = 90f;
public float duration;
public string nextScene;

private float timer;

// Update is called once per frame
void Update()
{
    mainIcon.Rotate(Vector3.forward * anglePerSecond * Time.deltaTime);

    timer += Time.deltaTime;

    if(timer >= duration)
    {
        SceneManager.LoadScene(nextScene);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多