如何在游戏窗口中实时显示变量浮点值作为测试文本?

时间:2016-09-19 06:48:21

标签: c# unity3d

在运行游戏时,我想实时显示一些统计数据和信息。 现在我想在游戏窗口中显示landingSpeed变量值。 在左上角。

但它没有显示任何内容。我想在左上角显示它,并且能够在脚本中设置文本字体大小。

using UnityEngine;
using System.Collections;

public class MakeObjectFly : MonoBehaviour
{
    public float AmbientSpeed = 100.0f;
    public float RotationSpeed = 200.0f;
    public float flightSpeed = 5.0f;
    public float landingSpeed = 100.0f;
    public bool isGrounded = true;

    Rigidbody _rigidbody;

    public UnityEngine.UI.Text displaylandingspeed;

    void Start()
    {
        _rigidbody = GetComponent<Rigidbody> ();
    }


    void Update ()
    {
        Quaternion AddRot = Quaternion.identity;
        float roll = 0;
        float pitch = 0;
        float yaw = 0;
        roll = Input.GetAxis ("Roll") * (Time.deltaTime * RotationSpeed);
        pitch = Input.GetAxis ("Pitch") * (Time.deltaTime * RotationSpeed);
        yaw = Input.GetAxis ("Yaw") * (Time.deltaTime * RotationSpeed);
        AddRot.eulerAngles = new Vector3 (-pitch, yaw, -roll);
        _rigidbody.rotation *= AddRot;
        Vector3 AddPos = Vector3.forward;
        AddPos = _rigidbody.rotation * AddPos;
        if (isGrounded == true) {
            landingSpeed = Input.GetAxis ("LandingSpeed") * (Time.deltaTime * AmbientSpeed);
            _rigidbody.velocity = AddPos * (Time.deltaTime * AmbientSpeed + landingSpeed);
            if (landingSpeed == 100)
                landingSpeed = 0.0f;
            displaylandingspeed.text = landingSpeed.ToString ();
        }
    }
}

我添加了变量displaylandingspeed,但在运行游戏时根本没有显示它。

第一个显示文本检查器的两个屏幕截图。 第二个显示带有脚本和附加文本的GameObject。

Text1

Text2

1 个答案:

答案 0 :(得分:1)

屏幕截图中可以看到的文本对象不是Canvas的子对象。具有Unity UI组件的任何对象都应该是Canvas对象的子对象。只有这样才能在屏幕上呈现。

使您的文本对象成为Canvas对象的子对象,并且应该解决问题。