GÜNCELLEME (19.03.2018): Asset Store linki eklendi.
Yeniden merhabalar,
Bu yazımda, Unity oyunlarınızdan 360 derece ekran görüntüleri almanıza yarayan basit bir script paylaşacağım. Bu ekran görüntülerini Facebook veya Flickr gibi sitelere yüklediğinizde, resim etkileşimli bir şekilde 360 derece görüntülenir. Örneğin şu resmi bu yöntemle çektim (resmi 360 derece görmek için ise buraya tıklayın):

Asset Store: https://assetstore.unity.com/packages/tools/camera/360-screenshot-capture-112864
Alternatif Link: https://github.com/yasirkula/Unity360ScreenshotCapture/releases
Açıklama ve örnek kod için yazının devamını okuyabilirsiniz…
Linteki unitypackage‘ı projenize import ettikten sonra artık kodlarınızda I360Render.Capture() fonksiyonunu kullanarak 360 derece ekran görüntüleri alabilirsiniz. Dilerseniz bu fonksiyona parametre olarak resmin genişliğini ve resmin JPEG olarak mı yoksa PNG olarak mı kaydedilmesi gerektiğini de girebilirsiniz (örneğin I360Render.Capture(2048, false); fonksiyonu 2048×1024 boyutunda bir PNG resim oluşturur). Fonksiyon bir byte[] objesi döndürdüğü için bu array’i File.WriteAllBytes fonksiyonu ile istediğiniz bir yere kaydetmelisiniz.
Aşağıdaki örnek kod, oyun esnasında P tuşuna bastığınızda 360 derece bir screenshot alıp bunu cihazınıza kaydeder ve kaydedilen konumu konsola yazdırır. Ardından bu resmi Facebook’unuza yükleyecek olursanız resmin 360 derece görüntülendiğini göreceksiniz:
using System.IO;
using UnityEngine;
public class RenderTest : MonoBehaviour
{
public int resimGenisligi = 1024;
public bool jpegKaydet = true;
void Update()
{
if( Input.GetKeyDown( KeyCode.P ) )
{
byte[] bytes = I360Render.Capture( resimGenisligi, jpegKaydet );
if( bytes != null )
{
string path = Path.Combine( Application.persistentDataPath, "360render" + ( jpegKaydet ? ".jpeg" : ".png" ) );
File.WriteAllBytes( path, bytes );
Debug.Log( "Resim kaydedildi: " + path );
}
}
}
}