【问题标题】:Can't find current position of an GameObject找不到游戏对象的当前位置
【发布时间】:2019-05-25 22:29:58
【问题描述】:

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


    }


}

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    首先,你不需要调用 GetComponent,你可以使用小写转换 - 我相信它也被缓存了,所以快一点。

    关于您问题的核心,Text 组件将一个字符串作为 textSoore.text 的输入,而您正试图为其提供一个对 transform 的引用。在这种情况下,您应该这样做

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      相关资源
      最近更新 更多