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のフォントを置き換えるが、プレハブ化してあるものはノータッチなので、別途処理する必要がある