Unityでは、どうも1万5千字以上の文字を扱えない

  • このエントリーをはてなブックマークに追加

スポンサーリンク

※サイト運営にサーバーは必須です※
~このサイトもエックスサーバーを使用しています~

はじめに

Unityで、大容量のテキストファイルを一遍に扱いたかったが、どうも無理っぽかった。

エラーの出力

大量のテキストを扱うと、以下のようなエラーが表示されることがある。

おそらく、Inspector上でTextが1万5千文字を超えるとダメっぽい。

ArgumentException: Mesh can not have more than 65000 vertices

 

String too long for TextMeshGenerator. Cutting off characters.

私以外にもこの問題に悩まされている人がいる
外部サイト:
http://answers.unity3d.com/questions/1006003/string-too-long-for-textmeshgenerator-cutting-off.html

※私の使用しているUnityのバージョンは、5.5.1f1

色々やってみたが……

Inspector上で表示されるからだめなようなので、Inspector上に表示されないように、対象のTextに[HideInInspector]や[System.NonSerialized]の属性をつける。

→うまくいかず

そもそも、1万5千字以上のテキストファイルを書き込む以前に、読み込めるかどうか気になった。

外部サイト:http://halcyonsystemblog.blog.fc2.com/blog-entry-78.html

外部サイトのソースコードを参照しつつ、StreamingAssetsの下に1万5千文字を超えるテキストファイルを用意して、開こうとするものの失敗。

諦め……

色々考えたが、Unity初心者の私がこの問題を回避する名案は思い付かなかった。

妥協案として、千文字余裕を持たせた1万4千文字を超えた時点で文字列を打ち切るようにした。

扱っている文字列の長さを読み取るには、.Lengthを使えばよい。

以下のような感じのものを用意する(ここで、Textの名前はscrollと考えている)

int string_long = scroll.text.Length;

Unityコースやアプリコースあり。無料体験の申込みあり。
  • このエントリーをはてなブックマークに追加

スポンサーリンク

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)