我正在尝试在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显示文本,让代码运行,没有错误的主要内容,如果未能解决你的问题,请参考以下文章
unity3D 如何获取 3D Text 的对象,并改变其值