【UNITY】指定した桁数まで数値を0埋めして表示する方法

スコア表示する際などに、桁数を指定して0埋めして表示する方法。
1 2 3 4 5 6 7 8 |
int score = 0; int add_score = 100; string score_7digits; score += add_score; score_7digits = score.ToString("D7"); Debug.Log(score_7digits); // → 0000100 |
toStringでの書式の指定は、以下のサイトが参考になります。
書式を指定して数値を文字列に変換するコメント欄にも追記していますが、実際のスコア表示例は以下のようになります。
createでUI→Textを作成し、Scoreという名前にして以下のスクリプトをアタッチしてみてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using UnityEngine; using System.Collections; using UnityEngine.UI;//スクリプトからUIを操作する場合に追記が必要 public class NewBehaviourScript : MonoBehaviour { int totalScore = 0; Text score; void Start () { score = GameObject.Find ("Score").GetComponent<Text>();//Scoreという名前のオブジェクトのTextコンポーネントへの参照を取得 } void Update () { totalScore += 1; score.text = totalScore.ToString("D7"); } } |
誤字したので訂正します
ちょうど0埋めを探してたところで役に立ちました!
少し気になったところがあるのですが
Text score_7digits;
↓
string score_7digits;
score_7digits = score.toString(D7);
↓
score_7digits = score.ToString(“D7”);
にしなければ使えなかったのですがTextのままでもつかうほうほうがあるのでしょうか?
すみません、記述が誤っていましたので訂正しました。
ご指摘ありがとうございます。
Text型をどうしても使いたい場合は、以下のようなスクリプトなら動作すると思います。
createでUI→Textを作成し、Scoreという名前にして以下のスクリプトをアタッチしてみてください。
承認してもコメントが表示されなくなっていましたので、いただいたコメントをコピペしています。
表示されるようになりましたらこのコメントは削除します。
以下、いただいたコメントです。
ちょうど0埋めを探してたところで役に立ちました!
少し気になったところがあるのですが
Text score_7digits;
↓
string score_7digits;
score_7digits = score.toString(D7);
↓
score_7digits = score.ToString(“D7”);
にしなければ使えなかったのですがTextのままでもつかうほうほうがあるのでしょうか?
すみません、記述が誤っていましたので訂正しました。
ご指摘ありがとうございます。
Text型をどうしても使いたい場合は、以下のようなスクリプトなら動作すると思います。
createでUI→Textを作成し、Scoreという名前にして以下のスクリプトをアタッチしてみてください。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;//スクリプトからUIを操作する場合に追記が必要
public class NewBehaviourScript : MonoBehaviour {
int totalScore = 0;
Text score;
void Start () {(); //Scoreという名前のオブジェクトのTextコンポーネントへの参照を取得
score = GameObject.Find (“Score”).GetComponent
}
void Update () {
totalScore += 1;
score.text = totalScore.ToString(“D7”);
}
}
わざわざ過去の記事に対する返信と詳しい説明ありがとうございます!
とても役立ちました!
こちらこそ間違いを教えていただき助かりました。ありがとうございました。