Bu bölümde oyuna background ekleyeceğiz . Karakterimizi ilerletmek yerine backgroundu geri saracağız. O halde hemen başlayalım . Projemizi açtıktan sonra herhangi bir background indiriyoruz . Bunu unitye sürüklüyoruz .Boyutlarını scene ekranında ayarladıktan sonra hierarchy kısmından backgrounda gelip duplicate yapıyoruz (Yani kopyalıyoruz ). Duplicate işlemini Background objemiz seçili iken “ctrl + D” tuşlarına basarak yapıyoruz .
Duplicate işlemi bittikten sonra scene ekranında ikinci backgroundumuzu seçerek v tuşuna basılı tutuyoruz daha sonrasında bir kare çıkıyor . V tuşunu bırakmadan bu kareyi istediğimiz köşeye getiriyoruz . Sol click tuşuna basılı tutup yapıştırmak istediğimiz köşeye sürüklüyoruz. Ve bu sayede iki haritamızda arasında boşluk kalmadan birbirine yapışıyor .
Şimdi ise hierarchy kısmından boş bir gameObject oluşturup adını Harita1 yapalım ve 2 backgrounduda bu gameObjectin içine atalım .
AddComponent kısmından “Rigidbody2d” ve “BoxCollider2D” ekliyoruz . Ardından “Rigidbody2D” deki gravity scale i 0 yapıyoruz . Bu sayede yerçekimi kuvveti 0 oluyor . Bu işlemi yaptıktan sonra “BoxCollider2D” deki isTrigger butonunu aktif hale getiriyoruz ve Harita1 i duplicate edip ismini Harita2 diye değiştirelim . Harita2 yide v tuşu ile harita1 in yanına sabitleyelim.
Kısaca mantığından bahsetmek istersek şöyle açıklayabiliriz . Harita1 ve Harita2 objemiz x ekseni üzerinde – yöne doğru gidecek . Ve belli bir pozisyondan sonra iki haritada tekrar başlangıç noktasına dönecek . Kodumuzu yazmaya başlayacağımız için hemen bir C# scripti oluşturuyoruz ve bir tanede boş obje oluşturuyoruz . C# scripti oluşturduğumuz boş objeye atıyoruz.
Yukarıdaki kodlar sayesinde haritalarımız bir döngü halinde devam ediyor . Bu kodların mantığını kısaca anlatacağım fakat anlamanız için kendinizde en az bir iki kere denemelisiniz .
satır 27 ye kadar bildiğiniz şeyler var zaten daha sonrası döngünün kodları . Unityde haritaların sürekli geri gittiğini düşünelim ve bir noktadan sonra tekrardan başa dönmesi gerekli ki sonsuz bir haritaymış gibi gözüksün . Peki 29. ve 36. satırlarda ki iflerin sonucunda ne yaptık .
Harita1 kameranın dışına çıktığı anda harita2nin başına geliyor . Devamında harita2 ekrandan gittiğinde harita1in başına geliyor ve böylece sonsuzluğa gidiyor . yani biz harita1 i harita2nin başına yollamak için harita1in pozisyonunu uzunluk diye düşündük . “transform.position += uzunluk*2” komutuyla da harita1 imizin pozisyonunu harita2nin başına yolladık .
diğer if durumunda da aynısının harita2 versiyonunu yaptık . Ve sonsuz bir döngü oluşturduk .