首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TextMeshProUGUI.Text NullReferenceException in Unity

TextMeshProUGUI.Text NullReferenceException in Unity
EN

Stack Overflow用户
提问于 2022-02-21 21:00:25
回答 1查看 546关注 0票数 0
代码语言:javascript
运行
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class NewBehaviourScript : MonoBehaviour
{
    public TextMeshProUGUI countText;
    private int count;

    void Start()
    {
        count = 0;
        SetCountText();
    }

    void SetCountText()
    {
        countText.text = $"Score: {count}";
    }

}

访问countText会触发NullReferenceException。没有一个解决方案提供在线工作。更令人怀疑的是,事实代码是从官方统一教程中提取的。我想有人犯了个错误。

一些附加信息:它在统一ui中的样子 CountText设置

一切似乎都井井有条。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-22 04:18:42

统一提供的调试类是一个有用的工具,应该在游戏开发过程中广泛使用。

代码语言:javascript
运行
复制
Debug.Log($"My object is {myObject}");

在设计期间使用Inspector窗口设置一些引用。这些引用必须在进入播放模式之前设置,否则它们将是null。可以通过将该类型的对象拖到检查器中的对象字段中来设置引用。

当尝试访问空对象的成员时,将发生空引用。

代码语言:javascript
运行
复制
public class DisplayPlayerName : MonoBehaviour
{
    public TextMeshProUGUI uiName;
    public GameObject player;

    void Start()
    {
        uiName.text = player.name; // <- whoops! NullReferenceException
    }
}

在上面的示例中,如果检查器中没有设置uiNameplayer,则将引发空引用异常。这是因为我们正在访问每个对象的一个成员。我们希望将text属性uiName设置为player的name属性。

但是我们怎么知道是哪个游戏对象造成了问题呢?我有一百万个游戏对象,不想全部检查!

帮助缩小搜索范围的技巧

调试抛出异常的对象的名称。

代码语言:javascript
运行
复制
if (player == null ||
    uiName == null) // <- do some null checking
{
    Debug.Log($"{name} has null player or ui"); // <- log the gameobjects name
    return; // <- exit the function
}

// This won't throw the exception anymore because we exit the function when null is detected
//
uiName.text = player.name; 

当我们以有意义的方式命名每个对象(或者至少是最重要的对象)时,记录对象名称是最有用的。

您可以将场景中的对象过滤为具有特定组件的对象。使用Hierarchy窗口中的搜索栏,键入t:,然后是组件的名称。t:DisplayPlayerName。这将只显示带有该组件的对象。

希望这能为您提供一些统一调试的新工具。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71212966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档