エディタ拡張

【Unity】テキストの設定を変更するスクリプト

だんだんuGUIの設定変更方法がわかってきたのでメモ。

テキストの設定を変更するスクリプト

テキストを選択して、メニューから実行。

複数選択にも対応しています。

参考
https://docs.unity3d.com/ja/current/ScriptReference/TextGenerationSettings.html

コード

using UnityEngine;
using UnityEditor;
using UnityEngine.UI;

public class TextSettingChange : MonoBehaviour {
    [MenuItem("UITools/テキストの設定を変更", false, 1)]

    static void TextSetting(MenuCommand command)
    {
        foreach (GameObject obj in Selection.gameObjects)
        {

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

        Undo.RegisterCompleteObjectUndo(text, "Undo Text Change");    //Undo

        //文字
        text.font = AssetDatabase.LoadAssetAtPath<Font>("Assets/Fonts/NotoSansCJKjp-Medium.otf");

        //文字スタイル
        text.fontStyle = FontStyle.Normal;

        //文字サイズ
        text.fontSize = 24;

        //行間
        text.lineSpacing = 1.1f;

        //Rich Textに
        text.supportRichText = true;

        //段落
        text.alignment = TextAnchor.MiddleCenter; //TextAnchor.LowerRight; //TextAnchor.UpperLeft;

        //Align By Geometryに
        text.alignByGeometry = true;

        //Horizontal Overflowに
        text.horizontalOverflow = HorizontalWrapMode.Overflow; //HorizontalWrapMode;

        //Horizontal Overflowに
        text.verticalOverflow = VerticalWrapMode.Truncate; //VerticalWrapMode.Overflow;

        //Best Fitに
        text.resizeTextForBestFit = true;

        //Min Size
        text.resizeTextMinSize = 24;

        //Max Size
        text.resizeTextMaxSize = 32;

        //文字色
        text.color = new Color(165f / 255f, 220f / 255f, 192f / 255f, 255f / 255f);

        }
    }
}

備考

※Unityに内蔵されているArialを使用したい場合はこちら
text.font = Resources.GetBuiltinResource(typeof(Font), "Arial.ttf") as Font;

※Resourcesフォルダにフォントがある場合はこちら
text.font = Resources.Load("Fonts/NotoSansCJKjp-Medium") as Font;

ABOUT ME
すいみん
テクニカルなことが好きなCGデザイナー