2012年4月24日火曜日

Unity: iOS上でGUILayout.Labelのフォントサイズを大きくしたい

フレームレートを表示する目的で GUILayout.Label を使用しています。
いつもお世話になっている以下のサイトを参考に、スクリプトをC#で書きなおしてみました。

強火で進め - [Unity][Unity3d]FPSの値を変更する方法
using UnityEngine;
using System.Collections;

public class Startup : MonoBehaviour {
  int count = 0;
  float t = 0;
  string fpsInfo = "";
  public GUIStyle fpsStyle;
 
  // Use this for initialization
  void Start () {
  }
 
  // Update is called once per frame
  void Update () {
    t += Time.deltaTime;
    ++count;
    if (t>=1.0) {
      fpsInfo = "fps: "+count;
      t = 0;
      count = 0;
    }
  }
 
  void OnGUI() {
    GUILayout.Label(fpsInfo,fpsStyle);
  }
}
※ネット上にある Unity のサンプルスクリプトが Javascript で書かれてることが多いので、C# で書こうとすると、初心者には途方に暮れてしまうことがありますが、関数名はそのままでコンバートすれば、だいたい大丈夫なようです。

publicで宣言した fpsStyle 変数に、フォントとフォントサイズを Inspector パネルから指定してやります。

しかし、デフォルトでは Arial しか指定できないようです。
更に、フォントサイズを変更すると、エディター上では反映されますが、iOS上で実行すると反映されず、もの凄く小さい文字で表示されてしまいます。

Unity では、ttfファイル(フォントファイル)をプロジェクトにドラッグ&ドロップするだけで、好きなフォントを登録できる機能がついています。
そして、フォントをテクスチャに書きだす時の設定でフォントサイズを指定してやれば、iOS上でもそのフォントサイズが適用されます。
試しに VL ゴシックフォントを登録してみました。

空のGameObjectを作成して、先ほどのスクリプトを登録します。
Inspector で public 指定した fpsStyle の設定ができるようになるので、そこから先ほどの VL ゴシックフォントを指定します。
このインスペクタ上でフォントサイズを変更しても、iOSでは反映されないのですが、VL ゴシックフォントに変えてからは、エディター上でも反映されなくなりました。
Unity はまだ始めたばかりで謎が多いです。

以下は iPhone 4 上での実行結果。
iOS では、デフォルトのフレームレートは30になっているようです。

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...