2017-05-17 12 views
1

Unityのアプリには、画像の数が であるため、現時点ではビルドサイズは本物の問題ですので、ビルドサイズを小さくする方法を検討しています。 アセットバンドルでUnity WebGlのビルドサイズを小さくする

私たちは、当社のサーバーから画像をダウンロードしたかったので、我々は、画像をダウンロードし 小さなスクリプトを作成しました:このスクリプトで

問題(私はこの質問のためのコードを簡素化)

public IEnumerator LoadImages(List<string> imageNames, System.Action<int> callback) { 
    int downloadedImages = 0; 
    foreach (string imageName in imageNames) { 
    string imageUrl = spriteNamesAndUrls[imageName]; 
    var www = new WWW(imageUrl); 
    yield return www; 
    Texture2D texture = new Texture2D(1, 1); 
    www.LoadImageIntoTexture(texture); 
    Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.one/2); 
    sprites.Add(imageName, sprite); 
    downloadedImages += 1; 
    } 
    callback(downloadedImages); 
} 

私は何百もの画像 をスプライト/テクスチャに変換することを余儀なくされています。これは、1つのシーンに20以上のスプライトをレンダリングする必要がないので、これは対処する必要のない問題です。

これで、組み込みのソリューションと思われるアセットバンドルを使用しています。私の質問がある

は、上記のスクリプトに比べ、「資産バンドル」私のWebGLのビルドのサイズを削減するための良い解決策ですか?

は、私は700枚の以上の写真(19メガバイトの合計)

答えて

1

で資産フォルダを持っているアプリはちょうどおそらくHTTP呼び出しの 何百もの、原因メモリの問題にクラッシュすることを考慮に入れます。

これはWebGL biuldのサイズとは関係ありません。注意深く見ると、webGLビルド/プレーヤー設定にはメモリサイズパラメータがあります。問題を解決するためにこれを増やすことができます。あなたはそれがあまりにも大きい場合、メモリサイズを設定する際に注意する必要がありますしかし

enter image description here

は、ブラウザが要求されたメモリを否定すると、プレーヤーのロードに失敗します。

ここでこれについてもっと読むMemory Considerations when targeting WebGL

HTTP呼び出しは問題はブラウザのメモリにロードされた多数の画像で、問題ではありません。アセットバンドルを使用している場合は、スプライトの作成など、ブラウザのメモリにすべてのイメージをロードするため、同じ問題が発生します。

これが役に立ちます。

+0

こんにちは@ Umair、私はすでに、成功せずに前にメモリサイズを増やしてみました。とにかく、私たちの主な問題はビルドサイズです。私は十分にはっきりしていないと思う、私はちょうど質問を編集しました。あなたの答えに感謝します。 –

関連する問題