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

Unity中如何在If语句内实现按键触发后的延迟功能

Unity按下F键延迟执行操作的实现方案

你的代码里有几个问题导致延迟功能没生效:

  • 协程DelayPrint嵌套在Input.GetKeyDown的代码块里,而且没启动
  • Start方法写在了类外面,属于语法错误
  • 没添加播放抹黄油动画的实际逻辑

按下面的方式修改就能实现按下F键后等待3秒播放动画的需求:

首先把协程方法移到类的成员位置,然后在按下F键时启动协程,最后在协程延迟后执行动画播放操作。修正后的完整代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Toast : MonoBehaviour
{
    Ray ray;
    RaycastHit raycastHit;
    public Camera cam;
    public GameObject ButterIt;
    // 根据你的动画类型替换,比如用Animator组件
    public Animator butterAnimator;

    void Start()
    {
        cam = GetComponent<Camera>();
    }

    void Update()
    {
        ray = new Ray(transform.position, transform.forward * 100);
        if (Physics.Raycast(ray, out raycastHit))
        {
            if (raycastHit.transform.tag == "Death")
            {
                ButterIt.SetActive(true);
                if (Input.GetKeyDown(KeyCode.F))
                {
                    Debug.Log("Stop Touching My Junk You Pervert! - Tickle Me Bender");
                    // 启动延迟协程
                    StartCoroutine(DelayPlayButterAnimation());
                    Debug.Log("WEE WOO WEE WOO - Patrick");
                }
            }
            else
            {
                ButterIt.SetActive(false);
            }
        }
    }

    // 定义延迟执行的协程方法
    IEnumerator DelayPlayButterAnimation()
    {
        // 等待3秒
        yield return new WaitForSeconds(3f);
        // 执行播放抹黄油动画的逻辑,这里以Animator为例
        if(butterAnimator != null)
        {
            butterAnimator.Play("ButterAnimation"); // 替换成你的动画状态名
        }
        Debug.Log("已播放抹黄油动画");
    }
}

关键修改点说明:

  • 把协程改成类的成员方法,不再嵌套在Update代码块内
  • 用StartCoroutine()启动协程,这是Unity实现延迟逻辑的标准方式
  • 替换Input.GetKeyDown("f")为更规范的KeyCode.F
  • 添加了动画播放的示例逻辑,你可以根据实际使用的动画组件(Animation/Animator)调整代码
  • 修正了Start方法的位置,移到类内部

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:05:32