13 Aralık 2015 Pazar
Unity - Sahneler arası geçiş
Posted by
ugur,
on
14:04
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.
- 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.
11 Aralık 2015 Cuma
Unity-Yansıma yapmak
Posted by
ugur,
on
19:46
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.
- 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
Unity- Invoke
Posted by
ugur,
on
23:59
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");
}
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");
}
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
Posted by
ugur,
on
14:26
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
Posted by
ugur,
on
00:01
Unity de istediğimiz tuşa basıldığında bir olayın gerçekleşmesini sağlaya biliriz.Bunun üç farklı çeşidi vardır.
- GetKey - Basıldığı sürece çalışır
- GetKeyDown - Basıldığında sadece 1 kere çalışır.
- 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.
}
{
//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.
}
{
//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.
}
{
//Yapılacak işlemler buraya yazılır.
}
12 Kasım 2015 Perşembe
Unity Force - Objeyi kuvvetle hareket ettirmek
Posted by
ugur,
on
19:49
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;
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
Windows Phone Yorum yap ve Mail at Butonu eklemek
Posted by
ugur,
on
23:31
Yorum yap
- İlk önce aşağıdaki referans kodunu ekliyoruz.
- Sonra yorum adında bir async void bir metot yazıyoruz.
using Windows.ApplicationModel.Store;
private async void yorum()
{
await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-windows-store:reviewapp?appid=" + CurrentApp.AppId));
}
{
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();
}
{
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);
}
{
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();
}
{
mail();
}
Kaydol:
Kayıtlar
(
Atom
)