はじめに
今日はUnityのProBuilderで使っていて起きた問題の件についてです。
Probuilderで作ったオブジェクトをシーンファイルに配置していて気づいたらSceneファイルが150メガぐらいになってた話です。
私はGitHubにファイルをアップしていたのですが100MBを超えるファイルはプッシュに失敗したことで気づけた問題でした。
今回はその原因と対策についての共有になります。
原因
原因はメッシュデータの複製方法でした。
前提としてProbuilderで作ったメッシュデータはファイル化されないためシーンが情報を持つことになってます。
そして次が問題でした。
Probuilderで作ったゲームオブジェクトを複製したときに、同じメッシュデータを参照しているかと思いきや、
全く同じ形と見た目の新しいメッシュデータが作られていました。
なので「メッシュサイズ x 複製した個数」 のデータをシーンファイルが持つことになっていました。
解決策
シンプルな解決策はプレハブ化でした。
プレハブをヒエラルキーに設置し複製することで、メッシュデータを複製することなく参照させるということができました。
余談
他の手としてメッシュデータをファイル(asset)で保存するというのも考えましたが、Probuilderの手軽さが完璧に失うことになったのでやめました。