我正在尝试在Unity上使用TextMesh Pro显示文本,让代码运行,没有错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我正在尝试在Unity上使用TextMesh Pro显示文本,让代码运行,没有错误相关的知识,希望对你有一定的参考价值。

我在使用TextmeshPro在unity3d上更改文本时遇到了困难。

我是编码和Unity的新手,所以我真的不知道该怎么做。

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

public class PlayerController : MonoBehaviour

    public float speed = 1.0f;
    private int soldAmount;
    private int currentAmount;
    Rigidbody2D rigidbody2d;
    TextMeshProUGUI graveValue;
    TextMeshProUGUI scoreValue;

    // Start is called before the first frame update
    void Start()
    
        scoreValue = GameObject.Find("Score").GetComponent<TextMeshProUGUI>();
        graveValue = GameObject.Find("OrganTruth").GetComponent<TextMeshProUGUI>();
        rigidbody2d = GetComponent<Rigidbody2D>();
        currentAmount = 0;
        soldAmount = 0;
    

    // Update is called once per frame
    void Update()
    
        float Horizontal = Input.GetAxis("Horizontal");
        float Vertical = Input.GetAxis("Vertical");
        Vector2 position = rigidbody2d.position;
        position.x = position.x + speed * Horizontal;
        position.y = position.y + speed * Vertical;
        rigidbody2d.position = position;

        void OnTriggerEnter2D(Collider2D collision)
        
            if (collision.gameObject.tag == "Graveyard")
            
                while(currentAmount < 1)
                
                    currentAmount = currentAmount + 1;
                    graveValue.SetText(currentAmount.ToString());
                
            

            if(collision.gameObject.tag == "OrganBuyer")
            
                while(currentAmount == 1)
                
                    soldAmount = soldAmount + 1;
                    scoreValue.SetText(soldAmount.ToString());
                
            
        
    

它应该改变organTruth和Score显示的文本,soldAmount应该在增加1后显示,organTruth应该在碰撞后为1。

答案

你已经在更新循环中设置了OnTriggerEnter。您必须将其置于更新功能之外。这应该解决问题。

以上是关于我正在尝试在Unity上使用TextMesh Pro显示文本,让代码运行,没有错误的主要内容,如果未能解决你的问题,请参考以下文章

Unity 之 UGUI TextMeshPro控件详解

unity3D 如何获取 3D Text 的对象,并改变其值

csharp 使用脚本更改TextMesh Pro文本

在 Unity 中更改分辨率时,如何使我的 UI 文本以我的 2d 对象为中心?

在 Unity 3D 中使用触摸输入在地形上移动相机

TextMesh Pro