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

Unity3D:玩家静止5秒触发事件的代码调试求助

问题排查与修复

核心问题分析

你的计时器异常是因为逻辑分支错误和初始化缺失:

  • 未在Start()中初始化计时器,初始值为0,导致第一次计时逻辑混乱
  • 在静止判断的嵌套分支里,当计时器还未归零时,错误执行了timer = countdownTime;,直接重置了倒计时
  • 静止判断不完整,仅处理了Horizontal为0的情况,漏掉了Vertical为0但Horizontal不为0的场景

修复步骤

  1. 初始化计时器:在Start()中给timer赋值为countdownTime,确保初始倒计时正确
  2. 重构静止判断逻辑:先统一判断玩家是否完全静止(Horizontal和Vertical输入都为0),再分别处理计时和重置逻辑
  3. 修正分支错误:移除静止状态下错误的计时器重置代码,只在玩家移动时重置计时器

修正后的完整代码

using UnityEngine;
using UnityEngine.SceneManagement;

public class PlayerController : MonoBehaviour
{
    public float speed;
    public float countdownTime = 5f; 
    private float timer; 

    void Start()
    {
        // 初始化计时器为设定的倒计时时长
        timer = countdownTime;
    }

    void Update()
    {
        // 玩家移动逻辑
        Vector3 input = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
        transform.position += input.normalized * speed * Time.deltaTime;

        // 获取当前输入值
        float horizontalInput = Input.GetAxisRaw("Horizontal");
        float verticalInput = Input.GetAxisRaw("Vertical");

        // 判断玩家是否完全静止
        bool isPlayerIdle = horizontalInput == 0 && verticalInput == 0;

        if (isPlayerIdle)
        {
            // 静止时倒计时
            timer -= Time.deltaTime;
            Debug.Log($"剩余倒计时:{timer:F2}");

            if (timer <= 0f)
            {
                Debug.Log("Countdown finished!");
                // 触发你的特定事件逻辑
                // 重置计时器(如果需要循环触发)
                timer = countdownTime;
            }
        }
        else
        {
            // 玩家移动时重置计时器
            timer = countdownTime;
        }
    }      

    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Enemy"))
        {
            SceneManager.LoadScene("Game");
        }
    }
}

额外优化建议

  • 使用CompareTag()代替直接比较字符串,性能更优且能避免拼写错误
  • 移除不必要的Debug.Log,减少运行时性能消耗
  • 如果需要更精准的计时(比如忽略暂停状态),可以考虑使用Time.unscaledDeltaTime替代Time.deltaTime

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:35:20