You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中如何在动画结束后显示指定GameObject

实现特定时间后显示下一屏的方案

你可以在现有代码基础上,添加几个变量和判断逻辑来实现需求,具体操作如下:

  • 首先在脚本里新增几个关键变量:

    • 公共的GameObject nextScreen:拖入你要显示的下一屏对象(记得在Unity编辑器里把这个对象初始设为非激活状态)
    • 公共的float totalWaitTime:设置你需要等待的总时长(比如输入5代表5秒)
    • 私有布尔变量hasShownNextScreen:用来标记是否已经显示过下一屏,避免重复触发
  • 修改后的完整代码如下:

public RectTransform mainIcon;
public float timeStep;
public float oneStepAngle;
public GameObject nextScreen; // 下一屏对象
public float totalWaitTime; // 总等待时长

float startTime;
float totalWaitStartTime;
bool hasShownNextScreen = false;

// Start is called before the first frame update
void Start()
{
    startTime = Time.time;
    totalWaitStartTime = Time.time; // 记录加载开始的时间
    // 确保下一屏初始隐藏
    if(nextScreen != null)
        nextScreen.SetActive(false);
}

// 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(!hasShownNextScreen && Time.time - totalWaitStartTime >= totalWaitTime)
    {
        if(nextScreen != null)
            nextScreen.SetActive(true);
        hasShownNextScreen = true;
        // 可选:如果不需要继续旋转图标,可以禁用这个脚本
        // this.enabled = false;
    }
}
  • 最后在Unity编辑器里完成配置:
    1. 把下一屏的GameObject拖到脚本的nextScreen字段上
    2. 在totalWaitTime里设置你想要等待的时间
    3. 确认nextScreen对象初始是未激活状态(取消Inspector里的复选框勾选)

这样运行后,加载图标会正常旋转,等到设定的总时间到了,就会自动显示下一屏。

内容的提问来源于stack exchange,提问作者Maria Nolasco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:10:27