10 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 12

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】Text作った時のデフォルトフォントを変えたいとき 

こんにちは。
大坂です。

明日は文化の日らしいですよ。
何やら今日予定を入れてくる人がいると思ったら明日休みらしいです。

さて、今日のネタですが、Textのオブジェクトを作った時に毎回フォントの設定変えるのが面倒になってくるのでそんなときの対策。
普通に作るテキストのデフォルトはどうやって変えられるのかわからなかったので、カスタムしたやつをメニューに追加する方針。

コードはこんな感じ。「Assets/Editor」の下に入れる。
using UnityEngine;
using UnityEngine.UI;
using UnityEditor;

public class CustomText : MonoBehaviour {

// 右クリックメニューのUIの中に追加
[UnityEditor.MenuItem("GameObject/UI/CustomText")]
public static void CreateCustomizedText() {
// オブジェクトの作成
GameObject textObj = new GameObject("Text", typeof(Text));
textObj.transform.localPosition = Vector3.zero;
textObj.transform.localScale = Vector3.one;

Text text = textObj.GetComponent<Text>();

// Asset/Fontの下にあるフォントを検索(違うフォルダに入れている場合は変更)
string[] fonts = AssetDatabase.FindAssets("t:Font", new string[] { "Assets/Font" });

if(fonts != null && fonts.Length > 0) {
// フォントの設定
Font font = AssetDatabase.LoadAssetAtPath<Font>(AssetDatabase.GUIDToAssetPath(fonts[0]));
text.font = font;
} else {
// なければArialを設定しておく
text.font = Resources.GetBuiltinResource(typeof(Font), "Arial.ttf") as Font;
}
// テキストの初期値
text.text = "New Text";
// テキストの色
text.color = Color.black;

// 右クリックしたオブジェクトを親にする
if(Selection.activeGameObject) {
GameObject parentObj = Selection.activeGameObject;
textObj.transform.SetParent(parentObj.transform, false);
textObj.layer = parentObj.layer;
textObj.isStatic = parentObj.isStatic;
}
}
}

Assets/Fontフォルダを作成して設定したいフォントを入れる。


これでHierarchyでの右クリックメニューのUIの中に「CustomText」が追加されます。


これで作ってあげるとちゃんとAssets/Fontの中に入れた「Font」が設定されてますね。


と、こんな感じで対応できるみたいなので、何かのお役に立てばいいですね!

ではまたノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0