【问题标题】:Unity car speedometerUnity车速表
【发布时间】:2019-06-20 19:06:50
【问题描述】:

我为我的车做了数字速度表,它可以正常显示速度,但是当汽车站在0km / h时,速度表数字上下跳动非常快,所以我想问如何修复它,我需要让它显示整数,因为现在昏迷后有很多数字。这是我使用的代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class greitis : MonoBehaviour {

    public GameObject GreitisDisplay,masina;
    public Rigidbody m_Rigidbody;
    Vector3 abc;
    float greituks;

    // Use this for initialization
    void Start () {
        m_Rigidbody = masina.GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void Update () {
        abc = m_Rigidbody.velocity;
        greituks = abc.magnitude;
        GreitisDisplay.GetComponent<Text> ().text = "" + greituks*3.6;
    }
}

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    要获得一个整数,您可以使用:

    Mathf.Round(greituks*3.6)
    

    【讨论】:

    • 好的,但是如何解决当汽车站立时它没有显示跳跃速度?
    • 如果是小数上下“跳跃”,这一轮也应该解决这个问题。
    • Thnx,但是当我尝试舍入时出现 2 个错误 1:错误 CS1502:“UnityEngine.Mathf.Round(float)”的最佳重载方法匹配有一些无效参数 (CS1502) (Assembly -CSharp) 和 2 错误:错误 CS1503:参数 1:无法从 'double' 转换为 'float' (CS1503) (Assembly-CSharp)
    • 在 3.6 之后添加一个 f(使其成为浮点数)。
    • 如果它解决了您的问题,请将我的回答标记为已解决或有用。 :^)
    【解决方案2】:

    试试这个
    GreitisDisplay.GetComponent ().text = "" + (int)(greituks*3.6);

    因为m_Rigidbody.velocity.magnitude 将永远给你float。所以,这样做是安全的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多