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

Unity RPG开发:运行时属性显示异常(Debug日志正常)

Unity RPG属性显示0但Debug.Log正确的问题排查与解决

核心原因:脚本执行顺序不匹配

你的问题大概率是**StatisticsViewer的Start()方法比VitalityConverter的Start()先执行**。当StatisticsViewer读取CurrentHP时,VitalityConverter还没完成HP计算,所以显示0;而VitalityConverter的Debug.Log是在自己的Start()里执行,此时计算已经完成,所以输出正确值。

解决方案

1. 强制控制脚本执行顺序

  • 打开Unity编辑器,进入Edit > Project Settings > Script Execution Order
  • 将VitalityConverter的执行优先级调至StatisticsViewer之前(数值越小,执行越早,默认是0,给VitalityConverter设为-10即可)

2. 读取前主动触发计算(更稳妥)

不需要依赖执行顺序,在StatisticsViewer读取HP前,先调用计算方法确保值已更新:

void Start()
{
    vitalityConverter = FindObjectOfType<VitalityConverter>();
    if (vitalityConverter != null)
    {
        // 先执行HP计算,再读取结果
        vitalityConverter.VitalityMathConversion();
        HP.text = vitalityConverter.HealthValue().ToString();
    }
    else
    {
        Debug.Log("VitalityConverter missing!");
    }
    STR.text = Statistics.initialSTR.ToString();
    VIT.text = Statistics.initialVIT.ToString();
    Int.text = Statistics.initialInt.ToString();
    Dex.text = Statistics.initialDex.ToString();
    Spd.text = Statistics.initialSpd.ToString();
}

3. 把计算逻辑移到Awake方法

Awake()的执行时机早于Start(),将VitalityConverter的计算逻辑移到Awake()里,确保在所有Start()执行前完成HP计算:

public class VitalityConverter : MonoBehaviour
{
    public PlayerStatistics CurrentStats;
    public int CurrentHP;

    private int ConversionRate = 5;

    void Awake() // 替换原来的Start
    {
        VitalityMathConversion();
        int healthValue = HealthValue();
        Debug.Log("Total Health is " + healthValue);
    }

    public void VitalityMathConversion()
    {
        CurrentHP = (CurrentStats.initialVIT + CurrentStats.CurrentVit) * ConversionRate;
    }

    public int HealthValue()
    {
        return CurrentHP;
    }
}

额外检查点

确认StatisticsViewer中的Statistics引用,和VitalityConverter中的CurrentStats引用是同一个PlayerStatistics实例,避免因引用不一致导致数值读取错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:42:32