Unity Oyununuzu Windows Phone’a Build Etmek

Yayınlandı: 11 Haziran 2014 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

SON GÜNCELLEME: 09.05.2016 – Unity 5+ ve Windows Phone 8.1 için talimatlar eklendi.

Hepinize tekrardan merhaba,

Bu derste Android veya iOS için hazırladığınız oyununuzu Windows Phone‘a build etmeyi göstereceğim. Eğer oyununuz Android veya iOS’ta düzgün çalışıyorsa büyük olasılıkla Windows Phone’da da sıkıntısız bir şekilde çalışacaktır.

Windows Phone bence oyununuzu sunmayı gerçekten de düşünmeniz gereken bir platform çünkü bu platform Android kadar köklü değil ve oyun sayısı çok daha az. Düzgün bir pazarlama taktiğiyle oyununuzun çok popüler olabileceği bir platform.

Dersi yazarken yararlanılan kaynak: http://unity3d.com/pages/windows/porting

NOT: Windows Phone’a build etmek için Windows 8.1 veya üstü bir sürüm kullanıyor olmanız lazım. Başka işletim sistemi kullanıyorsanız sanal makine kurmayı düşünebilirsiniz.

Unity 5 sonrası için: Unity’i kurarken Windows Store .NET Scripting Backend modülünü de kurmayı unutmayın.

Başlamadan önce çok önemli birkaç bilgi vermek istiyorum:

– Oyununuzu Windows Phone Store‘a koymayı planlıyorsanız telefonun geri tuşunun yapacaklarını düzgünce programladığınızdan emin olun. Bu konuda hassaslar. Mesela ana menüdesiniz diyelim. Geri tuşuna basınca oyundan çıkılması uygun olur mantıken. Ya da ayarlar menüsündeyseniz geri tuşuna basınca ana menüye dönülmeli. Oyunu oynamaktaysanız geri tuşuna basınca oyunu pause etmeli ya da menüye dönmeli.

– Eğer multiplayer olarak çalışan bir oyunu Windows Phone’a build etmeye çalışırsanız başarısız olma ihtimaliniz var. Malumunuz daha Windows Phone desteği yeni geldi sayılır Unity‘e ve her class‘ı desteklemeyi başaramamışlar henüz.

– Eğer plugin kullanıyorsanız oyununuzun Windows Phone’da çalışmaması ihtimali var. Meşhur bazı pluginler (NGUI ve Toolkit2D gibi) için destek sağlanmış ama her plugin için destek yok henüz.

– Eğer Player Settings‘te Product Name‘inizde boşluk karakteri varsa bu boşluk karakter(ler)ini silin.

NOT: Windows Phone için build almadan önce tavsiyem projeyi klonlayın ve bu klon projeyi açıp onun üzerinden build alın.

Aklıma gelen bu hususlara değindiğime göre artık derse başlayalım. Öncelikle bazı uygulamalar indirmeniz gerekecek. Şu adrese girin: https://dev.windowsphone.com/en-us/downloadsdk

Unity 5 öncesi için (Windows Phone 8.0):

Earlier Releases” altındaki Windows Phone SDK 8.0‘ı kurun. Eğer Windows Phone cihazınız yoksa Windows Phone 8.1 Emulators‘ü de indirin ve kurun.

Şimdi Unity‘i açın ve File-Build Settings… yolunu izleyin. Listeden Windows Phone 8‘i seçin ve Switch Platform deyin:

resim1

Unity 5 sonrası için (Windows Phone 8.1):

Earlier Releases” altındaki Windows Phone SDK 8.1 development tools‘u indirin. Kurulum yaparken Custom seçeneğini seçin ve “Windows 8.1 and Windows Phone 8.0/8.1 Tools” seçeneğinin seçili olduğundan emin olun.

Şimdi Unity‘i açın ve File-Build Settings… yolunu izleyin. Listeden Windows Store‘u seçin, SDK‘yı Phone 8.1 yapın ve Switch Platform deyin:

resim1_1

Ardından Player Settings-Publishing Settings‘e gelin ve Certificate altındaki Create… butonuna tıklayın. Gelen pencereden sertifikaya bir şifre verin. Eğer işlemin ardından Certificate altında Select… adında bir buton belirirse ona tıklayıp Assets klasöründeki WSATestCertificate dosyasını seçin ve şifrenizi girin.

resim1_2

Eğer oyununuzu yatay ekran çalışacak şekilde build etmek istiyorsanız Player Settings…‘e tıklayın ve Inspector panelinden Resolution and Presentation altındaki Default Orientation değerini Landscape Left (ya da Landscape Right) olarak değiştirin.

Şimdi masaüstünüzde veya başka bir yerde yeni bir klasör oluşturup istediğiniz ismi verin. Oyunu Windows Phone‘a build edince Unity bu klasörün içinde gerekli birçok dosya ve klasör oluşturacak.

Unity’i geri açın ve Build Settings…‘teki Build butonuna tıklayın. Klasör seçme ekranında yeni oluşturduğunuz klasörü seçin ve build işleminin bitmesini bekleyin.

İşlem bitince yeni oluşturduğunuz klasörü açın. İçinde oyununuzun ismini taşıyan bir dosya olacak, onu açın:

resim2

Visual Studio açılacak. Sağ tarafta Solution Explorer adında bir panel var. Oradaki Properties-WMAppManifest.xml dosyasını açın (Unity 5+’da Package.appxmanifest):

resim3

Gelen sayfada Display Name kısmına oyununuzun adını, Description kısmına kısaca açıklamasını yazın. Ardından üstteki sekmelerden Packaging‘e tıklayın. Buradaki bilgileri de istediğiniz gibi değiştirin (Product ID ile Publisher ID‘ye dokunmayın).

Unity 5 öncesi için (Windows Phone 8.0):

WMAppManifest‘te dilerseniz App Icon kısmına oyununuzun ikonunu yükleyin. Sonrasında sağ taraftaki Solution Explorer‘daki WMAppManifest.xml‘e sağ tıklayın ve View Code seçeneğini seçin. Açılan sayfada <Tasks> ve </Tasks> etiketleri arasındaki XML kodunu şöyle değiştirin:

<DefaultTask Name="_default" NavigationPage="MainPage.xaml" ActivationPolicy="Resume" />

Unity 5 sonrası için (Windows Phone 8.1):

Windows Phone 8.1’de tek bir ikondan ziyade bazilyon tane farklı çözünürlükte ikon yüklemeniz isteniyor (farklı ekran dpi’ları için). Burada neyse ki işinizi birazcık kolaylaştırmak mümkün. Şu adresi açın ve Input Image‘a değer olarak yüksek çözünürlüklü ikonunuzu verin. Sonrasında Download Windows Phone (WinRT) Zip butonuna tıklayın ve bekleyin. Server ikonunuzu sizin için farklı çözünürlüklere scale edecek ve sonucu bir zip dosyasında döndürecek. Artık bu zip içindeki resimleri Package.appxmanifest‘teki Visual Assets‘te ilgili yerlere değer olarak verebilirsiniz (yalnız önce bu resimleri Solution Explorer’daki Assets klasörüne kopyalayın):

Background color: #000000

Square 71×71 logo: Assets\Square71x71Logo.png

Square 150×150 logo: Assets\Square150x150Logo.png

Wide 310×150 logo: Assets\WideLogo.png

Square 44×44 logo: Assets\SmallLogo.png

Store logo: Assets\StoreLogo.png

Badge logo: boş bırakın

Splash screen: Assets\SplashScreen.png

Eğer dilerseniz Splash screen için kendiniz özel bir grafik oluşturabilirsiniz. Bu durumda oyun açılırken bu yeni grafik ekranda gösterilir.

İşlem bitince Visual Studio‘nun üst kısımlarında yer alan iki boşluğu şu şekilde değiştirin:

resim4

Eğer oyununuzu şu an test amaçlı build ediyorsanız Master seçeneğini Debug olarak değiştirin. Böyle yaptığınız taktirde oyun ekranının sol alt kısmında bir konsol belirecek ve sizin Unity’de Debug.Log kullanarak yolladığınız konsol mesajları oyun sırasında bu pencerede gözükecek (ancak oyunun performansı gerçekten düşecek; eğer performans katlanılamaz düzeye iniyorsa Debug yapmayın).

Artık oyunu build etmeye hazırız. Build-Build Solution yolunu izleyin ve işlemin bitmesini bekleyin.

Eğer elinizde Windows Phone 8 yüklü bir cep telefonu veya tablet yoksa oyununuzu emülatörde test edebilirsiniz. Yapmanız gereken alttaki resimde gördüğünüz emülatörlerden birini seçmek:

resim5

Seçtikten sonra eskiden Device yazan yerde seçtiğiniz emülatörün ismi yazacak. O butona tıklayın ve emülatörün başlamasını bekleyin. Emülatör başladıktan sonra oyunun emülatörde açılması için de biraz daha bekleyin (eğer bir hata oluşursa tekrar Build Solution butonuna tıklamayı deneyin).

Eğer Windows Phone cihazınız varsa önce cihazınızı test için aktifleştirmeniz gerekecek. Bunu yapmak için ise Windows‘un arama kutucuğuna (fareyi ekranın en sağ üstüne getirip aşağı hareket ettirince belirir) Windows Phone Developer Registration yazın ve aynı isimle karşınıza çıkan uygulamayı çalıştırın:

resim6

Cep telefonunuzu USB kablo ile bilgisayara bağlayın. Tarih ve saatin doğru olduğundan emin olun. Telefonun ekranının kararmaması için arada bir ekrana dokunun.

Telefonu bağladıktan sonra Windows Phone Developer Registration uygulamasında sağ alttaki Retry butonuna tıklayın. Eğer telefonunuz algılanmışsa Retry butonu Register olarak değişecek. Şimdi Register butonuna tıklayın ve sizden istenen yerde Microsoft hesabınızla giriş yapın. Eğer işlem başarıyla sonuçlanırsa Register butonu yerine artık Unregister butonu olacak. Bu butona tıklamayın! (Bu kısımda sorun yaşarsanız şu linki inceleyin: http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff769508%28v=vs.105%29.aspx )

Telefonunuzu sisteme register yaptıktan sonra Visual Studio‘dan Build-Deploy Solution yolunu izleyin. Yükleme tamamlanınca oyunun cihazınızda açılması lazım. Açılmazsa cihazınızdaki tüm uygulamalar arasından kendi oyununuzu bulmaya çalışın. Oyun tüm uygulamalar listesinde yoksa bir sorun vardır, sebebini bilmiyorum.

NOT: Windows Phone uygulamaları .xap formatındadır. Bazen bu XAP dosyasına erişmek zorunda kalabilirsiniz. Örneğin Windows Phone Store‘a uygulamanızı yüklerken XAP dosyası gerekir. Bunun için:

Unity 5 öncesi için (Windows Phone 8.0):

Build Solution yaptıktan sonra XAP dosyasını şu konumda bulabilirsiniz: ProjeninOlduğuKlasör\OyununAdı\Bin\ARM\Master\OyununAdı_Master_ARM.xap

Unity 5 sonrası için (Windows Phone 8.1):

Öncelikle Windows Dev Center hesabınızda oyununuzun ismini rezerve etmeniz lazım. Ardından Solution Explorer‘da projenin üzerine sağ tıklayıp Store-Create App Packages… yolunu izleyin. Gelen listeden rezerve ettiğiniz oyunu seçip işlemi tamamlayın. Store’a upload edeceğiniz dosya şu: ProjeninOlduğuKlasör\OyununAdı\AppPackages\ARM\Master\OyununAdı_versiyon_arm_bundle_Master.appxupload

Bu dersin burada sonuna gelmiş bulunmaktayız. Başka derslerde görüşmek üzere!

yorum
  1. Erkan dedi ki:

    Yasir Hocam Merhaba,
    Ben Android teledonuma yaptığım oyunu test etmek için build&run diyorum ve telefona aktarıyorum.Oyunum tuğla kırma oyunu ve resources dosyası içinde level.txt dosyam var.Ayrıca başlaya bastıktan sonra tuğlalar ekrana geliyor.Pc ye altardığım zaman oynayabiliyorum ancak telefonumdan oynayamıyorum.Bana yardımcı olabilir misiniz?
    Teşekkürler.

  2. bünyamin yakut dedi ki:

    hocam hayırlı günler,
    Unity 2018.3 kullanıyorum, yaptığım çalışmayı WebGL’ye Build edince hata alıyorum.
    hata kodu: il2cpp.exe üzerine hata veriyor.
    Bütün çözüm yönlerini denememe rağmen bulamadım. bu konuda bana yardımcı olabilir misiniz?

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.