Unity Oyunlarınızdan 360° Screenshot Almak

Yayınlandı: 23 Ekim 2017 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

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 );
            }
        }
    }
}

Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.