Projection | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar projection

Unity3D ile sahneye saat ve gerisayım eklemek

27 January 2016 Yorum yapılmamış

Bu makaleyi okumadan önce Unity3D Kategorisindeki diğer makalelerimi okumanızı tavsiye ederim.

Bu makale sonunda sahneye saati ve 60 saniyeden geri sayımı gösteren iki yazı koyabileceksiniz.

Öncelikle Unity3D‘yi açarak bir oyun projesi oluşturuyoruz;

Hierarchy panelinden Main Camera nesnesini seçiyor ve Projection özelliğinde Ortographic değeri olduğunu kontrol ediyoruz. Scene alanında tam kamera’nın arkasından bakmak için GameObject menüsü altından Align View to Selected menüsüne tıklıyoruz.

Sahneye bir Text nesnesi eklemek için Hierarchy panelinde boş bir yere sağ tuşla tıklıyor ve UI kategorisi altından Text menüsünü seçiyoruz.

Oluşturulan Canvas ve Text‘in kamera’nın gördüğü alanın içerisinde olmasını sağlamak için Canvas seçili iken Render Mode özelliğine Screen Space – Camera değerini giriyoruz. Ayrıca Render Camera özelliğine Hierarchy panelinden Main Camera nesnesini sürükleyip bırakıyoruz.

Hierarchy panelinden Text nesnesini seçip Inspector panelinde gözüken Rect Transform kategorisi altından sahnede gözükeceği konumu belirliyoruz. Örneğin sahnenin sol üst köşesinde olması için left sütunu ile top satırının kesiştiği hücreye tıklıyoruz.

Hierarchy panelinde gözüken Text nesnesine isim olarak TimerText değerini verdikten sonra Edit menüsü altından Duplicate seçeneğini seçerek aynı nesneden bir tane daha oluşturuyoruz.

Yeni oluşturduğumuz Text nesnesine isim olarak CountdownText verip, sahnenin sağ üst köşesine hizalıyoruz.

Her iki Text nesnesinin de Inspector panelinden erişilebilen Font, Font Size ve Color değerlerini değiştirerek, sahnede büyük beyaz harfler gösterecek hale getiriyoruz.

Hierarchy panelinden Canvas nesnesini seçip Inspector panelinden Add Component butonuna tıklıyoruz ve New Script seçeneğini seçiyoruz.

Canvas nesnesine eklediğimiz yeni script’e TimeManager ismini verebiliriz.

TimeManager.cs dosyasını açarak için aşağıdaki kodları yazıyoruz;

using System;
using UnityEngine;
using UnityEngine.UI;

public class TimeManager : MonoBehaviour
{
	Text timerText;
	Text countdownText;

	float countdownTo = 60.0F;

	void Start()
	{
		timerText = GameObject.Find("TimerText").GetComponent<Text>();
		countdownText = GameObject.Find("CountdownText").GetComponent<Text>();
	}

	void Update()
	{
		countdownTo -= Time.deltaTime;

		if (countdownTo > 0)
		{
			countdownText.text = countdownTo.ToString();
		}

		timerText.text = DateTime.Now.ToString("hh:MM:ss");
	}
}

Öncelikle Start() methodunda ismi TimerText ve CountdownText olan iki nesneyi bulup içlerindeki Text elementlerine erişiyoruz ve bunları birer değişkende saklıyoruz. Böylece daha sonra bu nesnelere kolay bir şekilde erişebileceğiz.

Update() methodunda 60 saniyeden geri sayma yapabilmek için countdownTo değişkeninden geçen süreyi çıkartıyoruz ve elde ettiğimiz değeri sahnedeki CountdownText nesnesinde gösteriyoruz.

Son olarak Update() methodunda DateTime sınıfının Now özelliğinden elde ettiğimiz değeri saat:dakika:saniye formatına çeviriyoruz ve sahnedeki TimerText nesnesinde gösteriyoruz.

Eğer oyunu başlatacak olursak 60 saniyeden geri sayım ve bilgisayarın saati ekranda gözükecek;

Unity3D ile oyun geliştirme ortamını tanımaya başlamak

23 January 2016 Yorum yapılmamış

Unity3D cross-platform bir oyun geliştirme aracıdır. Unity3D‘yi kullanarak geliştirdiğimiz oyunu çok basit bir şekilde Windows, Android, iOS, Linux, Xbox, Playstation, vs. ortamlarına yükleyebiliriz.

logo

Öncelikle http://unity3d.com/get-unity adresinden Unity3D kurulum dosyasını indiriyoruz ve bilgisayarımıza kurulumu gerçekleştiriyoruz.

İsmi Unity3D olmasına rağmen, 4.3 versiyondan itibaren 2D oyunlar da yapabilmemize olanak tanıyan yeni yapılar içeriyor. Böylece 2D oyunları da Unity3D‘yi kullanarak yapabiliyoruz.

Unity3D‘yi açıp, hemen yeni bir oyun projesi oluşturalım;

Pencerenin üstünde yeralan New butonuna tıklıyor, gelen ekrandaki alanları doldurarak oyun projemizi oluşturuyoruz.

00

Unity3D editörü karşımıza geliyor. Editör‘ün içinde yeralan panelleri istediğimiz gibi özelleştirebiliyoruz. Böylece oyun projesindeki dosyaları pencerenin altına değil soluna yerleştirmemiz veya oyun sahnesini küçültüp oyunun önizlemesini ekrana koymamız mümkün.

01

Unity3D Editörünün panellerine hızlıca bakalım;

  • Hierarchy: Oyun sahnesinde bulunan tüm nesnelerin listesinin gözüktüğü panel. Yeni bir oyun projesi oluşturduğunuzda bu panel’de Main Camera nesnesi gözükür. Eğer sahneye Cube, Sphere, Cylinder, Spotlight, vs gibi nesneler ekleyecek olursak, bu panel’de listelenecekler. Bu panel’de listelenen nesneleri sürükleyip diğer bir nesnenin içine bırakarak nesneleri birbirleri ile ilişkilendirebilir ve parent/child yapısı oluşturabiliriz.
  • Scene: Oyun alanını bu alanda görür, modeller, tasarlarız. Herhangi bir nesneyi sahnede bulmak için Hierarchy panelindeki ismine çift tıklamamız yeterli.
  • Project Assets: Oyun içerisinde kullanabileceğimiz herşey (Texture, 3D Model, Script, vs) bu panelde listelenir. Bu panelde yeralan dosyalar oyun projesinin diskteki dizini ile birebir aynıdır. Oyun projesinin dizininde yeni bir dizin veya dosya oluşturursak aynı anda Project Assets panelinde gözükmeye başlar.
  • Inspector: Hierarchy veya Scene panellerinden seçilen nesne veya nesnelerin özelliklerini görebildiğimiz ve değiştirebildiğimiz paneldir. Inspector paneli sayesinde bir nesnenin oyun sahnesindeki konum, boyut, renk, kaplama, vs gibi özelliklerini görebilir, değiştirebiliriz.

Unity3D‘de bir oyun sahnesi oyuncuya kamera’nın bakış açısından gösterilir. Böylece ekrandan daha büyük alanlarda hareket etmek için aslında kamera’yı hareket ettiririz. Unity3D bir oyun projesi oluşturduğumuzda bizim için sahneye bir tane kamera (Main Camera) ekler. İstersek biz de sahneye ikinci veya üçüncü kameralar ekleyebiliriz.

02

3D oyunlarda kamera’nın Projection özelliği (kamera seçili iken Inspector panelinde görüntülenir) Perspective seçili iken, 2D oyunlarda kamera’nın Projection özelliği Ortographic seçili olmalıdır.

03

Eğer istersek Hierarchy panelinde görüntülenen nesnelerin isimlerini değiştirebiliriz, bunun için ilgili nesnenin üzerine sağ tuşla tıklayıp Rename menüsünü seçmemiz yeterli. Böylece Directional Light nesnesinin ismini Güneş olarak veya Cube nesnesinin ismini Sandık olarak değiştirebiliriz.

04

Unity3D‘de sahnede olan bir nesneye kendi özelliklerinin dışında yeni özellikler eklemek istiyorsak Inspector panelinde bulunan Add Component butonuna tıklamalı ve gelen listeden eklemek istediğimiz özelliğe göre bir öğeyi seçmeliyiz. Örneğin; Cube nesnemizin yerçekimi kanunlarına uymasını istiyorsak nesneye Rigidbody component’ını eklemeliyiz.

05

Eğer sahneye yeni nesneler eklemek istiyorsak basitçe Hierarchy panelinde boş bir yere sağ tuşla tıklayıp 3D Object menüsü altından Cube, Sphere, Cylinder, vs seçerek sahneye ekleyebiliriz.

06

Hierarchy panelinde sahneye eklediğimiz birden fazla nesneyi başka bir nesnenin içerisine sürükleyip bırakarak bir bütün olarak ele alınmalarını sağlayabiliriz. Böylece birlikte hareket ettirilip, birlikte döndürülebilir veya boyutlandırılabilirler.

07

Project Assets paneli içerisinde boş bir alana sağ tuşla tıklayıp oyun projesine yeni dizin, yeni script dosyası, yeni materyal, vs eklemek mümkün.

08

Genelde Project Assets panelinde ismi Scenes olan bir dizin oluşturulur ve oyun’daki sahneler bu dizine kaydedilir.

09

Eğer aktif sahneyi oynamak istiyorsak Unity3D editörü ekranının üstünde yeralan başlat (oynat) butonuna tıklanır ve oyun kamera’nın bakış açısından oynanmaya başlanır.

10

Oyuna eklemek istediğimiz çeşitli nesneler veya özellikler ile ilgili daha önce oluşturulmuş paketleri oyuna Assets menüsü altında bulunan Add Packages alt menüsü içerisinden ekleyebiliriz. Böylece oyuna hızlı bir şekilde ağaçlar, deniz, çeşitli arabalar, efektler veya duman / alev / havai fişek gösterisi, vs ekleyebilmemiz mümkün.

11