找不到GameObject的当前位置

时间:2019-05-25 22:29:58

标签: c# unity3d

我正在尝试统一,我喜欢在其中编写一个小游戏。我想制作一个脚本,在游戏上方的文本上显示当前分数。为此,我喜欢使用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.


    }


}

1 个答案:

答案 0 :(得分:1)

首先,您无需调用GetComponent,您可以使用小写转换-我相信它的缓存速度也要快一些。

关于问题的核心,Text组件将字符串作为textSoore.text的输入,并且您正尝试向其提供要转换的引用。在这种情况下,您应该这样做

 textSoore.text = transform.position.ToString();

虽然通常可以省略“ to string”方法(它通常是有效的隐式默认调用),但是查看这种形式应该更有意义。由于C#是严格的类型化语言,因此很多情况下的错误很容易发现和预防,string = transform毫无意义,而'从transform获取vector3位置并将其转换为字符串'