コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】【uGUI】Text の文字列の設定を楽にする拡張メソッド

はじめに

var text = GetComponent<Text>();

int   score = 25;
float time  = 0.5f:

text.text = score.ToString();
text.text = time .ToString();

スコアやタイムなどの数値を Text で表示する場合、
ToString 関数を呼び出して text に設定する必要があり
コーディングが少し大変だったので拡張メソッドを作成しました

ソースコード

using System.Text;
using UnityEngine.UI;

/// <summary>
/// Text 型の拡張メソッドを管理するクラス
/// </summary>
public static class TextExt
{
    /// <summary>
    /// テキストを設定します
    /// </summary>
    public static void SetText( this Text self, string          text    ) { self.text = text;                   }
    public static void SetText( this Text self, int             value   ) { self.SetText( value .ToString() );  }
    public static void SetText( this Text self, ushort          value   ) { self.SetText( value .ToString() );  }
    public static void SetText( this Text self, uint            value   ) { self.SetText( value .ToString() );  }
    public static void SetText( this Text self, ulong           value   ) { self.SetText( value .ToString() );  }
    public static void SetText( this Text self, long            value   ) { self.SetText( value .ToString() );  }
    public static void SetText( this Text self, byte            value   ) { self.SetText( value .ToString() );  }
    public static void SetText( this Text self, StringBuilder   sb      ) { self.SetText( sb    .ToString() );  }
}

使い方

var text = GetComponent<Text>();

int   score = 25;
float time  = 0.5f:

text.SetText( score );
text.SetText( time  );

関連記事