Uğur Kubat

Bir geliştiricinin not defteri

23 Ocak 2016 Cumartesi

Unity-Çarpışma Algılamak

5 yorum
Unity de bir objenin diğer objeye çarpmasını anlamak için Collision veya Trigger kullanılır.Bu ikisinin temel farkı Triggerde objemizin objelerin içinden geçebilmesidir.

  • Collision

Collisionun çalışması için Colider componentinin ve rigidbody  ekli olması gerekir.3 tür fonksionu vardır.

             OnCollisionEnter
OnCollisionEnter bir objenin çarpma durumunda 1 kere çalışır.

void OnCollisionEnter(Collision col) {
 //her hangi bir objeye çarptığında çalışır
 if (col.gameObject.tag == "Cupe") {
 //tagı Cupe olan bir objeye çarptığında çalışır
 }
 if (col.gameObject.name == "Cupe") {
 //ismi Cupe olan bir objeye çarptığında çalışır
 }
 }

            OnCollisionStay
OnCollisionStay bir objenin çarpma durumu sürdüğü sürece çalışır.

void OnCollisionStay(Collision col) {
 //her hangi bir  objeye çarptığında çalışır
 if (col.gameObject.tag == "Cupe") {
 //tagı Cupe olan bir nesneye çarptığında çalışır
 }
 if (col.gameObject.name == "Cupe"){
  //ismi Cupe olan bir objeye çarptığında çalışır
 }
 }
            OnCollisionExit
OnCollisionExit bir objenin çarpma durumu bittiğinde 1 kere çalışır.

void OnCollisionExit(Collision col) {
 //her hangi bir objeye çarpmayı bıraktığında çalışır
 if (col.gameObject.tag == "Cupe") {
 //tagı Cupe olan bir objeye çarpmayı bıraktığında çalışır
 }
 if (col.gameObject.name == "Cupe")  {
 //ismi Cupe olan bir objeye çarpmayı bıraktığında çalışır
 }
 }


  • Trigger

Trigger çalışması için Colider componentinin ve rigidbody  ekli olması gerekir.Ayrıca Colider componentinin içindeki Is triggerin işaretli olması gerekir .3 tür fonksionu vardır.

             OnCollisionEnter
OnTriggerEnter bir objenin çarpma durumunda 1 kere çalışır.

 void OnTriggerEnter(Collider col)
    {
        //herhangi bir objeye çarptığında çalışır

        if (col.gameObject.tag == "Cupe")
        {
          //tagı Cupe olan bir objeye çarptığında çalışır
        }
        if (col.gameObject.name == "Cupe")
        {
            //ismi Cupe olan bir objeye çarptığında çalışır
        }
    }

            OnCollisionStay
OnTriggerStay bir objenin çarpma durumu sürdüğü sürece çalışır.

void OnTriggerStay(Collider col) {
 //her hangi bir objeye çarptığında çalışır
 if (col.gameObject.tag == "Cupe") {
 //tagı Cupe olan bir objeye çarptığında çalışır
 }
 if (col.gameObject.name == "Cupe") {
 //ismi Cupe olan bir objeye çarptığında çalışır
 }
 }
            OnCollisionExit
OnTriggerExit bir objenin çarpma durumu bittiğinde 1 kere çalışır.

void OnTriggerExit(Collider col) {
 //her hangi bir objeye çarpmayı bıraktığında çalışır
 if (col.gameObject.tag == "Cupe") {
 //tagı Cupe olan bir objeye çarpmayı bıraktığında çalışır
 }
 if (col.gameObject.name == "Cupe") {
 //ismi Cupe olan bir objeye çarpmayı bıraktığında çalışır
 }
 }

14 Ocak 2016 Perşembe

Unity-Parçacık Sistemleri

Hiç yorum yok
Parçacık sistemleri unity de efekt vermede kullanılır. Ateş,duman,buhar,havai fişek  gibi efektler yapılabilir.
Ayrıca Unitynin kendi hazır parçacık sistemler assetsi vardır. Assets menüsünden import package den particle systems seçilerek eklenebilir.
Şimdi bir parçacık sistemin ayarlarını yazacağım.İlk olarak GameObject menüsünden particle systems ekliyelim .Inspector penceresinde parçacık sisteminin componentlerini ve ayarlarını görebiliriz.
                                                     particlesystems

  • Duration: Parçacık sisteminin parçacık üretme süresini belirler.5 yazarsak 5 saniye parçacık üretilip durmasını sağlar.
  • Looping: Parçacık sisteminin sürekli olarak tekrar etmesini ve üretimin durmamasını sağlar. Durationla belirlediğimiz saniyede bir tekrar baştan başlar.
  • Prewarm: Parçacık sisteminin sanki önceden çalışıyormuş 2. defa tekrarlanıyormuş gibi çalışır.Loopingin açık olması gerekir.
  • Start Delay: Parçacığın belirlenen saniye sonra başlamasını sağlar.
  • Start Lifetime: Parçacıkların yaşama süresini gösterir. 5 saniye ise 5 saniye sonra üretilen parçacık yok olur.
  • Start Speed: Parçacıkların hızlarını gösterir.
  • Start size: Parçacıkların boyutunu gösterir.
  • Start Rotation: Parçacıkların yönünü belirtir.
  • Start Color: Parçacıkların rengini belirler.
  • Gravity Modifier: Parçacıklara yer çekimi ekler.
  • Simulation Space: Parçacığın kordinatlarının objeye göremi yoksa uzaya göremi olmasını belirlememizi sağlar.
  • Play On Avake: Oyunun çalıştığında otomotik olarak çalıştırılıp çalıştırılmayacağını belirlememizi sağlar.
  • Max Particles: Aynı anda yaşayabilecek parçacık sayısını gösterir.
Bu ayarların bir çoğunun yanında küçük üçgen var bunlarla o özelliğin ayar çeşidi seçiliyor.
                                                Curve
  • Constant: Default olarak gelen ayar çeşididir.Sabit bir değer girmemizi sağlar.
  • Curve: Değerin aşağıdaki grafikten ayarlanmasını sağlar.Üretim zamanına göre nasıl bir değer alacağını kolayca ayarlayabiliriz.
  • Random Between Two Constants: 2 farklı sabit değer girmemizi ve bu değerler arasında parçaçık üretilmesini sağlar.
  • Random Between Two Curve: 2 farklı grafik yapmamızı ve bu grafikler arasındaki değerler ile parçacık üretilmesini sağlar.
Bundan sonraki ayarları hem yanlarındaki kutucuktan seçmemiz hemde ayarlarını yapmamız gerekir.
  •   Emission: Parçacık üretilmesini sağlayan özelliktir altaki ayarlardan harekete göre veya zamana göre üretilmesi sağlanır.
  1. Rate: Üretilecek parçacık çokluğunu belirtir ne kadar fazlaysa parçacık okadar fazla üretilir.
  2. Time: Parçacığın zamana göre üretilmesini sağlar.Alttaki + işareti ile belli bir zamanda daha fazla üretilmesi sağlanabilir.
  3.  Dizstance: Parcacığın hareket ettirildiğinde üretilmesini sağlar araba egzoz vs  gibi yapılarda kullanılır.Simulation spacenin World olması gerekir.
  • Shabe: Üretilecek parçacıkların dağılma şeklini ve alanını belirler.
  • Velocity over Lifetime:  İstediğimiz yöne doğru hız vermemizi sağlar.
  • Force over Lifetime: İstediğimiz yöne doğru kuvvet uygular.
  • Color over Lifetime: Parçacığın rengini süreye göre değişmesini sağlar.
  • Color by Speed: Parçacığın renginin hıza göre değişmesini sağlar.
  • Size over Lifetime: Parçacığın boyutunun zamana göre değişmesini sağlar.
  • Size by Speed: Parçacığın boyutunun hıza göre değişmesini sağlar.
  • Rotation over Lifetime: Parçacığın yönünü  zamana göre değişmesini sağlar.
  • Rotation by Speed: Parçacığın yönünü  zamana göre değişmesini sağlar.
  • Renderer: Görüntünün oluştuğu bölümdür açık olmassa ekranda görüntü oluşmaz.Mesh ve materiali burada eklenebilir.