Menu

Unity3D ve C#

A Game Developer's Notebook

Linkedin

String Değer-Tipinde mi Referans-Tipinde midir?

C# bildiğinizi iddia ederek gideceğiniz herhangi bir iş görüşmesinde, bu soruyla karşılaşabilirsiniz. C#’ta stringler referans tipli mi, yoksa değer tipli midir?

(more…)

GameObject.CompareTag()

Yakaladığımız bir collision’ın hangi obje olduğunu anlamak için onun tag’ine bakarız. Tag karşılaştırırken izlenen yanlış bir yol garbage oluşturacaktır. Bu yazımda Unity’de garbage oluşturmadan tag karşılaştırma konusuna değineceğim.
(more…)

EventTrigger PointerDown

Senaryo şöyle; bir butonun üzerine tıklandığında, yani pointer down olduğunda içine 2 int yollanan fonksiyonumuz tetiklensin.

Unity UI 4.6’da bir butonun, yalnızca OnClick event’ına erişebilmekteyiz. Ayrıca buraya Unity Editör’den manuel olarak ekleyebileceğimiz fonksiyonların içine birden fazla değişken yollayamıyor olmamız da baş ağrıtan bir diğer durum. Peki bahsi geçen senaryoyu gerçekleyebilmek için ne yapacağız?
(more…)

Enum’ı Generic Olarak Kullanmak

C#’ta normal şartlar altında bir generic tipi enum olarak belirtmek istersek şunu kullanmamız gerekirdi. Ne yazık ki enum için bu işe yaramıyor. Bunun sebebiyse, enum’ın özel bir tip olarak davranması ve Microsoft’un bunu henüz implemente etmemesi.

(more…)

AudioSource.PlayClipAtPoint: Perde Arkasında Neler Oluyor?

Küçük aralıklarla, küçük sesleri çalmak için kullanılan bir metod; “AudioSource.PlayClipAtPoint(Audio, Position)”.

Gelin perde arkasını inceleyelim.

(more…)

-1 ya da 1 Sayılarını Rastgele Üretme

Senaryo der ki, “bana rastgele -1 ya da 1 üret”. Hadi bu senaryoyu gerçekleyelim.

Öncelikle kısa bir beyin fırtınası yapalım. Rastgele olarak 0 ve 1 sayılarını kolayca üretebiliriz.

Ürettiğimiz bu sayıyı 2 ile çarpıp 1 çıkarırsak, -1 ya da 1 sayılarını elde etmiş oluruz.

İşte bu kadar. 🙂

Bir Unity 4.6 UI Nesnesi İle Çalışırken Bilinmesi Gereken 4 Önemli Kural

1 – Bir dünya ekran genişliği var. Peki ben bu ekranın pixel türünden boyutlarını nasıl öğrenebilirim?

(more…)

Unity UI 4.6 Üzerine

Unity’de oyun geliştirirken, Unity’nin bize performans konusunda en çok sorun çıkarabilecek yanı, arayüzü. Yani UI’ı… Çok fazla söz ebeliği yapmadan, Unity UI 4.6 kodlarken edindiğim deneyimi sizinle paylaşmak isterim.
(more…)

Obje Havuzu (Object Pool)

Gelin geçmişe gidelim ve ekranda 3 mermiden fazla bulunmasına izin vermeyen Space Shooter’ları hatırlayalım. Neden 3 mermi kısıtlaması getirmiş olabilirler? Elbette cevap gün gibi ortada. Donanım sahnede 3 mermiden fazlasının hareketine izin vermiyordu. Oyun dünyası, donanım dünyasıyla doğru orantılı olarak büyüdü. Ancak bu şu demek değil, “zaten kasmaz, performassız kod yazsak da olur!”. Bu düşülebilecek en büyük yanlış. Kasmayacak diye savurganca kod yazamayız. Savurganca kod yazmamanın en temel kurallarından birine değineceğim bugün. Object Pooling. Yani obje havuzu… Yaklaşım bize şöyle der; (more…)

Ondalık Sayıların Ondalık Kısımlarını Yuvarlama

Bazı ondalık sayıların ondalık kısımları can sıkabiliyor. Örneğin size gereğinden fazla hassasiyetle pozisyon döndüren bir fonksiyon… Bu fonksiyon size ondalık kısmı yalnızca 1 haneden oluşan sayılar döndürsün isteyebilirsiniz. Bunu da System.Math.Round(double number, int digits) fonksiyonu ile kolayca yapabiliyoruz. Sözü fazla uzatmadan mouse’umuzun pozisyonunu yuvarladığımız örneğimizi paylaşalım. (more…)