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;

~Webサイトを自分で作ってみませんか?~

Webサイトを運営するにはサーバーが必須です。
このサイトは、エックスサーバー のサーバーを使用しています。
エックスサーバーは無料で10日間お試しができます。

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

スポンサーリンク


コメントを残す

*

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