このコードは、Facebook 開発者で見つけました。小さな画面では問題なく動作しますが、2000x2000 の画面ではクラッシュします。PNGへのエンコードが多くのメモリを消費するために発生することがわかりました。最初に画面をキャプチャし、www を使用して画像を読み込み、Facebook にアップロードするという別の方法を使用します。問題は、www がバイナリ イメージを使用してアップロードする必要があることです。
- PNG にエンコードせずに Facebook にアップロードできますか (ローカル ファイルからロードするため)?
Facebook API には画像をアップロードする別の方法がありますか?
yield return new WaitForEndOfFrame(); var width = Screen.width; var height = Screen.height; var tex = new Texture2D(width, height, TextureFormat.RGB24, false); // Read screen contents into the texture tex.ReadPixels(new Rect(0, 0, width, height), 0, 0); tex.Apply(); byte[] screenshot = tex.EncodeToPNG(); var wwwForm = new WWWForm(); wwwForm.AddBinaryData("image", screenshot, "InteractiveConsole.png"); FB.API("me/photos", Facebook.HttpMethod.POST, Callback, wwwForm);