1

現在 GUI テキストに表示している情報を使用して、ヘルス バーを作成したいと考えています。私が望む動作は、ヘルスが時間の経過とともに (カウントダウン タイマーのように) 減少し、プレイヤーがオブジェクトを収集するたびに少しずつ増加することです。

これが私の現在のコードです:

using UnityEngine;
using System.Collections;

public class TimeText : MonoBehaviour {

    public GUIText timeText;
    //countdown
    public float timer = 99.00f;

    // Update is called once per frame
    void Update () 
    {
        timer -= Time.deltaTime*5;

        timeText.text = "Health: " + timer.ToString("0");

    }
}

ヘルスバーを次のように表示します。 ここに画像の説明を入力

4

1 に答える 1

1

上記の @JoeBlow のように、古い GUI の仕組みは避けてください。それらは非常に重く、粗雑で、パフォーマンスに役立ちません。

@Serliteが質問を分解しました。それらはあなたが必要とするものです。

ヘルスバーについては、Unity UI のImageコンポーネントを使用することをお勧めします。ヘルスバーに必要な画像(おそらく質問に投稿したものと同じですか?)を使用し、変数にfillAmount基づいて変更しますtimer(ただし、個人的には、その目的をよりよく表すために「ヘルス」のような名前に変更します)。

時間の経過とともに体力を低下させることにすでに気を配っているようです。ヘルスに追加するには、シーン内のトリガーとして Colliders を使用し、適切なオブジェクトでOnTriggerEnterまたは同様のデフォルトの monobehavior メソッドのいずれかを使用します。

Unity でのプログラミング ロジックをよりよく理解できるように、オンラインでいくつかのチュートリアルを実行することをお勧めします。それが役立つことを願っています!

于 2016-01-27T18:14:32.303 に答える