Uğur Kubat

Bir geliştiricinin not defteri

24 Aralık 2015 Perşembe

Unity - Instantiate ile sahneye obje kopyalama

1 yorum
Bir objeyi karakteri veya herhangi bir prefapı sahnemize kopyalamak için Instantiate fonksiyonu kullanılır.Bu fonksiyonla aynı türden düşmanlar,mermi vs üretilip kullanılabilir.
Bir nesnemizi sahneye kopyaladığımız bir örnek yapalım.

  • İlk olarak kopyalamak için bir obje seçelim ve bir tane C# script oluşturup sahnemizde bulunan bir objenin üstüne taşıyalım.
  • Daha sonra scriptimize sınıf seviyesinde kopyalanacak obje için bir Transform yazalım. 
public Transform obje;

  • Oyun başladığında objenin sahneye kopylanması için start fonksiyonuna kopyalama fonksiyonun yazalım.
void Start()
{
 Instantiate(obje, new Vector3(0, 0, 0), Quaternion.identity);
 }

  • En son olarak da kopyalanacak olan objeyi scripteki objenin üstüne atalım ve oyunu çalıştralım.
Oyun çalıştığında objenin sahnenin 0,0,0 noktasında kopyalandığını görebilirsiniz.İyi çalışmalar.

20 Aralık 2015 Pazar

Unity - Look At

Hiç yorum yok
LookAt fonksiyonu bir objenin  bir diğer objeye doğuru dönmesini ona bakmasını sağlar.
  • İlk önce hangi objenin hangi objeye doğru bakacağını belirliyoruz.(bakacak objemiz düşman karakter veya kamera vs olabilir)
  • Bir script açıyoruz ve sınıf düzeyinde bakılacak objenin Transformunu tanımlıyoruz.

public Transform hedef;

  • Daha sonra Update fonksiyonunda aşağıdaki kodlarla objemizin belirlediğimiz objeye dönmesini sağlıyoruz.
 void Update()
    {
        transform.LookAt(hedef);
    }
  • En son olarak bu scripti bakacak olan nesnenin üstüne atıyoruz ve hedef Transformuna bakılacak nesneyi atıyoruz.
İyi çalışmalar.

16 Aralık 2015 Çarşamba

Unity - Vector3.Lerp

Hiç yorum yok
Vector3.lerp  bir objeyi belli bir saniyede belli bir konumdan belli bir konuma götüren fonksiyondur.

  • İlk olarak  objenin başlangıç ve bitiş konumlarını sınıf düzeyinde tanımlıyoruz.
public Vector3 baslangıc=new Vector3(0,0,0);
public Vector3 bitis=new Vector3(100,0,0);

  • Daha sonra Update metodunda aşağı kodlarla objenin 10 saniyede başlangıçtan bitiş noktasına gitmesini sağlıyoruz.
void Update ()
{
transform.position = Vector3.Lerp(baslangıc, bitis, Time.time*0.1f);
}


  • Bu koddaki 0.1f 10 saniyeyi ifade eder bu sayı değeri 1f olduğunda 1 saniyeyi 10f olduğunda 0.1 saniyeyi yani ters orantı vardır.
İyi çalışmalar.

13 Aralık 2015 Pazar

Unity - Sahneler arası geçiş

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

Unity-Yansıma yapmak

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