Texture2Dの品質を低下させる良い方法があるのだろうかと思います。ここでの状況は、キャプチャした写真をiOS上のサーバーに送信したいのですが、キャプチャされた写真のサイズが大きすぎるため、サーバーからの応答に時間がかかります。何らかの理由で、カメラから取得したtexture2Dは、ミップマップ(getPixels(2)でサイズを直接小さくすることができます)をサポートしていません。それでも、mipmapを使用するには、Texture2D(tmp)を作成してキャプチャした写真からコピーし、別のtexture2Dを作成してtmpのハイミップマップレベルを取得する必要があります。しかし、それはiOS上で多くのメモリを消費するため、クラッシュを引き起こす可能性があります。私の問題を解決できるどんな考えですか?Unity3DのiOS上でTexture2Dのサイズを小さくする(ミップマップは使用できません)
ありがとうございます。
更新
pixels = new Color[(int)(photo.width * photo.height/16)];
pixels2 = photo.GetPixels();
for(int i = 0; i < pixels.Length; ++i){
pixels[i] = pixels2[16*i];
}
tempPhoto = new Texture2D((int)photo.width/4, (int)photo.height/4);
tempPhoto.SetPixels(pixels);
tempPhoto.Apply();
これは大丈夫でしょうか?
送信用に新しいテクスチャを作成している場合は、代わりにbyteまたはcolor32配列を送信することができます。そのスクリプトの最後の3行は必要ありません。 – mgear
@mgearはいu r右、感謝します。 – milanow