Yazan: "unity"
unity etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler

Bu dersde resimdeki gibi grid sistemi nasıl oluşturulur onu inceleyeceğiz.

İlk olarak ben şu şekilde bir proje oluşturdum.
Beyaz çerçevenin içini ilk resimdeki gibi 1,2,3,4,5...17,18 gibi level butonları ekleyeceğiz.İlk olarak beyaz çerçeveme yani "LevellarCerceve" diye oluşturduğum resim dosyamın Image componentini siliyorum ve Grid Layout Group compenentini ekliyorum.

Daha sonra Cercevemin içine 10 tane buton oluşturuyorum.
Şimdi grid ayarlarını yapacağız fakat bu ayarlara fazla takılmayın çünkü asıl ayarları script ile halledeceğiz.Bunu sadece görüntünün kötü gözükmemesi için yapıyorum.Siz isterseniz böylede bırakabilirsiniz.
Şimdi geçelim kodumuza.Ama ilk olarak neden koda ihtiyaç duyuyoruz onu göstermek istiyorum.Şuan bu ekran boyutunda gridde hiçbir sıkıntı yok tam istediğim gibi fakat ekranı büyütünce bakalım ne olacak?
Gördüğünüz gibi gridin boyu ekran boyutuyla ilişkili olmadığı için ekran büyüyünce boyutlar artmıyor ve bu yüzden küçük kalıyor.
Şimdi bunu nasıl çözceğimize bakalım.
Kodumuzu inceleyelim ve iyice anladığımızdan emin olalım.Kodumuzu Cercevemizin içine atalım.
Şimdi ise projemizi çalıştıralım ve sonuca bakalım
Grid sistemimiz olmuştur.Yalnız start fonksiyonuna yazdığımız için kodumuzu oyun başladıktan sonra ekran çözünürlüğü değişirse yine küçük kalacaktır fakat böyle bir sorunu oyuncular yaşamaz(Dikey ekranda oynarken yatay ekrana geçmezse)



Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler

Can sıkıntısından yaptığım analog saat projesi.Cihazın saatini alarak çalışır.

Projeyi indirmek için:
https://yadi.sk/d/63NztWXRuJySm


Kod Resmi:

Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
Anchor unity UI objelerde çıkan kulakçıklardır.Aşağıdaki resme bakacak olursanız kulakçıklardan kastımı daha iyi anlayabilirsiniz.
Bu kulakçıklar koyduğumuz UI objesinin tüm çözünürlüklerde sabit kalmasını sağlıyor.Mesela biz kulakçıkları kullanmadan menü yaptık diyelim.Yaptığımız menü unityde düzgün durabilir ama daha büyük ekranlı telefonlarda yada daha küçük ekranlı telefonlarda menüler büyük yada küçük kalabilir bu durumuda aşağıdaki resimlere bakarak görebilirsiniz.
İlk Olarak anchor nasıl kullanılmaz

İlk resimde anchorları tam ortaya almıştık, ikinci resimde ise sadece çözünürlüğü küçülttüm ve gördüğünüz gibi beyaz çizgi nasılda büyüdü.Yani bu ne demek oluyor?
Diyelimki iphone ekran boyutu üzerinden projemizi yapıyoruz ve oyunumuzu yayınlıyoruz.İphoneda hiçbir görüntü bozukluluğu olmaz ama biz onu başka telefona attığımızda mesela Samsung galaxye attığımızı düşünelim ekran çözünürlükleri aynı olmadığı için görüntü resimlerdeki gibi büyüyecek yada küçülecektir.Şimdi doğru kullanıma bakalım
Anchor nasıl kullanılır

Anchoru tam köşe noktalara getirdiğimizde gördüğünüz gibi ekran boyutu ne olursa olsun çizgi hep aynı ölçüde kalır.Telefonu ister yatay çevirin ister dikey, ister samsungda açın oyunu isterseniz iphone'da hiçbir şekilde görüntü bozulmayacaktır.

Anchor Nasıl Ayarlanır?
Anchoru kulakçıkları mavi yuvarlaklara sürükleyerek ayarlayabilirsiniz.Fakat bu yöntem ile kulakçıklarınız tam mavi yerin üstüne gelmez ve ufakda olsa kayma yaşarsınız ikinci ve en iyi yöntem ise 
Resimde gördüğünüz gibi panelin inspectoründe anchor diye bölüm var orda kordinat düzlemiyle anchorların yerini değiştirebiliyoruz.Bu değerler 0 ile 1 arasında olmak zorundadır.Mesela ortayı almak istiyorsak 0.5 olmalı.Yukarıdaki resmi inceleyelim minimum değerler en alt sol noktayı gösteriyor, maksimum değerler ise en üst sağ noktayı.Diğer 2 nokta ise otomatik olarak yerleşiyor.
Şimdi örnek yapalım panelin boyutunu küçültelim
Anchorun üst kısmındaki değerler önceden 0dı şimdi kulakçıklarımızın yerini değiştirdik ve sayılar büyüdü peki bu neden? O ölçüler mavi noktalarla kulakçıklarımız arasındaki mesafeyi gösterir.Yani mavi noktalar kulakçıkların üstünde olmadığı için 0 değiller.O değerlerin hepsini sıfır yapalım ve sonucu görelim
Gördüğünüz gibi mavi noktalar hiç boşluk kalmayacak şekilde kulakçıkların olduğu yere yerleşti.
Şimdi bu panelin içine bir tane resim oluşturalım.

Birşey dikkatinizi çektimi az öncede değerleri min 0.25, max 0.75 girmiştik fakat panelin boyutu daha büyük olmuştu fakat şimdi oluşturduğumuz resmin boyutu daha küçük oldu peki neden?
Bunun cevabı Panel canvas içindeydi ve maksimum noktası canvasın boyutları kadar olabiliyordu, şimdi oluşturduğumuz resim ise panelin içinde ve maksimum değeri panelin boyutu kadar olabiliyor.
Yani sıralamayı şöyle düşünürsek
Canvas<Panel<Resim
Panelin maksimum ve minimum noktası = Canvasın boyutu
Resmin maksimum ve minimum noktası = Panelin boyutu

Resimdede gördüğünüz gibi resmin minimum noktasını 0,0 yaptığımda ve maksimum noktasını 1,1 olarak ayarladığımda tam panelin boyutunda oluyor.




Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
Datetime'ı kullanabilmek için ilk olarak "using System;" kütüphanesini ekliyoruz.Daha sonra kodumuzu inceliyoruz.

Analog saat projesine buradan bakabilirsiniz:
http://unityturkce.blogspot.com.tr/2016/08/unity-analog-saat-projesi.html
Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
Merhabalar..Bu sefer PlayerPrefi inceleyeceğiz.İlk Olarak nedir bu playerpref?

PlayerPref:
Unitynin bize hazır olarak sunduğu fonksiyon olan playerpref bize 3 adet farklı değişken kaydetmemize yarıyor.
Bu değişkenler float, int ve stringdir.

Kaydetme işlemini yapmak için örneğin string ile örnek yapalım.
Örneğin bir karakterin pozisyonunu kaydetmek istiyoruz ama playerprefe sadece tek değer atayabiliyoruz bunu nasıl yaparız dersenizde aşağıdaki resmi inceleyin
Skor kaydetme örneği


Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
Unity 3D ile Yarışma Oyunu Yapımı


İlk Olarak 2D Proje açarak başlıyoruz.Boş sahnemize Canvas ekliyoruz ve Canvas ayarlarında bulunan Render Mode'u "Screen Space - Camera" yapalım.Bu işlemden sonra birkaç satır altında bulunan "Render Camera" seçeneğine tıklayarak cameramızı seçiyoruz.Bu sayede Canvasımızı kameraya sabitlemiş olduk.
2. Adım olarak Canvasa panel ekliyoruz ve bu aşamadan sonra tasarımıza başlayacağız.
İlk olarak sorumuzu yazacağımız çerçeveyi hazırlıyoruz.Panelin içine Image istiyoruz ve bu image'in içinede text istiyoruz.
Şimdilik sorumuzu yazacağımız çerçeveyi boşverip şıkların butonlarını yapacağız.İlk olarak altdaki resimde gördüğünüz gibi image oluşturuyoruz.Image'e tıklayarak Inspectorden Image compenentini kaldırıyoruz.
Şimdi yapacağımız işlem grid oluşturmak.Aslında 4 buton için grid oluşturmaya gerek yok ellede koyabiliriz fakat ben düzenli olması için grid kullanıyorum.Siz ellede tek tek ayarlayabilirsiniz.Oyunumuzun ilerleyen zamanlarında bu grid için kodda yazacağız.Bunun sebebi ekran boyutu büyüdükçe yada küçüldükçe grid için girdiğimiz değerler küçük ve büyük gelecektir ve kötü görünüm oluşacaktır.Yani gridin ayarları tam ekrana uysun diye uğraşmayın bunu kod bizim için otomatik ayarlayacak ilerki zamanlarda.


Yukarıdaki resimde CevapButonları isimli gameobject e 4 tane Image attığımı görmüşsünüzdür.Siz 4 Adet Image oluşturmayın direk Button oluşturun.Çünkü bende Imagelerin içine ButtonCompenenti ekledim.

Şuan oyunumuz yukarıdaki resimdeki gibi sadece tasarımını oluşturduk ve daha hiç kod yazmadık.Artık kod kısmına girmenin vakti geldi.İlk olarak _GameManager.cs İsimli c# scripti oluşturuyoruz ve açıyoruz.

Resimdeki gibi kodlarımızı yazıyoruz.Bu kodda yapmak istediğimiz sahnede oluşturduğumuz soru çervesini ve butonları kodumuza tanımlamak.Image,Panel,Canvas vs.. Bu tür objeler UI olarak geçtiği içinde "using unityEngine.UI" kütüphanesini eklememiz gerekiyor.
Şimdi yapacağımız işlem editöre geri dönüp boş bir GameManager isimli obje oluşturuyoruz.Bu objeye az önce oluşturduğumuz _GameManager isimli kodumuzu atıyoruz ve tanımlamaları yapıyoruz.
Şimdi ise Soru isimli c# scripti oluşturuyoruz ve kodları aşağıdaki resimdeki gibi yapıyoruz.


Oyunumuzu nerdeyse ortaladık.Şimdi yapacağımız işlem soru listesi oluşturmak bunun içinde SoruListesi.cs isimli C# scripti açıyoruz ve kodu aşağıdaki şekilde yapıp Sahnemizdeki boş obje olarak duran GameManager objesine sürüklüyoruz.

GameManagerdan sorularımızı ekliyoruz.İster hepsini şimdi ekleyin isterseniz bitince ama deneme yapacağımız için 2-3 adet soru eklemenizde fayda var.
Şimdi işimiz birazdaha zorlaşacak._GameManager script dosyasını açıyoruz ve aşağıdaki gibi güncelliyoruz.

Biraz uzun bir güncelleme oldu ama az kaldı.Şimdi Oyunumuza yani sahnemize dönelim ve GameManagerdan butonlarımızı tanımlayalım.


Bittimi? tabiki hayır :) Şimdi her butonumuza tek tek tıklayarak CevapAl fonksiyonumuza eşitleyeceğiz.
AButonu numarası = 1
BButonu numarası = 2
CButonu numarası = 3
DButonu numarası = 4
Disabled color renginide beyaz yapmaya unutmayalım.


Şimdi neler yapmışız görmek için bi test edelim.
Şimdi yapcağımız şey, doğru cevap verdiğimizde yeni soru gelmesi yanlış cevap verdiğimizde ise oyunun yeniden başlaması.Ama ilk olarak SoruVer fonksiyonunu aşağıdaki gibi değiştirelim bu sayede bir soru aldığımızda o soru listeden silinecek ve birdaha karşımıza çıkmayacak.
Şimdi ise cevapKontrol fonksiyonunda ufak bir oynama yapacağız ve doğru cevap verdiğimizde yenisoru alabileceğimiz fonksiyon oluşturacağız.Bu fonksiyon ile kapattığımız butonları tekrar açıyoruz ve yeni soru istiyoruz.Daha önce yaptığımız oyunbaslat fonksiyonunu sadece oyun başlarken kullanacağız.

SoruVer() fonksiyonunda yine küçük bir güncelleme yaptım bu sayede soru bittiği zaman oyun yeniden başlayacak tabiki siz başka birşeyler yaptırtabilirsiniz.

Bu derslikde bu kadar.Projeyi aşağıdan indirebilirsiniz.Oyunu geliştirmesi size kalmış ister puan tablosu ekleyin ister süre belki ilerleyen derslerde bunlarıda yaparız ama şuanlık sadece mantığını göstermek istedim.

Edit: Şıkların grid sisteminin kodunu yapmayı unutmuşum :) Hemen onuda ekleyelim._GridManager isimli c# scripti oluşturuyoruz ve resimdeki gibi scripti yazıyoruz ve Gridimizin objesinin içine atıyoruz.

Projeyi indirmek için(Unity sürümüm 5.4.0f3):
https://yadi.sk/d/ux7WU0R6uHGt8







Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
 Ara arada olsa 1 aydır üzerinde çalıştığım oyunum Dice- Puzzle Game Windows ve Android için yayınlandı.Oyunu yapma amacım ilk defa bir android oyun yapıyor olmam ve ilk unity projem olduğu için kendimi geliştirmekti.Yaparken bir çok şey öğrendim. Bunları da zamanla burda paylaşmayı düşünüyorum.




   Oyunun kaynak kodlarında paylaşacağım eğer incelemek isteyen olursa Github da yayınladım ordan indirebilirsiniz. Android için ve Windows işeltim sistemli cihazlarınıza indirebilirsiniz . Yorum yapmayı unutmayın iyi oyunlar:)


no image
Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
Başlığa tam olarak ne yazacağımı bilemedim konuda biraz karışık zaten. Benimde bu konuyla tanışmama yeni projemde yaşadığım sorundan sonra oldu. Bu konu hakkında türkçe kaynak yok.İngilizce kaynaklarda daha çok soru cevap şeklinde bulabildim.

Konumuza gelecek olursa konuyu daha iyi anlamak için Rotate fonksiyonundan bahsedeceğim.Bildiğiniz gibi rotate fonksiyonu bir objenin istediğimiz bir yönde dönmesini sağlıyor.Şöyle bir senaryo düşünelim.Bir küpümüz var bu küpü ok yönü ile sağa sola aşağı yukarı şekilde 90 derece döndürüyoruz.

Koda olarak göstermek gerekirse örneğin sağ yön tuşuna bastığımızda şu kodla döndereceğiz.



Diğer yönleride böyle küpün ne tarafa dönmesi göre yaptığımızı düşünelim.Oyunu çalıştırdığımızda döndermeye başladağımızda bir sorun olduğunu farkedeceksiniz.Bir sağa bir aşağı yön tuşuna bastığınızda aşağı deği yana doğru doksan derece döndüğünü göreceksiniz işte bunun sebebi dönme hareketinin locale göre olması yani dönme merkezi olarak küpü alıyor.Bu yüzden bunu worlde göre yapmamız gerekiyor.Onu bu Rotate de yapmak rotate fonksiyonuna Space.World ekliyoruz. 


Şimdi geldik asıl konumuza yine bir örnek üzerinden ilerileyelim. Benim yapmakta olduğum bir proje var. Bu projede bir zarımız var ve yön tuşlarıyla sağa sola aşağı yukarı birer birim ilerleterek 90 derece dönderek ilerletiyorum.Bunun da doğal bir görüntü olması için Vector3.MoveTowards ve Quaternion.RotateTowards kullanıyorum.

Direk kullanıldığımızda Rotate fonksiyonundaki sorunu yaşıyorum.Ama bunda direk Space.World ile dönmeyi world yapamıyoruz.Bunun yerine Quaternion.AngleAxis ile kendi rotatinumuzun çarpımı ile yapıyoruz.şimidi dönme için kodaları yapalım.

  • İlk önce Quaternionları tanımlayalım.




    • Daha sonra update fonksiyonu içinde RotateTowards ile döndürmeyi ayarlayalım.

    • En son olarakta yön tuşları ile AngleAxis ve konumları alalım.
    Önemli nokta RotateTowards daki rotR*eski çarpım bu konumu world yapıyor.Bunu aynı şekilde diğer Quaternion fonksiyonları içinde kullanabilirsiniz.
    no image
    Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
    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
         }
         }
        Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
        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.

        no image
        Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
        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.
        no image
        Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
        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.
        no image
        Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
        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.
        Sosyal ağlar ve web tasarımıyla ilgili bir blog ve unity hakkında hersey dunya hakkında bir dunya bilgi ve FreeSpritler
        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.