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:
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:
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.
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:
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):
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:
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:
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:
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!
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.
Resources’a erişirken PC’de de Android’de de Resources.Load kullanılıyor, kodunuz PC’de çalışıyorsa, sıkıntı başka bir yerde olabilir. Oyununuzu debug edip hata alıp almadığınıza bakın derim: https://yasirkula.com/2015/10/13/unity-android-oyunlarinizi-debug-etmek/
Hocam bütün hataları düzelttim sadece bu uyarı kaldı.
“Build completed with a result of ‘Succeeded’
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)”.Ancak bunu bir türlü yok edemedim.Oyunu usb ile build&run yaptığımda.Topumu,pedalı her şeyi görüyorum ancak hala taşları göremiyorum.
Teşekkürler.
“Oyun ‘Başarılı’ bir şekilde build edildi” diyor, yani bu güzel bir şey. Taşların gözükmemesi neden bilmiyorum, oyun esnasında hata alıp almadığınızı kontrol edebilirsiniz: https://yasirkula.com/2015/10/13/unity-android-oyunlarinizi-debug-etmek/
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?
Aldığınız hata mesajlarının tamamını yasirkula@gmail.com‘a gönderebilirsiniz.