検証内容
たとえば StreamingAssets フォルダに
大量のアセットを格納すると
インポートに長い時間がかかってしまいます
ゲームをビルドする時にアセットバンドルを
StreamingAssets にコピーしてからビルドする場合、
ゲームのビルドのたびに長いインポート処理が走ってしまいます
キャッシュサーバも使用していると
キャッシュサーバとの通信も発生して時間がさらにかかったりします
そこで、StreamingAssets フォルダに以下のような無視フォルダを作成して
その中にアセットを格納してみます
- 隠しフォルダ
- 「.」で始まるフォルダ
- 「~」で終わるフォルダ
- 「cvs」という名前のフォルダ
上記の例では「.Invisible」という無視フォルダ内に格納しています
すると、Unity でそのフォルダは認識されなくなるため
StreamingAssets 内のアセットのインポートがスキップされるようになります
using System.IO; using UnityEngine; using UnityEngine.UI; public sealed class Example : MonoBehaviour { public Text m_text; private void Start() { var path = $"{Application.streamingAssetsPath}/.Invisible/0001.txt"; var text = File.ReadAllText( path ); m_text.text = text; } }
この状態でランタイムで StreamingAssets 内のアセットを読み込めるか試してみると
正常に読み込めることが確認できます