代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class PointSystem : MonoBehaviour
{
public Rigidbody2D rb1;
public Rigidbody2D rb2;
public TextMeshProUGUI plr1T;
public TextMeshProUGUI plr2T;
public float UIVal1 = 1f;
void Start()
{
plr1T = FindObjectOfType<TextMeshProUGUI>();
plr2T = FindObjectOfType<TextMeshProUGUI>();
}
void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.tag == "PlayerAI")
{
UpdateUI();
}
}
void UpdateUI()
{
plr1T.text = (UIVal1.ToString());
UpdateFloat();
}
void UpdateFloat()
{
UIVal1 = +1f;
}
}
我想改变UI文本一旦他们碰撞一个对象,并增加值,所以如果他们再次击中它的数字在文本中增加。它也没有显示任何错误。请帮助。
我尝试过使用ToString()方法,但它仍然不能更改文本。
2条答案
按热度按时间jjjwad0x1#
我在您的代码中发现了一些小错误:
1.这并不是一个真正的错误,而是一个最佳实践。在检查标记之后,可以进行空值检查以避免异常错误。
您可以:
在调用此代码之前:
1.如果按1递增,则可以执行以下操作:UIVal1++,或UIVal1 += 1。
sbdsn5lh2#
你在递增UIVAL1时犯了一个错误,正确的方法是: