【问题标题】:Unable to use TextMeshPro, only TextMesh available in Unity Code无法使用 TextMeshPro,Unity 代码中只有 TextMesh 可用
【发布时间】:2021-07-29 00:55:05
【问题描述】:

我正在尝试在我的统一项目中更改 textmesh pro 的文本,因此我在我的 GameObject 中添加了一个 TextMeshPro 文本组件。现在,当我尝试编写 TextMeshPro textmeshPro = GetComponent<TextMeshPro>(); 时,我得到了 TextMeshPro 在命名空间中不可用的错误。我使用了导入using TMPro;。唯一可用的是TextMesh。这是相当于TextMeshPro的代码吗?

另外,TMP_Text 不适合我。 VS 2019 除了“TextMesh”之外没有其他建议

我的完整代码:

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

public class ContextMenuInteraction : MonoBehaviour
{
    public string partName;
    public GameObject assignedGameObject;

    
    void Start()
    {
        TextMesh Test = assignedGameObject.GetComponent<TextMesh>();
        TextMeshPro textmeshPro = GetComponent<TextMeshPro>();
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void showNearContextMenu (GameObject target)
    {
        //use position of game object to spawn context menu near it
    }
}

我的 TextMeshPro 对象如下所示:

【问题讨论】:

  • 您是否配置了 TMP?我知道有一个初始步骤可以在您的项目中进行设置。
  • Afaik 我做到了。我有一个弹出窗口说“导入 TMP Essentials”,我可以在 Gameobject 中手动更改 TMP 文本。甚至导入“TMPro”也被接受。只是我的 Visual Studio 抱怨找不到“TextMeshPro”或任何相关内容
  • 尝试重建项目文件。编辑 > 首选项 > 外部工具 > [重新生成项目文件]
  • 这已解决,非常感谢

标签: unity3d


【解决方案1】:

问题是组件类型。您需要找到具有此类型“TextMeshProUGUI”的组件,这是 UI 的文本组件。

例子:

TextMeshProUGUI nameField;
nameField = GetComponent<TextMeshProUGUI>();
nameField.text = "some text";

【讨论】:

    【解决方案2】:

    enter image description here

    对我来说是正确的 我认为更改编译器,例如 Vscode 或 VS 或 Rider

    【讨论】:

      【解决方案3】:

      重建项目文件。编辑 > 首选项 > 外部工具 > [重新生成项目文件] - @hijinxbassist 在帖子下方的 cmets 中解决的问题

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-11
        • 1970-01-01
        • 1970-01-01
        • 2020-12-30
        • 1970-01-01
        • 2023-02-20
        相关资源
        最近更新 更多