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… Read more Obje Havuzu (Object Pool)

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.

Böylece, faremizin kordinatlarını yuvarlayan bir çalışma yapmış olduk.… Read more Ondalık Sayıların Ondalık Kısımlarını Yuvarlama

Bir Objenin Bir Vektöre Göre Konumunu Bulma

Karşılaştığım ilk andan itibaren beni heyecanlandıran ve çözdüğümde kendimi harika hissetmeme sebep olan bir problemi paylaşacağım sizlerle. Bir noktanın, bir vektöre göre konumu. Bu nokta vektörün sağında mı, yoksa solunda mı? Üstteki görselde neler oluyor, biraz ondan bahsedelim. StartPoint’ten EndPoint’e doğru bir doğrumuz var. Bu doğrunun ucu olarak Pointer objesini yerleştirdik. Pointer objesi doğrunun büyüklüğünü… Read more Bir Objenin Bir Vektöre Göre Konumunu Bulma

LineRenderer’a Bir Liste İçinde Sakladığımız Pozisyonları Nasıl Ekleriz?

Bir LineRenderer’ın pozisyon listesine, bir obje koordinatı listesini yollayacağız.

Gördüğünüz gibi, DrawMap fonksiyonu içine CubeTransforms listemizi yolladık. Yolladığımız bu listenin boyutu kaç ise LineRenderer’ın positions dizisini o kadar genişlettik. Ardından listemizin içinde gezerek, sırası ile pozisyonları LineRenderer’ın pozisyon dizisine set ettik. Harita verisi veren bir web servisten kordinat verisi çektiğinizi düşünün. Veriyi doğru alıp… Read more LineRenderer’a Bir Liste İçinde Sakladığımız Pozisyonları Nasıl Ekleriz?

Bir Ray İçin Birden Fazla Layer’ı Göz Ardı Etmek (Ignoring Multiple Layers)

Yolladığımız bazı ray’lerin bazı layerlardaki objelerle etkileşime girmemesini isteriz. Peki bunu nasıl yaparız? Cevabı paylaşıyorum ve ardından kodu açıklıyorum.

RaySource objesinden Target(hedef) objesine doğru bir ray atacağız. Ray’imizin çıkış noktası objemizin orta noktası. Dolayısıyla atacağımız ray objemize de içten değecek. Yani objemizin bulunduğu layer’ı göz ardı etmemiz gerek. İte bu yüzden, Player Layer’ında bulunan… Read more Bir Ray İçin Birden Fazla Layer’ı Göz Ardı Etmek (Ignoring Multiple Layers)

Ortographic Kamera’nın Yükseklik ve Genişlik Değerlerini Bulma

Ortographic bir kameranın yüksekliği ve genişliğini şöyle buluruz.

 

Birden Fazla Değişken Alan Coroutine’lere Bir Bakış

Bir coroutine’i iki şekilde başlatabiliriz. Birinci yöntemi aşağıda paylaşıyorum.

Move coroutine’i player’ımızı verdiğimiz başlangıç noktasından ulaşmasını istediğimiz noktaya doğru hareket ettiriyor. Mouse’umuzun sol click tuşuna bastığımızda coroutine’imizin durdurulmasını ve player’ımızın da durmasını beklemekteyiz. Ancak deneyecek olursanız, coroutine’leri bu yöntemle başlattığınızda durduramadığınızı görürsünüz. Peki bu sorunu nasıl aşacağız? Coroutine’leri, onlara birden fazla değişken yollayarak, şöyle de başlatabilirsiniz.… Read more Birden Fazla Değişken Alan Coroutine’lere Bir Bakış