スポンサーリンク
※サイト運営にサーバーは必須です※
~ ロリポップ! はコスパのよい初心者向けサーバーです~
目次
はじめに
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;
~ギャンブルに絶対儲かる必勝法があるのだろうか?~
私(サイト主)はこの疑問に対して非常に興味を持ち、プログラミングで検証してみました。
このサイトを応援してもいいかなと思う人はぜひとも購入を検討してみてください。