p_chinのおっぱいブログ

UnityとPerlなど

BitmapFontの更新をSceneからの参照を保ったまま更新する手順

ある程度画面を作成してきたところでBitmapFontの更新があって、SceneからのUIFontの参照を保ったまま更新したいと思ってて悩んで解決に至ったのでメモ。

※UIFontの公式の機能を使ってるだけです。

  1. BitmapFontGeneratorで更新したいフォントデータ(.fnt, .png)を生成
  2. Unityに.fnt.pngをimportする(また手動でmaterialから参照し直すので既にあるデータから上書きしても良い)
  3. {font_name}.prefabのInspectorでのUIFontのパラメータのImport Dataに先ほどimportした.fntをD&DしてBitmapFontに収録されてる文字と、画像に対する文字のoffsetなどのデータを更新する
  4. フォントデータを更新してBitmaoFontのAtlasの文字に対するoffsetが変更されたので、2の工程で上書きしたAtlasの.pngファイルがUIFontが参照してるmaterialから参照されてるかチェック

BitmapFont、Mac<->Win間のやり取りが面倒なのでたまにしかやらない作業だけど辛い。