Uğur Kubat

Bir geliştiricinin not defteri

15 Kasım 2015 Pazar

Unity- Invoke

Hiç yorum yok
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

Unity - Temel Fonksiyonlar

Hiç yorum yok
     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

Unity - Tuş Atama

2 yorum
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

Unity Force - Objeyi kuvvetle hareket ettirmek

Hiç yorum yok
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.