UnityのNGUIを使ってるプロジェクトで使用するフォントを変更したいことがあったのだが、全てのシーンを開いて手作業で変更していくのは辛いのでスクリプトを書いた。
今回はNGUIのUILabel
を使ったものに対して行ったが、uGUIのText
に対しても同様にできることでしょう。
メニューにウィンドウを開く項目を追加
// Assets/Editor/FontReplacer.cs |
- MenuItemという属性でUnityのメニューに項目を追加できる
- EditWidnow を継承したクラスで、独自のウィンドウを作成できる
ウィンドウにフォントを選択する項目と置き換え開始ボタンを配置
// Assets/Editor/FontReplacer.cs |
OnGUI
メソッド中でGUILayout
などでボタンなどを配置する
シーン中のUILabelのfontを置き換える
// Assets/Editor/FontReplacer.cs |
- 実質の本体
全てのシーンを順に開いてなにかするメソッド
delegate bool OnScene(string path); |
- 処理中はプログレスバーを表示
onScene
からtrue
が返された場合、シーンに更新があったものとして保存する- AssetDatabase.FindAssetsでシーンを列挙
- シーンに存在する
UILabel
のフォントを置き換えるが、プレハブ化してあるものはノータッチなので、別途処理する必要がある