我正在尝试统一,我喜欢在其中编写一个小游戏。我想制作一个脚本,在游戏上方的文本上显示当前分数。为此,我喜欢使用transform.position脚本,但是如果使用它,它不会更新当前位置。它仅在场景开始时显示GameObject的位置。 如何更改它以每帧显示当前场景并将其显示在文本字段的屏幕上?
public Transform tf;
public Text textSoore;
void Start()
{
}
// Update is called once per frame
void Update()
{
tf = GetComponent<Transform>();
textSoore = GetComponent<Text>();
textSoore.text = tf.
}
}
答案 0 :(得分:1)
首先,您无需调用GetComponent,您可以使用小写转换-我相信它的缓存速度也要快一些。
关于问题的核心,Text组件将字符串作为textSoore.text的输入,并且您正尝试向其提供要转换的引用。在这种情况下,您应该这样做
textSoore.text = transform.position.ToString();
虽然通常可以省略“ to string”方法(它通常是有效的隐式默认调用),但是查看这种形式应该更有意义。由于C#是严格的类型化语言,因此很多情况下的错误很容易发现和预防,string = transform毫无意义,而'从transform获取vector3位置并将其转换为字符串'