Oyuncunun ölümünden sonra oyunumda ekran görüntüsünü yakaladım. Ekran görüntüsünü yakalamak için kodu takip ediyorum.Unity Game'den Android Uygulamasıyla Paylaş Paylaş
RenderTexture rt = new RenderTexture (800, 600, 24);
MainCamera.targetTexture = rt;
Texture2D texture = new Texture2D (800, 600, TextureFormat.RGB24, false);
MainCamera.Render();
RenderTexture.active = rt;
texture.ReadPixels (new Rect (0, 0, 800, 600), 0, 0);
MainCamera.targetTexture = null;
RenderTexture.active = null;
Destroy (rt);
byte[] bytes = texture.EncodeToPNG();
Directory.CreateDirectory (Application.persistentDataPath + "/GameOverScreenShot");
File.WriteAllBytes (Application.persistentDataPath + "/GameOverScreenShot" + "/DiedScreenShot.png", bytes);
Aşağıdaki kodu kullanarak ekran görüntüsünü kaydediyorum.
byte[] bytes = File.ReadAllBytes (Application.persistentDataPath +"/GameOverScreenShot" + "/BirdDiedScreenShot.png");
Texture2D texture = new Texture2D (800, 600, TextureFormat.RGB24, false);
RectOffset tempOffset = new RectOffset (5, 5, 5, 5);
texture.filterMode = FilterMode.Trilinear;
texture.LoadImage (bytes);
Sprite sprite = Sprite.Create (texture, new Rect (0, 0, 800, 400), new Vector2 (0.5f, 0.0f), 2.0f);
ScreenShot_Image.GetComponent<Image>().sprite = sprite;
Şimdi, bu resmi Android uygulamasında paylaşmak istiyorum. Araştırmalarıma göre, bunun için aşağıdaki kodu aldım, ancak boş görüntüyü döndürüyor.
//instantiate the class Intent
AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
//instantiate the object Intent
AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");
//call setAction setting ACTION_SEND as parameter
intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND"));
//instantiate the class Uri
AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
//instantiate the object Uri with the parse of the url's file
string destination = Application.persistentDataPath + "/GameOverScreenShot" + "/DiedScreenShot.png";
AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse","file://"+destination);
//call putExtra with the uri object of the file
intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject);
//set the type of file
intentObject.Call<AndroidJavaObject>("setType", "image/*");
//instantiate the class UnityPlayer
AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
//instantiate the object currentActivity
AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
//call the activity with our Intent
currentActivity.Call("startActivity", intentObject);
Bu konuda neyi değiştirmeliyim? Lütfen yardım edin. Teşekkürler.
sen benim cevap denedin mi? – Programmer
Evet, Ama yine de bir sorun var. Düz metin ve görüntüyü birlikte paylaşamıyorum. Ben setType ile ilgili bir sorun olduğunu düşünüyorum. –
Yayınınız resim ile ilgilidir. Bunun için başka bir soru oluşturabilirsiniz. – Programmer