回答編集履歴

1

追加情報に沿った案を追記

2019/04/09 21:16

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -309,3 +309,45 @@
309
309
 
310
310
 
311
311
  ![結果比較](26b29d0c163f2fe3ae2b986956f5f519.png)
312
+
313
+
314
+
315
+ #追記
316
+
317
+ タイル1個ごとに頂点が4個生成されますので、頂点総数は130×130×4=67600個となります。頂点インデックスの形式がデフォルトの16ビット整数ですと65535個までしか扱えず、途切れてしまったものと思われます。
318
+
319
+ さしあたり、[indexFormat](https://docs.unity3d.com/ScriptReference/Mesh-indexFormat.html)を[Rendering.IndexFormat.UInt32](https://docs.unity3d.com/ScriptReference/Rendering.IndexFormat.UInt32.html)に切り替えてみてはいかがでしょうか?
320
+
321
+ ```C#
322
+
323
+ void GenerateMesh()
324
+
325
+ {
326
+
327
+ MeshData data = new MeshData(tiles);
328
+
329
+ mesh = new Mesh();
330
+
331
+
332
+
333
+ // 頂点インデックスのフォーマットを32ビット整数に変更する
334
+
335
+ mesh.indexFormat = IndexFormat.UInt32;
336
+
337
+
338
+
339
+ mesh.vertices = data.vertices.ToArray();
340
+
341
+ mesh.triangles = data.triangles.ToArray();
342
+
343
+ mesh.RecalculateNormals();
344
+
345
+ mesh.RecalculateBounds();
346
+
347
+ Graphics.DrawMesh(mesh, Vector3.zero, Quaternion.identity, material, 0);
348
+
349
+ }
350
+
351
+ ```
352
+
353
+ リファレンスによると一部の環境では32ビットインデックスをサポートしないそうですので、それらにも対応させたい場合はメッシュを複数個に分割する必要がありそうですね。