Uğur Kubat

Bir geliştiricinin not defteri

13 Aralık 2015 Pazar

7 yorum

Unity - Sahneler arası geçiş

Oyunlar genelde farklı bir çok level ve farklı sahnelerden oluşur.Bu farklı level ve sahneler arasında geçiş unityde nasıl yapıldığını göstereceğim.


  • Sahne1 ve Sahne2 adında 2 tane sahnemiz olduğunu ve sahne 1 den sahne 2 ye geçmemiz gereken bir senaryo düşünelim.
  • İlk olarak bu sahneleri File-Build Settings menüsünden Add Current butonu ile  build edilecek sahnelere ekleyelim.
                                       Build settings


  • Daha sonra belirlediğimiz senaryoya göre şartın gerçekleştiği yere aşağıdaki kodu yazalım.(Şartımız bir nesnenin bir nesneye çarpışması,enerjimizin bitmesi ,bir tuşa veya butona tıklanması vs olabilir )
Application.LoadLevel(1);
veya
Application.LoadLevel("Sahne2");


  • Buradaki bir sahneleri eklediğimizde her sahneye verilen numaradır.İki şekilde de kullanabilirsiniz bir fark yoktur.
İyi çalışmalar.

11 Aralık 2015 Cuma

Hiç yorum yok

Unity-Yansıma yapmak

Unityde ayna veya güvenlik kameraları gibi bir yerin görüntüsünü başka bir yere yansıtmak için Render Texture kullanılıyor.Kamera ile aldığımız görüntüyü nasıl bir objeye yansıtıldığını göstereceğim.

  • ilk önce Project-Create-Render Texture yolu ile Render Texture üretiyoruz.Sonra yine aynı yolla bir meterial üretip Render texture yi üretien meterialin Albedo kanalına atıyoruz.


 

  • Daha sonra görüntüsü yansıtılıcak kameranın Target texturesine bu Textureyi atıyoruz.
     Target Texture

  • Daha sonra hazırladığımız meteraili yansıtılacak objeye atıyoruz.Kamerada render edilen görüntü o objenin üzerine kaplanacaktır. Bu yöntemle oyun içinde bir ekran ayna veya  herhangi bir yansıma yapabiliriz.

15 Kasım 2015 Pazar

Hiç yorum yok

Unity- Invoke

Unityde belli zaman aralıklarıyla belli bir fonksiyonu çalıştırmak için Invoke fonksiyonları kullanılır.

                                       Invoke

  • Belli bir zaman sonra fonksiyonu çalıştırmaya yarar.
  • Aşağıdaki örnekte 2 saniye sonra  konsola oldu yazdırır.
void Start () {
 Invoke("yaz", 2);
 }
 void yaz() {
 Debug.Log("oldu");
 }

                                   InvokeRepeating

  • Belli bir zaman sonra belli aralıklarla fonksiyonun çalışmasını sağlar.
  • Aşağıdaki örnekte 2 saniye sonra her bir saniyede konsola oldu yazdırır.
void Start () {
 InvokeRepeating("yaz", 2, 1);
 }
 void yaz() {
 Debug.Log("oldu");
 }

                                       CancelInvoke

  • InvokeRepeating fonksiyonun sonlanmasını sağlar.
  • Aşağıdaki kodu InvokeRepeating ile çalıştırdığımız fonksiyonun durmasını sağlar.
CancelInvoke();

14 Kasım 2015 Cumartesi

Hiç yorum yok

Unity - Temel Fonksiyonlar

     Unity deki çalışma zamanlı bazı fonksiyonları yazacağım.

                                       Awake

  • Bu fonksiyon sahne yüklendiğinde ilk çalışan fonksiyondur.
  • Bir kere çalışır.
  • Ayrıca bu fonksiyonun en önemli özelliği yazdığımız script aktif olmasa dahi çalışmasıdır.

                                       Start

  • Update fonksiyonu ilk kez çalıştırılmadan önce çalışır.
  • Bir kere çalışır

                                     Update

  • Her framede(oyun karesi) 1 kere çalışır.
  • Bilgisayar işlem hızına göre çalışma aralığı  değişebilir.
  • En sık kullanılan Update çeşitidir.

                                FixedUpdate

  • Sabit süre aralıklarıyla çalışır.
  • Bilgisayar işlem hızından etkilenmez.

                                 LateUpdate 

  • Update fonksiyonuyla aynı özelliklere sahiptir.
  • En son çalışan update fonksiyonudur.
  • Daha çok kamera ile bir nesneyi takip ettiğimiz durumlarda kullanılır.

13 Kasım 2015 Cuma

2 yorum

Unity - Tuş Atama

Unity de istediğimiz tuşa basıldığında bir olayın gerçekleşmesini sağlaya biliriz.Bunun üç farklı çeşidi vardır.
  1. GetKey - Basıldığı sürece çalışır
  2. GetKeyDown - Basıldığında sadece 1 kere çalışır.
  3. GetKeyUp - Elimizi tuştan kaldırdığımızda 1 kere çalışır.

                                         GetKey

Update metodu içinde aşağıdaki kodlarla istediğimiz tuş basıldığı sürece istediğimiz işlemlerin yapılmasını sağlayabiliriz.


if (Input.GetKey (KeyCode.LeftArrow))//KeyCode ile hangi tuş olduğunu belirliyoruz.
{
//Yapılacak işlemler buraya yazılır.
 }

                                     GetKeyDown              

Update metodu içinde aşağıdaki kodlarla istediğimiz tuşa bastığımızda istediğimiz işlemlerin yapılmasını sağlayabiliriz.                                                      
if (Input.GetKeyDown (KeyCode.LeftArrow))//KeyCode ile hangi tuş olduğunu belirliyoruz.
{
//Yapılacak işlemler buraya yazılır.
 }

                                         GetKeyUp

Update metodu içinde aşağıdaki kodlarla istediğimiz tuşa basmayı bıraktığımızda istediğimiz işlemlerin yapılmasını sağlayabiliriz. 
if (Input.GetKeyUp (KeyCode.LeftArrow))//KeyCode ile hangi tuş olduğunu belirliyoruz.
{
//Yapılacak işlemler buraya yazılır.
 }

12 Kasım 2015 Perşembe

Hiç yorum yok

Unity Force - Objeyi kuvvetle hareket ettirmek

Unity de nesneye kuvvet uygulamak için Rigibody içinde bulunan Force fonksiyonu kullanılır. Bu yazıda Force fonksiyonuyla bir sphere(küre) objesinin nasıl hareket edileceğini yazacağım.


  • İlk olarak yeni bir unity projesi açıp sphere objesi oluşturuyoruz.
  • Objeye kuvvet uygulaya bilmek için sphere objesine Rigibody componenti ekliyoruz.
  • Daha sonra yeni bir c# scripti açıyoruz.
  • Dışarıdan hızı ve Rigibody tanımlamak için public olarak sınıf içinde tanımlıyoruz.

public float hız ;
public Rigidbody rg;

  • Start fonksiyonunda rg ye Rigibody componentini tanımlıyoruz.
rg = GetComponent<Rigidbody>();

  • En son olarak hangi yönde kuvvet uygulanacağını Update fonksiyonu içinde hangi yönde kuvvet uygulanacağını yazıyoruz.
rg.AddForce(Vector3.right*hız);

  • Yukardaki kodu oyunumuza göre şartlara bağlıyarak kullanabiliriz mesela bir tuşa basıldığında hareket etmesi için veya bir eşya çarptığında hareket etsin gibi.
  • Daha sonra unity içinden sphere eklediğimiz Rigibodyi scripteki Rigibodye sürüklüyoruz.Hızıda oyunumuzda istediğimiz hıza göre bir sayı veriyoruz.

18 Eylül 2015 Cuma

Hiç yorum yok

Windows Phone Yorum yap ve Mail at Butonu eklemek

                        Yorum yap 


  • İlk önce aşağıdaki referans kodunu ekliyoruz.
  • using Windows.ApplicationModel.Store;
  • Sonra yorum adında bir async void bir metot yazıyoruz.
private async void yorum()
{
await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store:reviewapp?appid=" + CurrentApp.AppId));
 } 

  • Sonra buttonun click eventine yorum metotunu çağırıyoruz.
private void HyperlinkButton_Click_1(object sender, RoutedEventArgs e)
{
 yorum();
 }

                        Mail at

             
  • İlk önce aşağıdaki referans kodunu ekliyoruz.
using Windows.ApplicationModel.Email;
  • İlk önce mail adında bir async void bir metot yazıyoruz.
private async void mail()
{
EmailRecipient alici = new EmailRecipient() { Address = "mail@yaz.com" };
EmailMessage mail = new EmailMessage();
mail.Subject = "Başlık";
mail.To.Add(alici);
}

  • Sonra buttonun click eventine yorum metotunu çağırıyoruz.
private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
{
mail();
}