Help us understand the problem. What is going on with this article?

[UnityEditor拡張]Scene上のText要素で使用されている文字を集めるやつを作った

More than 1 year has passed since last update.

 背景

TextMeshProで日本語を使用するときの対応策としてUnityのText Mesh Proでほぼ全ての日本語を表示させるのようにほぼ全ての文字を含めるというやり方があります。

しかし、TextMeshProの利点として個人的に思うことはフォントファイルを配布に含めないことで容量を圧縮できる点にあるのではないかと考えます。
実際、日本語をほぼ網羅した.assetファイルとフォントファイルのサイズを比較すると
2018-10-14 07_00_09-新しいフォルダー.png

  • ghatee.ttf ->元のフォントファイル
  • test1.asset -> asciiのみ
  • test2.asset -> 日本語大体網羅
  • このようにかなり容量を消費します(サイズはFontAssetCreatorの設定次第で上下しますが)

こうなるとTextMeshProを使用する利点がないかもしれないので、できるだけassetファイルに含める文字コードを減らすようにしたいです。

目的

できるだけassetファイルに含める文字を減らすため、Scene上に存在するText要素を集めて使用されてる文字のみ
を生成するようにするEditor拡張を作る(ました)。

開発環境

Unity 2018.1.8f.1, .NET 4.x Equivalent , TextMeshPro

仕様

Scene上に存在する下記のコンポーネントのText情報を集めて使用されている文字コードを一覧を出力します

2018-10-14 07_07_44-Unity 2018.1.8f1 Personal (64bit) - Node2GameObject.unity - EscapeRoomTemplate -.png

  • UnityEngine.UI.Text
  • UnityEngine.TextMesh
  • TMPro.TextMeshPro
  • TMPro.TextMeshProUGUI

! TextMeshProも含めているでデフォルトのUnityProjectだと動きません。

Scene上のComponentはGameObjectがアクティブ/非アクティブ問わず収集することができます。

  • Print Text : Consoleに収集したテキストを表示します
  • Load AllScene: BuildSettingに登録されているScene全てから収集します
  • Append Chars: 追加したいテキストを設定できます。

Load AllSceneにチェックが入っていない場合は現在開いているシーンからテキストを取得します

使い方

textCollector.gif

インストール

ここに置いてありますのでよしなに
https://github.com/OhkuboSGMS/TextCollector

感想

自分が作成しているゲームは,Scene上にあるGameObjectで静的に完結しているので問題がありませんが、動的にネットから取得した情報をテキストに表示したりする場合はこの方法は使えないかもしれませんね...

何か不具合などありましたらIssueかQiitaの方に書いてくれると嬉しいです.

Alt_Shift_N
来世はnekoになりたい (2/26)そう思ったけど腎不全で死ぬのは辛い
https://github.com/OhkuboSGMS
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした