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

Unity C#代码部分未执行:SetActive及后续代码无响应

Unity中Firebase异步回调代码执行中断问题排查

我在Unity中运行以下C#代码时,仅能输出日志“Snapshot Exsist 1”,但后续的ObjectToTurnOn.SetActive(true)、ObjectToTurnOFF.SetActive(false)以及Debug.Log("Snapshot Exsist 2")代码均未执行,且未出现任何报错信息,请问这些代码为何无法运行?

相关代码如下:

public void GetCompleteUserdata(string currUID){   
    Debug.Log("Going to get complete user data")
    DocumentReference docRef = db.Collection("users").Document(currUID);
    
    docRef.GetSnapshotAsync().ContinueWithOnMainThread(task =>
    {
        DocumentSnapshot snapshot = task.Result;
        if (snapshot.Exists) 
        {
            // DebugText.text = "Snapshot Exsist";
             Debug.Log("Snapshot Exsist 1");
             ObjectToTurnOn.SetActive(true);
             ObjectToTurnOFF.SetActive(false);  
             Debug.Log("Snapshot Exsist 2");
       
        } 
    });
}

可能的原因及排查方案:

  • 空引用异常被静默吞吃:ObjectToTurnOn或ObjectToTurnOFF未在Inspector中赋值,执行SetActive时触发空引用异常,但Firebase的回调逻辑可能捕获了异常却没抛出,直接中断后续代码。可以在Debug.Log("Snapshot Exsist 1")后加日志检查对象状态:
    Debug.Log($"ObjectToTurnOn: {ObjectToTurnOn}, ObjectToTurnOFF: {ObjectToTurnOFF}");
    
  • 主线程执行环境异常:虽然ContinueWithOnMainThread确保回调在主线程执行,但极端情况下可能出现线程同步问题导致代码中断。可以尝试把UI操作包裹到Unity主线程调度逻辑中:
    Debug.Log("Snapshot Exsist 1");
    Invoke(() => 
    {
        ObjectToTurnOn.SetActive(true);
        ObjectToTurnOFF.SetActive(false);  
        Debug.Log("Snapshot Exsist 2");
    }, 0);
    
  • 回调内部异常未暴露:Firebase默认日志级别可能隐藏了内部异常,用try-catch包裹代码块手动捕获异常,就能看到具体错误:
    if (snapshot.Exists) 
    {
        Debug.Log("Snapshot Exsist 1");
        try
        {
            ObjectToTurnOn.SetActive(true);
            ObjectToTurnOFF.SetActive(false);  
            Debug.Log("Snapshot Exsist 2");
        }
        catch (Exception e)
        {
            Debug.LogError($"回调执行出错: {e.Message}\n{e.StackTrace}");
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 16:05:28