この記事は公式ドキュメントの補足的な立ち位置で書いてます。
FlyingText3Dとは
Unityで文字の3Dオブジェクトを簡単に生成してくれるアセット。
フォントファイルさえ用意すればどんな文字でも3Dオブジェクトとして生成してくれます。
その他詳しいことはコチラの記事を見てください。
用意されているAPI
大きく分けて5種類あります。
GetObject
文字列(String)を渡したら 子を持たないGameObject が返ってくる。
文字列を1つのまとまったオブジェクトとして扱いたいときはこれを使う。
String のほかに Material, edgeMaterial, size, extrudeDepth, resolution, characterSpacing, lineSpacing, lineWidth, position, rotation が引数として渡せる。
一部だけ指定することも可能。例えばPositionとRotationだけ指定したいなら
GameObject gameObject = FlyingText.GetObject( (string)text, (Vector3)position, (Quaternion)rotation);
とすればいい。
GetObjects
GetObjectと違い文字列(String)を渡したら 文字数だけ子を持った親のGameObject が返ってくる。
文字を個別に扱いたいときはこれを使う。
使用できる引数はGetObjectと同じ。
GetObjectsArray
GetObjectsと違い文字列(String)を渡したら 1文字ごとのGameObjectを配列として 返す。
特定の文字だけ操作したいときはこれを使った方が便利?
使用できる引数はGetObjectと同じ。
UpdateObject
生成済みオブジェクトの文字を変更したいときに使用する。
FlyingText3Dで生成したオブジェクト(GameObject)と変更後の文字列(String)を引数として渡すとオブジェクトの文字が変わる。返値はない。
UpdateObject( (GameObject)gameObject, (string)text);
PrimeText
このアセット内で1番使えない関数。
Startで呼び出すことで、引数として渡した文字を事前に用意してくれる。
事前に用意することで文字オブジェクトの生成時の負荷を軽くすることができる。
FlyingText.PrimeText("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
英語だけなら大文字小文字合わせて50文字程度で済むし、半角数字を含めても+10字程度なので問題にはなりません。
これを日本語に拡張すると、平仮名だけで100文字とちょっと、片仮名や常用漢字、人名漢字、全角数字などなどを合わせると3000字を余裕で超えます。
フォントファイルに登録されている文字だけ抽出してそれを登録するという方法もありそうですが、メモリ消費量がヤバいことになりそう。
あとフォントに登録されている文字を抽出するってどうやるの。
正直現実的ではないので、文字列を1~5文字ずつに分離してそれぞれGetObjectした方がいいと思います。