31 Temmuz 2012 Salı

Input Classı Ve Önemli Fonksiyonları

Bir class da daha  sizlerle beraberiz :)

İnput classıyla artık kullanıcıyla iletişime geçicez.

Tüm Fonksyionlar

http://docs.unity3d.com/Documentation/ScriptReference/Input.html
mousePosition


Adındanda anlaşılacağı üzere mouse un pozisyonuyla ilgili bir fonksyion şimdi mouseun pozisyonu demişken tabiiki 3 boyutlu uzayda çalıştığımız için x,y,z vektörlerindeki değerlini içerir.Hemen yazalım ve bulalım.


print(Input.mousePosition);


print fonksiyonunu zaten biliyoruz burda mouse un pozisyonunu konsola yazdırıyoruz mouse u hareket ettirdikçe değişecektir normal olarak evet şimdi diğer fonksiyona geçelim.

anyKey


anyKey fonksiyonu herhangi bir tuşa basıldığında gerçekleşen olayları içerir.Yani herhangi bir tuşa bassanızda yinede bu fonksiyonda belirttiğiniz olay gerçekleşir.

function Update() // İşlemiştik sürekli denetler içinde yazılan şeyleri
{
if(Input.anyKey) // şuanda işlediğimiz fonksiyon anyKey
{
print("Herhangi bir tuşa bastın yada tıkladın"); // konsola yazıyı yazdırdık.
}
}

Yukarda da gördüğümüz gibi herhangi bir tuşa bastığımızda konsola yazı yazdırdık.

GetButton


GetButton da ise belli bir tuş belirleriz ve buna basılıp basılmadığını kontrol ederiz.Ancak bu fonksiyonda özel bir durum var.Şimdi göreceğiz.

function Update()
{
if(Input.GetButton("deneme"))
{
print("Deneme tuşuna bastın");
}
}

Bunu çalıştırdığınızda hata alırsınız çünkü deneme adında bir input oluşturulmamıştır.Şimdi nasıl oluşturacağız bunu öğrenelim.Aşağıdaki resimdeki gibi.






















Buraya girdikten sonra karşınıza böyle bir pencere çıkar.






















Bu pencerede herhangi bir tuşun adını yani name kısmını deneme olarak kaydederseniz kod  işe yarayacaktır.Bu pencerede positive button kısmına istediğiniz tuşu atayın mesela L tuşu istiyorasanız onu yazın üste basınca olsun diyorsanız up yazın vesaire.


Bu fonksyionun birde Down ve Up ekleri var yani GetButtonDown GetButtonUp gibi bunlarda Downda sürekli tuşa basmak gerekir.Olayın gerçekleşmesi için Up da da mesela K tuşuna bastık elimizi çekerken belirttiğimiz olay olur.

Şimdi bunlardan çok daha kolay bir fonksiyon.

GetKey


Burda öyle hazırlamayla uğraşmaya gerek kalmadan direk tuşu belirtebiliriz bunu size tavsiye ederim diğer yol daha meşakatli ancak bazı durumlarda gerekli herneyse kullanım şekli şöyle:


function Update()
{
if(Input.GetKey("up")) // Burda inputla falan uğraşmadık yani ayarlmayla direk dedikki eğer yukarıya basarsam
{
print("Yukarı tuşuna bastın"); // bunu yap
}
}


Gördüğünüz gibi çok basit bununda Down ve Up ekleri vardır.

GetMouseButton


Bu Fonksyionda adından anlaşıldığı gibi mouse işlemleriyle alakalıdır.Kullanım Şekli:


function Update() {
    if(Input.GetMouseButton(0))
        print("SOL TIKLADIN");
    if(Input.GetMouseButton(1))
        print("SAĞ TIKLADIN");
    if(Input.GetMouseButton(2))
        print("ORTAYA TIKLADIN.");
}


Gördüğümüz gibi yazdıktan sonra eğer parantez içine 0 yazarsak sol tıklamayı ifade eder 1 yazarsak sağ 2 yazarsak orta tıklama anlamına gelir.


Bu günki  derste sona erdi.Bir dahaki derste görüşmek üzere.

30 Temmuz 2012 Pazartesi

Transform Classı Ve Önemli Fonksiyonları

Evet arkadaşlar son zamanalarda vaktim olmadığından pek uğraşamasamda bu sitede tüm classları harfi harfine açıklamak istiyorumki untyi öğrenmek isteyen bir kardeşimiz girip herşeyi öğrensin burdan evet Transform classına başlıyoruz.
Tüm referenceların olduğu link

http://docs.unity3d.com/Documentation/ScriptReference/Transform.html
Position


Position fonksiyonunda arkadaşlar nesnenin mesela bir cube ün pozisyonunu ölçeriz yazdırırz yada kullanırız.Şimdi  aşağıdaki gibi bir küp oluşturalım.

Kübü oluşturduktan sonra bir javascript dosyası oluşturalım. 



Daha sonra şuan işlediğimiz konu olan Transform classının Position fonskiyonunu nasıl kullanacağımıza bir göz atalım.Şimdi klasik olarak ilk önce önceden gördüğümüz gibi classın ismini ve kullanacağımız fonksiyonu aralarında nokta olacak şekilde yazalım.


transform.position


Yukardaki kodu tek başına yazdığımızda bir şey ifade etmez şimdi transform.position yani objenin pozisyonunu 3 boyutlu uzayda x,y,z ye göre belirleriz şimdi küpün x vektöründeki yerini ölçelim ve konsola yazdıralım.Bunun için aşağıdaki kod uygun olacaktır.




print(transform.position.x) // Bu kodu önceden görmüştür print() konsola birşeyler yazdırmaya yarar.


Şimdi yukarda naptık Cube objesinin x vektöründeki yerini bulunduğu yeri konsola yazdırdık şimdi bu scripti kaydedelim ve Cube e sürükleyelim.Daha sonra oyunumuzu başlatalım ve aşağıda kübün x vektöründeki yerinin gösterildiğini görelim.Cube ün  yerini değiştirerek x vektöründeki yerinin değerinide değişebiliriz.


Şimdi kendi başınıza bunu y ve z vektörleri için yapın.Yaptığınız kodları yoruma yazın altta ödev :)




Translate

Translate fonksiyonun türkçesi çevirmek dönüştürmek gibi anlamlara gelir biz translate fonksiyonunu bir objenin yerini değiştirmekte kullanacağız yani ilk kez sizinle beraber biz objeyi hareket ettireceğiz!

Şimdi fonksiyona başlamadan önce şunları öğreticem Update() ve Start() fonksiyonları 
Bu fonksyionlardan Update() in içine yazdığınız kodlar Unity tarafından durmadan kontrol edilir.Yani mesela konsola bir yazımı yazdırcaksınız.Mesela:print("deneme"); ekranda deneme yazar şimdi bunu Update() fonksyionu adı altında deneyelim.

function Update()
{
print("deneme");
}

Bu kodu yazarsak konsolada bakarsak durmadan yenilendiğini durmadan aynı yazının yazdığını görürüz.Şimdi translate de hareket ettirceğimiz için bunu sürekli denetleyen bir fonksiyonun olması gerekir buda Update() tir.
Hemen yazalım ve daha sonra açıklayalım.

function Update()
{
transform.Translate(1,0,0);
}
Şimdi burda naptık burda ilk önce öğrendiğimiz gibi Update() fonksiyonunu belirttik daha sonra içine şuan işlemekte olduğumuz transform classını yazdık ve Translate yazdık buraya kadar sorun yoktur umarım bundan sonra (1,0,0) yazısı şunu belirtir. (x,y,z)  yani hangi vektörde hareket ettirceğiniz size kalmış.İster x vektöründe ister y de ister z de bunu siz belirlersiniz.


Kullanım Şekli Genel olarak:

transform.Translate(x,y,z);

Tabi burda kendi kendine hareket ediyor ilerki derslerde bir tuşa basınca hareket ettirmeyi vesaire görücez.

Destroy

Evet arkadaşlar adındanda anlaşıldığı gibi objeleri scriptleri componentleri yani herşeyi yoketmeye yarar.Şimdi geçen fonksiyonda Start() ve Update() ten bahsettik fakat Start() ı kullanmadık.Şimdi Start() ı kullanacağız.


var kup : GameObject;
function Start()
{
Destroy(kup); // kup değişkeninde tanımladığımız objeyi yokettik.
}


Bu yukardaki kod ne diye şaşırabilirsinizki zaten bunu anlamışsanız çözmüşsünüzdür demektir.İlk derste değişken yaratmayı incelemiştik.Değişken tiplerinden bahsetmiştik.int,float,string gibi burda farklı bir şey gözümüze çarpıyor "GameObject". Manasındanda belli olduğu gibi oyundaki bir objeyi tanımladık.Şimdi bu kodu Main Cameraya sürükleyelim.



Burda Cube yazan yerde size Boş olacaktır oraya küp objesini sürükleyelim ve oyunu başlatalım.Gördüğümüz gibi küp objesi yokoldu.Şimdi bu kodda bir değişiklik yapalım.

var kup : GameObject;
function Start()
{
Destroy(kup,10); // kup değişkeninde tanımladığımız objeyi 10 saniye sonra yokettik.
}


Aynı kod tek fark ,10 şu ibare bu kodda da belirttiğim gibi objeyi 10 saniye sonra yokettirir.Oraya istediğiniz sayıyı yazabilirsiniz.

Evet arkadaşlar bu dersimizinde sonuna geldik sorularınız önerileriniz ne varsa yorumdan sorabilirsiniz.İyi günler dilerim bir sonraki derste görüşmek üzere


27 Temmuz 2012 Cuma

Application Classı ve Önemli Fonksiyonları

Evet arkadaşlar ufak bir giriş yaptıktan sonra apilere yavaş yavaş başlıyoruz.


Application adı üstünde uygulamayla ilgili static veriler içerir static yani global genel verileri içerir.

Tüm fonksiyonlarına bu linkten ulaşabilirsiniz.

http://docs.unity3d.com/Documentation/ScriptReference/Application.html

Evet şimdi anlatımlarımıza başlıyoruz. arkadaşlar ilk önce bu fonksiyonları nasıl kullanacağız buna bakalım.
Class -> Fonksiyon bu şekilde aktarılır. Yani bunu bir adres gibi düşünebilirsiniz. Mesela Türkiye -> İstanbul
gibi Türkiyenin İstanbul şehrini ifade eder class fonksyion bağıntısıda bunun gibidir.

Biz şuan Application Classını işlediğimiz için bunu bir ülke olarak kabul edelim ve şehirlerini öğrenmeye başlayalım.Unityscriptte bir ülkenin yani classın fonksiyonunu belirtirken arasına nokta konur.


Application.LoadLevel();


Gördüğünüz gibi Application Classını belirttik yazdık sonra nokta koyup Hangi fonksiyonunu kullanacağımızı unitye belirttik.Şimdi bu ülkenin yani Application un içindeki fonksiyonları tek tek açıklayalım.



LoadLevel();


Bu fonksiyonu bir Sceneyi yüklememize yarar yani bir leveli yüklememize yarar kullanım şeklide aşağıdaki gibidir.

Application.LoadLevel("Yüklemek istediğimiz levelin adı"); 

Gördüğümüz gibi ülkemizi yani Applicationu yazdık ardından fonksyionunu yazdık ve () işaretleri arasına "" işaretleri içinde yüklemek istediğimiz levelin ismini yazdık bukadar basit.


Quit();

Bu Fonksiyon adından anlaşılacağı üzere uygulamadan çıkmanızı sağlar.Ancak editörde işe yaramaz o yüzden oyunu yaparken çıkmaya çalışmayın ;)

Kullanım Şekli:

Application.Quit();


systemLanguage


Bu fonksiyonumuzda adından belli olduğu gibi sisteminizin yani bilgisayarınızın dilini otomatik olarak algılar.

Kullanım Şekli:

print(Application.systemLanguage);

Önceden gördüğümüz print(); fonksiyonunu görmekteyiz içindeki kod ise sistemin dilini algılar ve sonuç olarak ekrana yani konsola sistemin dilini yazdırmış oluruz.

loadedLevelName


En son yüklenen levelin ismini yazdırır.

Kullanım Şekli:
print(Application.loadedLevelName)

Yine konsola yazdırıyoruz busefer en son yüklediğimiz levelin ismi.



Bu dersimizinde sonuna geldik sorularınızı yorum kısmından sorabilirsiniz.

Başlamadan Önceki Açıklamalar

Arkadaşlar Unity de apileri göstereceğim fakat apileri javascriptte kodlayacağız yani c# yada Boo dilinde değil bu yüzden Unity nin unityscript veya javascript olarak adlandırılan söz dizimli diline bir giriş yapmamız gerekiyor.Açıklayacağımız classlarda ve fonskiyonlarında beraberinde kullanacağımız kelimelerin anlamlarını ve giriş mantığını öğreneceğiz.


Unityscriptte de her dilde olduğu gibi değişken tanımlama ve değişkeni gerekli yerlerde kullanma vardır.
Değişkeni tanımlamak için başına "var" kelimesini getiririz.evet şimdi ilk değişkenimizi tanımlayalım ilk kodumuz.


var deneme;




Yukarıda başına var getirdiğimiz kelime artık bir değişkendir ve bu değişkeni her türlü herde kullanabiliriz.
Değişken tiplerine geçelim değişken tiplerinde int,float,string gibi tipler olduğu gibi unitye özel tiplerde vardır bunları ilerki derslerde açıklayacağız.

var deneme : int;



Yukarda ilk yazdığımız kodun aynısını yazdık sonrada : koyduk ve int yazdık bu değişkenimizin int yani integer türkçesiyle bir tamsayı olacağını ifade ettik.Gördüğünüz gibi çok kolay "var" yazdıktan sonra değişkenimizin ismini yazıyoruz ve : koyduktan sonra tipini yazıyoruz.Aşağıda değişkenlerin isimleri anlamları ve kullanıldıkları alanları gösterdim.




int - > integer - > tamsayı 
float -> ondalık sayı
string - > sayı değil bir kelime yi ifade eder.






Şimdi Aşağıdaki gibi bir Javascript dosyası oluşturalım.


Değişken oluşturmayı öğrenmiştik şimdi bu değişkeni oluşturacağız değer vereceğiz ve unitynin konsolunda yazdıracağız.

Evet arkadaşlar Javascript dosyasını açtığımıza göre yazmaya başlayabiliriz.

var deneme: int;
deneme = 20;

Evet arkadaşlar yukarda naptık önceden yaptığımız gibi bir değişken oluşturduk ilk satırda ikinci satırdada artık değişkenimiz oluştuğu için değişkene bir değer atadık yani şöyle düşünelim bir kutu aldık bu kutunun tamsayı olmasını istedik ve kutuya 20 sayısını attık.Şimdi bu kodda deneme değişkeni 20 değerini aldı ancak bunu nasıl oyun içinde anlayabiliriz.Unitynin kendine has bir konsolu vardır unity çok geniş bir dünya gibidir.
Şimdi kodumuzu biraz geliştirelim.


var deneme: int;
deneme = 20;
print(deneme);


Evet aynı kodu yazdıktan sonra print(deneme) adında birşey yazdık bu nedemek açıklayalım print in türkçe karşığı yazdır dır.Birşey çıkartırıken yazı vesaire görmüşsünüzdür.print komutuyla unitye konsolunda print fonksiyonun içinde belirttiğim değeri yazdır emrini veriyoruz.print() komutunun içine deneme yazdığımız için 20 değerini alacaktır oyunu başlattığınızda sol altta 20 değerini görürsünüz tabi scripti main cameraya atmayı unutmayalım.
Giriş Dersi bukadardı değişken tanımlamayı yazdırmayı öğrendik.Apileride bir yandan açıklamaya devam edeceğim sorularınız olursa yorumlardan aşağıdan sorabilirsiniz.

Site Bilgilendirme

Arkadaşlar sitede hergün unity 3d reference dan yani apiden classları açıklayacaz ve anlatacaz hergün farklı bir class la ve o classın fonksiyonlarıyla karşınızda olacağım.