実行時にUnity3Dを使って最も効率的な方法でモデルとテクスチャを読み込む方法を理解しようとしていますが、これまではglTF形式のDraco APIを使用し、現在私は本当に遅く動作する簡単な手順を実装しました。私はBestHTTPを使用していますし、質感のために私はこれをやっている:実行時にサーバーを介して3Dオブジェクトとテクスチャをインポートする
var texFoundPath = Directory.GetFiles(outFolder, texFileName, SearchOption.AllDirectories).Single();
Debug.Log("Loading texture from " + texFoundPath);
var texBytes = File.ReadAllBytes(texFoundPath);
Texture2D tex = new Texture2D(2,2);
tex.LoadImage(texBytes);
をし、オブジェクトをインポートするためのObjImporterを使用します。
var gameObject = ObjImporter.Import(objStr, mtlStr, textureHashtable);
実行時には、3-5MBのモデルは読み込むのに3-5秒かかっています。これは非常に遅く、何にも適していません。これをローカルに行うと、約100個のモデルがある場合、200〜300MBのAPKが発生します。
現在、私はこれを効率的に行う方法を探しており、あなたの助けが大好きです。私はDraco APIを使ってモデルをロードするのが最良だと思います。私はそのAPIと通信するプラグインの作成方法がわかりません。
アセットバンドルについて考えましたか? – Hristo
@Hristoはい。それは無駄だ。私が今やっていることのように遅いです。それを証明するための参照があります:https://answers.unity.com/questions/10868/how-to-build-asset-bundles-at-runtime-from-a-serve.html –
これらの回答と投稿はまた、私は現在アセットバンドルを使用しています。アプリケーションに2-3 MBのアセットバンドルをダウンロードしてロードするのに約5秒かかります – Hristo