You are on page 1of 55

SONGÜNCELLEME:10Ocak2016

Bukı
lavuzSül
eymanYasi
rKULAt
araf
ındanhazı
rl
anmı
ştı
r/hazı
rl
anmakt
adı
r.

Bl
ogumagi
tmekiçi
ntıkl
ayı
n:ht
tp:
//yasi
rkul
a.com
E-mai
l:yasi
rkul
a@yahoo.
com

-
-KOMUTLARNASI
LOKUNMALI-
-
Ör neği n" I
nstantiat
e(obje:GameObj ect,
pozisyon:Vect or3,rot
asyon:
Quat ernion)"(Tekniktabir
lebugöst ermeMet
i hodSi gnaturedenir)komut unu
(met od)eleal alı
m.Bur adagörüldüğüüzer ebumet od3par ametre(argüman)
almakt a:obje, pozi
syonver otasyon.Buar gümanl arınhemensağı ndaikinokta
işar eti':
'bulunmakt aveonundasağı ndabuar gümanl arınalmasıgerekent ür(
type)
yazmakt a;yanisırası
yla:GameObj ect,Vector3veQuat erni
on.Bumet odukendi
oyunumuzdakul l
anır
kenisetürünüyazmayager ekyokt ur(yazı
lmamal ı
dırda
zat en) ;yaniörneğinInstanti
atemet odu"Instanti
ate(gameObj ect,
transf or m.positi
on,Vector3.
zero);"şekli
ndekul l
anılabili
r.

NOT:Bukı l
avuzdayeral anher hangibirör
nekkoddaeğerki""( Tı
rnak)işaret
leri
varsa,koduUni t
y’eyapıştırdı
ktansonraot ı
rnakişaretl
eriniherbiri
nisil
invet ekrar
ell
et ı
rnakişaret
igir
in.ÇünküMSWor d’
ün‘tı
rnakişaret
i’Uni t
y’ni
nalgıl
adığı‘t
ırnak
işaret
i’
ndenbi çi
mcef arklıvebuyüzdeneğert ı
rnakişaretleri
nikendini
z
düzenlemezseni zUnitytarafı
ndan‘ bi
li
nmeyenkar akter’hatasıalı
rsı
nız.(EKLEME:
Yapt ı
ğım bir
kaçayarsonucusanı rı
m bununüst esindengel dim.Artı
kböyl ebi
rhat a
çıkacağınısanmıyorum amayi nedebuyazıbur adakalsı n.)
COMPONENTLER
Transf
orm:Bi robj
eni
n3boyut luuzaydakikonumunun, eği
mini
nve
boyutl
andır
ması nı
n(Herhangibireksendekiboyutol
arakuzamayadakısal
ma
miktar
ı)
(Scale)depol
andığı
,tüm GameObj ect'
l
erdeort
akolanComponent

RigidBody:Fi
zikol
ayl
arı
nınbi
robj
eyesağl
anması
nısağl
ayanComponent(
örneği
n
yerçeki
mi)

Coll
ider:Bi
robjenint
emasedi l
ebi l
irolankısıml
arınıayarlayanComponent .Bu
component ’
t I
eki"sTrigger"seçeneğiişaretleni
rse,herhangibi robje;buobjeyl
e
temashâl i
negeçincedur maz,içindengeçer .Farkbudur .Ayrıcabusef er
"Col
lisi
on"fonksi
yonlarıyeri
ne" OnTr i
gger"fonksiyonl
arıkullanıl
ır.

NOT:Eğerbirobjeiçi
nMeshCol l
iderkul
lanıyor
san,buobjenormalşart
lar
da
başkaMeshCol l
ider'
asahipobjelerl
etemaset mez.AncakeğerikiMeshColl
ider

n
dabirbi
ri
ylet
emaset mesiniist
iyorsanobjeninInspect
orpanel
indeMesh
Coll
ider

nalt
ından"Convex"iseç.

AudioListener:Birsahnedesadece1t aneolmalı
dır
.Oyunmekanındakit
üm ses
dosyaları,buobjeninyakınl
ığı
na,temasınavb.şeyl
eri
negöre,
yanibuobjeyegöre
duyulur,dinl
enir.Birbaşkadeyişl
eAudioList
enercomponent'
i
nesahipolanobje,
oyuncununoyundakikul ağı
dır.

MeshRenderer
:Objeyisahnedeçizdi
rmeye,yanionugör
ünürkı
lmayayar
ayan
Component
.Eğerbaşındakiti
kişaret
ikal
dır
ıl
ır
saobjegör
ünmezolur.

Trai
lRenderer:Objeninhareket
iesnası
ndaar kasındanbi rşeritçı
kmasınısağl
ar.
Örneğinuçakları
nkanat l
arı
ndançıkanizisi
müleet medeyada" TronEfsanesi
"
fi
lmindeki
,arkasındandüzşer i
tçı
karanmot osi
kletlerdekigibii
zçıkarmada
kull
anıl
abi
li
r.Mat eryalol
arakgenel
dePar ti
külmat eryall
erikull
anı
lır
.

Audi
oSource:Birobjeyiseskaynağıolar
akyetki
lendi
ri
r.Objeni
nsesçı
karabi
lmesi
i
çinbucomponent '
esahi polmasıgerekl
idi
r(asl
ı
ndabucomponent '
ikul
lanmadan
dasesçalmayayar ayanbirmetodvarancakgenelanlamdasesçal makiçi
nbu
component'
inkull
anılmasınıt
avsiyeederi
m).AudioSourcecomponent
'i
nesahipbi
r
obj
ebir
dençoksesçal abil
ir
,kı
sıt
lamayoktur.

Fi
xedJoint
:İkiobjeyibi
rbi
ri
nebağlamayayar ar.Ancakikiobj
ear
asındaher
hangibi
r
har
eket
liol
ayol maz.Sadeceiki
sibit
işi
kti
r.Objeler
iniki
sini
ndeRi
gidBody’
esahi
p
ol
masıgerekli
dir
.

HingeJoint:İ
kiobjeyibirbir
inebağl
ar.Busef erayr
ıcaikiobj
ear
asında,hareket
esnasındagerçekçihareketlibi
rbağl
antıoluşur.Tı
pkıdönüpduranbirzinci
ri
n
halkal
arıgi
bi.Objel
erinikisi
nindeRigidBody’esahipol
masıgerekl
idi
r.
DEĞİ
ŞKENLER(
VARI
ABLE)
publi
cvar:Başkascr
ipt
lert
araf
ındanul
aşı

pdeği
şti
ri
lebi
li
rveI
nspect
or'
da
gözükebi
li
r.

pr
ivat
evar
:Başkascr
ipt
lerer
işemezveI
nspect
or'
dadeğer
igözükmez.

stat
icvar:Budeği şkenlerözeldi rvebirobjedensahnedekaçt aneol ursaol sunbu
değişkendensadece1t anevar dır
.ÖrneğinDusmanadı ndabirclass(script)olsun.
Oyununbi rzorl
uksevi yesiolsunvebuzor l
ukseviyesitüm düşmanl ariçi
ngeçer li
ol
sun( publi
cstaticvarzor luk).Oyundakaçt anedüşmanol ursaolsunt üm
düşmanl ari
çintekbi rzorlukdeği şkenibulunmakta,yanizor l
uğundüşmandan
düşmanadeği şmegöst ermesimümkündeği l.Budurumdabust at
ikdeği şkene
ul
aşmaki çi
ndirekt"zorluk"diyedeği şkeninadıkull
anıl
mazda" Dusman. zor l
uk"diye,
değişkendenöncecl ass'ınismiyazı lı
r(stati
kdeğişkenleriçağır
madakur alböyledir).
Örnektendegör üleceğiüzer est ati
kdeğişkenlerpubli
cveyapr i
vateolabilir
.

***Birdeğişkenindeğer i
niInspect
or'dandeğişt
ir
irsenodeğişkenindeğeri
script'
tekideği
ldeI nspector'
dakivarsayı
lar
akalınır
.Ayr ı
caI
nspector’
dan
değişti
r di
ğinbirdeğişkenindeğerisadeceInspector’dadeği
şir
,scri
pti
n
kendisindekivarsayıl
andeğerdeği şmez!BudaUni ty’ni
nönemliözel
li
kler
inden
bir
idir.
** *

***
Bi rdeği
şkenadıküçükharf
lebaşl
ar.Ayr
ıcaörneği
n"beni
mAdi
m"şekl
indekibi
r
değişkenadıInspect
or'
da"Beni
m Adim"şekli
ndegözükür
.**
*

*
**Bi
rfonksi
yonadıbüyükhar
fl
ebaşl
ar.
***

**
*Birclass(
Sını
f)
(Scri
pt)(
Birdençokfonksiyonunvedeği
şkeni
ndepol
andı
ğı
bi
rimlerdedi
yebil
ir
iz.
)adıbüyükharf
lebaşlar.
DEĞİ
ŞKENTİ
PLERİ
NOT:Bur
adagöst
erdi
ğim deği
şkenti
pleridı
şındadahabazil
yontanedahadeği
şken
t
ürübul
unmakt
a.Budeğişkenl
erikul
lanakull
anaöğreneceksi
niz.

i
nt:Tamsayı

f
loat
:Vi
rgül
lüsayı

doubl
e:fl
oat
't
andahabüyüküstveal
tli
mit
esahi
pol
anvedahaküsür
atl
ıol
abi
len
vi
rgül
lüsayı

NOT:Javascri
pt't
eçalışı
rkenvirgüll
üsayı
larıdi
rektkul
lanabil
ir
si 0.
n( 5gibi)ancak
C#'t
açalı
şıken0.
r 5yazarsanUni t
ybunuot omatikol akdoubl
ar eol
arakalgıl
arve
çoğumetoddoubl esayıl
arladeğildefl
oatsayıl
arlaçalı
ştı
ğıiçi
nhataverir
.Bunu
düzel
tmenin(doubledeğer if
loat'
açevi
rmenin)yoluiseoldukçabasit
ti
r:sayını
n
sonuna"f"harfikonur(0.5fgibi
)

bool
ean:Tr
ueveyaf
alsedeğer
inial
an,
enbasi
tdeği
şkent
ipi(C#'
tabudeği
şkeni
n
i
smibool'
dur.)

St
ri
ng:Yazışekl
indedeğeral
ır
;"MerhabaDünya!"(
Tır
nakişar
etl
eridevar
!)gi
bi i
nt
.‘ ’
,
f
‘l
oat
’gibit
ürl
eri
naksinebununilkharf
ibüyükt
ür St
:‘ r
ing’

NOT:C#'t
abut
ürst
ri
ngdi
yegeçmekt
edi
r,yaniJavascr
ipt
'i
naksi
neküçükhar
fl
e
başl
ar.

GameObj
ect
:Her
hangibi
royunobj
esi

Audi
oCl
ip:SesDosyası

Li
ght
:Sahneı
şıkl
arıi
çinkul
lanı

r.

Par
ti
cleEmi
tt
er:Par
ti
kül
oluşt
urucul
ar(
emi
tt
er)i
çinkul
lanı

r.

Col
or:Renkdepol
amayayar
ar.Değer
işöyl
eayar
lanabi
li
r:

varr
enk:Col
or=Col
or(
0.4,
0.5,
0.23,
0.8)
;

İçeri
deki4adetpar ametreni
nil
küçür enginRGB’si(
Yanikı
rmızıl
ık,
yeşi
ll
ik,mavili
k
oranı.Bil
gisayardarenkl
ergenelanlamdabu3r engi
nfarkl
ıoranlar
dakarışmasıyl
a
oluşturul
ur.)vesonuncuparamet r
eder engi
nsaydamlı
ğı.Değeri1olur
sat amamen
opak, 0olursatamamengör ünmezol ur
.Tüm değerl
er0-1arası
ndadeğeral ı
r.

Di
leni
rseşöyl
eder
enkt
anı
mlanabi
li
r:

varr
enk:Col
or=Col
or.
red;
Vector3:Uzaydakibirnoktanınkoordi
natl
arı
nıdepol
amayayarar.Uzaydanoktal
ar
x,
yvezkoor di
natları
ndanol uşurvebuyüzdenaslı
ndabudeğişkeniçi
nde3değer
bulundurur
:‘Vector3(x,
y,z)
’şekli
nde.Ancakt
anımlamayapar
kensadece‘ Vect
or3’
yazıl
ır
.Örnekbirkullanımı:

varkonum :Vect
or3=t
ransf
orm.
posi
ti
on;

Ardındanbuscript
iniçi
nde;örneği
n‘konum.x’
der
sekbuoscr
ipt
inuygul
andı
ğı
objeni x’
n‘ koor
dinatı
ndakikonumunuver i
r.

Vect
or2:2boyut
ludüzl
emdebi
rnokt
a(Mesel
aekr
anı
nkendi
sindebi
rnokt
a)bel
ir
ti
r.
xveykoordi
natl
arı
ndanol
uşur
.

Tr
ansf
orm:Bi
rGameObj
ect
’i
nTr
ansf
orm component
inidepol
ar.

NOT1:Asl ı
ndabu, Transfor
m component iol
anbi rGameObj ect
’idepolamayayar ar
.
Mesela‘Rigidbody’t
üründekibirdeğişkenkullanırsakbununanl amıInspector
’dan
orayabi
rGameObj ectsürükledi
ğimizde,sürüklediğimi
zGameObj ect
’teRigi
dbody
component ini
nvarlı
ğını
nolması nızorunl
ukılmakt ır
.YanieğerondaRi gidbody
component iyoksadeğişkenindeğeriolarakoobj eyiatayamayız.Bunupekçok
componenti çinyapabil
ir
iz,mesela‘AudioSource’ componentizorunluluğuda
koyabi
li
rizvb.

NOT2:But iptebirdeğişkendepol amanı


nbirdiğerkullanım alanıdascr i
pt
yazarkenkolaylı
ksağl amasıdır
.Mesela"obje"adındaTr ansformt ar
zındabir
değişkendedirekt"obje.posi
ti
on.x"di
yer
ekilgil
iobjeninxkoor dinatı
nıbulabi
li
ri
z
ancakeğerdeği şkentür ümüzGameObj ectolsaydı"obje.t
ransform.posit
ion.
x"
yazmakzor undakal ı
rdık.

Text
ure2D:İ
kiboyut
lur
esi
m dosyal
arı
nıdepol
amaki
çinkul
lanı

r.

GUI Skin:Arayüzel emanları


ylauğraşır
ken(Özel l
ikl
einterakti
fmenüyapı mında)
Unity’ninhazırarayüzstil
iyerinekendiarayüzstill
eri
mi zikul
lanabilmemiziçin
kullanmamı zgerekendeğişkent ür
ü.Budeği şkeneuygunst i
liprojepaneli
nden
"Create–GUISki n"yoluylaoluştur
abili
rsi
n.Ar dı
ndan" OnGUI ()
"fonksiyonunda
"GUI .
skin=ar ayuzdegiskeni;
"komut uyl
aar ayüzekendiol uşt
ur duğunstil
i
atayabilir
sin.

KeyCode:Bi
rkl
avyetuşudepol
amayayar
ar.Dahasonr
aInput
.Get
KeyDown(
)ve
benzer
ikomutl
araparamet
reol
arakat
anabi
li
r.

Touch:Mobilpl
atf
ormlardaekr
andakibi
rparmağıözel
li
kler
iyl
eberaberdepolamak
i
çinkull
anıl
anbirSt
ruct.Depol
adı
ğıözel
li
kleri posi
se" t
ion",
"delt
aPosit
ion"
,"phase"
ve"f
ingerI
d"di
r.

Raycast
Hit:Raycastkull
anımında,r
aycast
’ı
nbi
rnesneyeçar
par
sager
idöndür
eceği
bi
lgi
nindepolanacağıdeğişkentür
ü.

Quat
erni
on:Rot
asyonudepol
amayayar
ar.Sanı
ldı
ğını
naksi
neobj
eler
deger
çekçi
birrotasyoneldeet
meki çin4boyut
lubirdeğişkentürü,Quaternionkull
anı

rve
gerçektenkarmaşıkbirşeydi
rkendi
si.Neysekiişi
mi zikol
aylaştır
makve
rotasyonlarl
aiçl
idı
şlıol
maki çi
nkul
lanımırahatçeşitl
iQuaternionfonksi
yonl
arı
mevcut tur.

Array:Bi
r‘di
zi’
oluştur
mayayar
ar.Di
zil
er,
içl
eri
ndebi
rdençokdeğer
idepoedebi
len
özeldeği
şkenlerdi
r.

Arr
ayList
:Ar r
ay’dendahagel işmi şözelli
kleresahipolanbi
rdizi–Ar rayLi
st–
ol
uştur
mayayar ar.Bul i
stel
erdesadeceObj ecttüründedeğişkenlerdepolanabi
li
r.
Arr
ayList
’l
erhakkı ndadahadet aylıbi
lgi
:http:/
/msdn2. mi
crosoft.
com/ en-
us/
li
brary/system. col
lect
ions.arrayli
st_
member s%28VS.80%29.aspx

delegate:Normalbi rdeği
şkeniçeri
sindebi
rverit
utmayayarar
kenbirdel
egateise
i
çer i
sindebir(veyabirdençok)fonksiyont
utmayayarar.İ
smiçokkarmaşıkbirver
i
türüymüşgi bigösterebi
li
ramaasl ı
ndakull
anımıbasi
tti
rvedoğrukul
lanı
ldı
ğındaçok
faydalıolabi
li
r.

event:delegat e'
lereçokbenzervebuver it
ürüdeiçerisi
ndefonksiyon(
lar
)tutar
.Tek
farkbirdelegat e'
itüm cl
ass'
lartet
ikl
eyebil
ir
ken(yanidelegat
e't
ekitüm
fonksiyonlarınçalışt
ır
ıl
masınısağlar
ken)birevent
'isadeceiçer
isi
ndetanımlandı
ğı
scripttet
ikleyebili
r.
ÖNEMLİFONKSİ
YONADLARI
f
uncti
onUpdat
e()
:Herbi
rst
ept
e(f
rame,
kar
e)ger
çekl
eşenol
ayl
arı
nyazı
ldı
ğı
f
onksi
yon.

functi
onFixedUpdate()
:Fizikolaylarıi
çin(
rigi
dbodyComponent'
iil
eyapı
lan
olayl
ar)bufonksi
yonkul l
anılmalıdır
.Update't
entam ol
arakf
arkı
nıanl
amadım
gerçiamadediğim gibi
,fi
zikselolaylarbur
ayayazıl
malı.

functionLateUpdate():Tüm objeler
inUpdat e()fonksi
yonl arıçalı
ştı

ldıkt
ansonra
LateUpdat e(
)fonksiyonları
,yi
neherbi rstepteçalışt
ır
ılı
r.Özel l
ikl
ekamer anı
nbir
objeyitakipett
iğikodlariçi
nkullanı
şlı
dır(Arabayar ı
şlarıvb.).Çünküt aki
pedil
en
objeUpdat e()
'i
niçerisi
ndehar eketetmişsekamer aobjeninsonkonumunagör e
ayarlanırvebusayededahai stenil
entarzdabi rgörüntüel deedili
r.

funct
ionAwake(
):Star
t()fonksi
yonundandahaönceçal
ışanvet
ıpkıonungi
bi
sadecebi
rkereçal
ıştı

lanbirfonksi
yon.

f
uncti
onStar
t()
:Sadecescr
ipti
lkçal
ışt
ır
ıl
dığı
ndayapı
lacakol
ayl
arı
nyazı
ldı
ğı
f
onksi
yon.

funct
ionOnCol l
isi
onEnt er(
):Scripti
nuygulandı ğıobjeher
hangibaşkabirobjeyl
e
temas(coll
isi
on)yaşar sager çekleşi
r.Eğer‘functi
onOnCol l
isi
onExi
t(
)’yazı

rsa
olayl
artemaskesi l
ince,‘f
unct i
onOnCol li
sionStay()’
yazıl
ır
satemasınolduğuher
stept
egerçekleşir
.Ör nekbirkullanımı:

f
unct
ionOnColli
sionEnter(
temasEdi
len:Col
lisi
on)
{
i
f(
temasEdilen.
gameObject.
name==" zemin"
)
{
Debug. Log("
Zeminevurdun!
")
;
}
}

functionOnTr i
ggerEnter()
:Scr i
pti
nuygul andığıobjeninColli
der’
inde"I
sTr i
gger"
seçeneğii şar
etli
yse,Coll
ider’
inebirobjet emasedi ncebukomutçal ı
şır
.‘f
uncti
on
OnTrigger Exi
t(
)’fonksi
yonuylat emaskesi li
nce, f
‘uncti
onOnTr i
ggerStay()

fonksiyonuyladat emassür esinceyapılacaklarıayarl
ayabili
rsi
n.Bufonksiyonun
OnCol
‘ l
isi
onEnter()
’danbirfarkı
,içer
isi
near gümangi ri
lecekseargümanıntürünün
"Coll
ision"değilde"Coll
ider"olmasıdır
!Ör nekbi rkul
lanımı:

f
unct
ionOnTriggerEnter(
temasEdilen:Col
li
der)
{
i
f(
temasEdilen.
gameObj ect
.name==" Yukselt
iciZemi
n")
{
r
igidbody.AddForce(
Vector3.
up*10);
}
el
seif
(temasEdilen.gameObject
.name==" ZamanYavaslat
iciZemi
n")
{
Ti
me.
ti
meScal
e=0.
5;
}
}

f
unct
ionOnTr i
ggerExi
t(ci
kisYapil
an:Col
li
der)
{
i
f(
ciki
sYapil
an.gameObj ect.
name=="ZamanYavasl
ati
ciZemi
n")
{
Ti
me.timeScale=1. 0;
}
}

@scr
iptRequi
reComponent
(Ri
gidbody)

Buör nektescripti
nuygulandığıobje‘Yukselt
iciZemin’adl
ıGameObject’
in
tr
iggerınagirer
se, i
çerdeolduğusür eboyuncaonayukar ıyönde10biri
mlikgüç
uygulanır.Eğer‘ZamanYavasl ati
ciZemi n’
intri
ggeri
negirer
sezamanyavaşl ar
,yarı
hızı
nadüşeryaniSl ow-motionolur.Ardı
ndan‘ OnTri
ggerExi
t(
)’f
onksi
yonundada
eğer‘ZamanYavasl ati
ciZemin’dençıkarsakzamanınor malhâl
inedöndürüyoruz
kisürekliSlow-motionmodundakal masınoyun.

NOT:Col l
ider’
de‘IsTr i
gger’seçinceneol duğunumer akediyorolabili
rsi
niz.
Haklısınızda,heral desadecef onksiyonlarıni
simler
ideğişmiyordur .Eğer‘I
s
Trigger’seçeneği niseçersenizColli
der’iolanbirobj
e‘ I
sTrigger’
ol anobjeyle
temasedi ncenor malt emasları
naksi nedur maz,objeninColl
ider
’ininiçi
ndensanki
hiçbirşeyyokmuşgi bigeçerveyol unadevam eder .Eğer‘IsTri
gger ’seçeneği
seçiliolmazsai kiobjet emasedi ncehar ekethâli
ndekiobjeöteki
nini çi
nden
geçemez, onatosl ar.

functi
onOnMouseDown( ):Scri
pti
nuygul andığıbirGUIobj esi
neyadabirobj
eni
n
Coll
ider’
i
nemouseil
etıklandığıandagerçekleşir.Eğer‘functi
onOnMouseDrag(
)’
yazıl
ır
samouseil
ebasılıtutul
duğundager çekleşir.Veya‘functi
onOnMouseUp(
)’
yazıl
ır
samouseil
etı
klanmakesi l
diğiandaolaylarger çekl
eşir
.

functi
onOnMouseEnt er()
:Scri
pti
nuygul andığıbirGUIobj esi
ninveyabirobjenin
Coll
ider’
i
ninüzeri
nemousei legelindi
ğindeger çekleşi
r f
.Eğer‘uncti
on
OnMouseExi t
()
’yazıl
ır
samousei lgil
iobjeni
n, GUI’nınüzeri
ndençekil
inceolaylar
gerçekl
eşir
.Veya‘functi
onOnMouseOver ()
’yazılı
rsamousei lgil
iobj
enin,GUI’
nin
üzeri
ndeolduğuherst ep’
tei
lgi
liolayl
argerçekleşir.

functi
onOnDr awGizmos():Scenepaneli
ndetemsi l
işekil
lerçizmeyeyarar
.Örneğin
PointLight
't
akilambasembol ü,Col
li
der'
dakidikdörtgengibisemboll
erveşekil
ler
bunları
narasındadı
r.Oyunaherhangibiret
kisiyoktur,bugizmo'l
arsadeceScene
paneli
ndegözükürveoyunyapı mcı
sınagörselanlamdakol aylı
ksağl
ar.

funct
ionOnDrawGizmosSel
ect
ed()
:Üst
tekif
onksi
yondantekf
arkı
,bufonksi
yonda
çizdi
ri
lengi
zmo'l
arsadeceobj
eScenepanel
indeseçi
li
ysegör
ünürancaküstt
eki
OnDrawGi
zmos(
)fonksi
yonundagi
zmo'
l
arobj
eseçi
liol
masadagör
ünür
dur
umdadır
.

functi
onOnBecameVi si
ble(
):Obj
eherhangibirkameratarafı
ndangörül
düğüzaman
gerçekl
eşir
.Bukamer al
araScenepaneli
ndekigezmeyeyar ayankameradadahi
ldi
r.
Buözelli
kperfor
mansaçı sı
ndanfaydal
ıolabi
lmektedi
r.Bununiçin
OnBecameI nvi
sibl
e()f
onksi
yonuylaber
aberkullanı
mıöneml idi
r.

functi
onOnBecameI nvisi
ble()
:Objehiçbirkameratar
afı
ndangörül
mediğizaman
gerçekleşi
r.Ör
neğinbirobjedekibi
rscriptesadeceobj
ekameral
arı
nenazbi ri
tarafı
ndangörüldüğüzamani hti
yaçduyul uyor
sa,oscri
ptt
eşöyl
ebirkodyazı
larak
performanstaartı
şsağlanabil
ir
:

f
unct
ionOnBecameVi
sibl
e(){
enabl
ed=t
rue;
}

f
unct
ionOnBecameInvi
sibl
e(){
enabl
ed=fal
se;
}

functi
onOnLevelWasLoaded(
):Oyunsı r ndaAppl
ası icati
on.
LoadLevel
()komutuyl
a
yenibirSceneyükl
endi
ğindeçalı
ştı


r.Ancakoyunilkbaşl
adı
ğıandaçalışmaz.
Dediğim gi
bi,
bölümünell
edeğişt
iri
lmesiyl
eçal
ışt
ır
ıl
ır.

f
unct
ionOnEnabl
e()
:Scr
i enabl
pt" ed=t
rue;
"komut
uyl
aakt
ifedi
ldi
ğindeçal
ışt
ır
ıl
ır
.

functi
onOnDi
sabl
e()
:Scr
i enabl
pt" ed=f
alse;
"komut
uyl
adeakt
ifedi
ldi
ğinde
çalı
ştı


r.

funct
ionOnDest
roy(
):Scr
iptveyaGameObj
ect"Dest
roy()
"komut
uyl
ayokedi
ldi
ği
zaman,yokol
mai şl
emibit
medenöncegerçekl
eşti
ri
li
r.

f
unct
ionOnAppl
icat
ionQui
t(
):Oyunkapat
ıl
madanhemenönceçal
ışt
ır
ıl
ır
.

funct
ionReset(
):Bircomponent
'i
nsağındayeral
andişl
iikonatı
klayı
pReset
seçeneği
niseçersenocomponent't
ekiResetf
onksi
yonuçalışı
r.

functi
onOnAppl icati
onFocus(focus:bool ean):Çokkul lanı
şlıbirfonksi
yon.Eğer
oyunaçıkkenkullanıcıWindowst uşuylamasaüst ünedöner seyadabi ruygulama
açarsavb.,yanikısacabaşkabirWi ndowsi şl
eminef ocusyapar savear dından
tekr
aroyunager idönerseçeşitl
işeyleryapmaki çinbirebir(
Ör neğinoyunu
otomatikol
ar akpauseet mek)
.Al t
takikomut t
akul l
anıcınezamanoyundanbaşka
biri
şlemeşgulol ursaoyunotomat ikolar
akdur aklat
ıl
ırvekullanıcıoyunager i
dönünceoyuneskihı zı
ylakal
dığıyerdendevam eder :

pri
vatevaroyunHizi:fl
oat=Time.t
imeScal
e;
funct
ionOnApplicati
onFocus(odakl
anma:boolean){
i
f(!
odakl
anma)/ *Kul
lanı
cıbaşkai
şler
lemeşgulol
mayabaşl
adı
ysa*
/
{
oyunHi
zi=Ti
me.t
imeScal
e;
Time.
ti
meScal
e=0;
}
el
se/
*Kull
anıcıoyunageridöndüyse*
/
{
Ti
me.ti
meScal e=oyunHizi;
}
}
ÇEŞİ
TLİÖNEMLİMETODLAR(
KOMUTLAR)
 OBJEYİKONUMLANDI
RMA-TRANSFORM

tr
ansform.
Transl
ate(xDegi
simi:fl
oat,yDegi
simi:f
loat
,zDegi
simi:f
loat)
:Bir
objeni
nkonumunu( I
nspectorpanel
indekiTr
ansfor
m Componenti
ndeyeralan
Positi
ondeğer
ler
ini
)değişt
irmeyeyarar.

tr
ansf
orm.Rot
ate(xDegisi
mi:f l
oat,
yDegisi
mi:f l
oat,zDegi
simi:f
loat)
:Bi
robj
eni
n
eğimi
ni,
yanir
otati
on'ı
nı(I
nspectorpanel
indekiTransfor
m Componenti
ndeyer
anRot
al ati
ondeğerler
ini
)değişti
rmeyeyarar.

transf orm.eulerAngles.
x,tr
ansform.euler
Angles.y,transfor
m.eulerAngl
es.z:Bir
objeni nher hangibireksendekirot
ationaçısı
nıver i
r.Eğerobjebirbaşkaobjenin
child'ıisegenel debudeğer l
erTransform component '
i
ndekideğerl
erleaynıçıkmaz
çünkübudeği şkenlerglobaluzaydakieğimivermekt edir
.Budeğer l
erkesinl
ikle
tekert ekerdeği şt
ir
il
memel idi
r.Ancakonunyer i
nebi robj
eninaçısı
nışöyle
deği ştir
ebil
irsin:t
ransform.eul
erAngles=Vector
3( x,
y,z)

tr
ansform.
localEuler
Angles.x,tr
ansform.l
ocalEul
erAngles.y,
tr
ansform.
localEuler
Angles.z:Birobjeni
nherhangibireksendekirot
ati
onaçısı

veri
r.Budeğişkenl
erdaimaTr ansfor
m componentindekirotasyondeğerl
eri
ni
döndürür(
Obj eni
nhiyer
arşisindenbağı msı
zbirşekil
de).

tr
ansfor
m.Transf
ormDirect
ion(Vector
3.r
ight)
:Objeni
nkendinehas(Local
)X
ekseni
ndeki(
BunuobjeyiseçinceScenepanel
indekır
mızıokolar
akgörebi
li
rsi
n.)
sağyönüdepolamayayarar.Meselaneişeyarar
?Şöylebirör
nekver
eyim:

r
igi
dbody.
AddFor
ce(
transf
orm.
Transf
ormDi
rect
ion(
Vect
or3.
ri
ght
)*20)

Bukodunuygul andı
ğıobj
edegüçobj eninkendiXeksenindesağadoğruuygul
anı
r.
Yanitam ol
arakScenepanelindekiobjeninkendikı
rmızıokuyönündeuygul
anı
r.
Pekişöyl
edeseydikneolurdu:

r
igi
dbody.
AddFor
ce(
Vect
or3.
ri
ght
*20)

Böyleyapsaydıkgücünuygul anacağıyönScenepanel i
ninsağüstündekikı
rmızıok
yönündeolurdu,yanievrensel( WorldSpace)sağyöndeol ur
du.Bunudahai yi
anlamakiçi
nbi robj E’
eyi‘ tuşuylakırmızıyöndebi rmikt
arçevir
.Ardından‘W’
tuşunabastı
ğındagör eceksinkiobjeninkırmızıokununyönüdeğişmi şamaScene
paneli
ninsağüst ündekikır
mı zıokunyönühi çdeği şmemiş.Çünküevrenselsağ
yönüöncedenbel irl
enmişsabi tbirşeydi
rveobj eninyönünegörevb.değişmez.

tr
ansform.LookAt(hedef Obj
e:Tr ansform) :Scri
ptinuygulandı
ğıobjeni
n,kodun
i
çerisi
ndeki‘hedefobje’i
simliobj
eyebakacakşeki l
derotationdeğerl
eri
ninotomati
k
olar
akayarlanması nısağlar
.Örneğinbi rspotlambanınsür ekl
ioyuncuyadoğr u
bakmasınıayarlamaki çi
nkul l
anı
labil
ir.Ancakkullanı
m alanıoldukçagenişt
ir.ÇOK
ÖNEMLİbi rnot HedefObj
:‘ e’
ninbi Tr
r‘ ansform’olmasıl
azı
m.Bununiçi
n‘Tr
ansf
orm’
olar
aktipibel
ir
lenmişbi
rvar
iabl
e(değişken)tanı
mlayı
ponuil
gil
ioyunobj
esi
ne
eşit
lemekyeterl
idi
r.

Input.
mousePosi t
ion:Vector3:Mouseninekrandaki(Ekran2boyutlubirdüzl
emdi r
.)
konumunuver i
r,değer
isadeceokunabili
r.Eğermouseekr anı
nensolüst ündeyse
değeri’(
0,0,0)’
,ekranı
nensağal tı
ndaysadeğeri,ekranı
ngenişl
iğiveyüksekli
ğiolan
(
‘Screen.
wi dth,
Screen.
height,
0)’
dır
.Görüldüğügibifareni
nZkonumudai ma0'dır.
 OBJE–COMPONENT’
LERLEİ
LGİ
LİKOMUTLAR

GameObject.
Find("
obj
e":Str
ing):"
obje"i
simliobj
eyibul
mayayarar.Bukodu
örneği
noobjeyibul
upsonradankull
anmaki çi
nbirdeği
şkendedepolamakiçi
n
kull
anabi
li
rsi
n.

GameObj
ect
.Fi
ndWi
thTag("
TagAdı
":St
ri
ng)
:Gi
ri
lent
ag'
asahi
pbi
robj
eyi
bul
mayayar
ar.

gameObj ect
.name:Str
ing:Bi
robj
eni
nisminiveri
r.Genel
debi
robjeyibi
r
değişkendesakl
ıyor
sakodeği
şkenvası
tası
ylai
lgi
liobj
eni
nadınıbul
maki çi
n
kul
lanıl
ır.

*.
enabl
ed:Bi
rcomponent i
nadıgiri
li
pyazıl
ır
saocomponenti
nakti
fli
ğini
deği
şti
rmeyeyar
ar.Eğerdeğeri‘
tr
ue’yaeşi
tl
eni
rsecomponentakt
ifol
ur,‘
fal
se’
ye
eşi
tl
eni
rsecomponentetki
sizhâlegeli
r.

render
er.
enabl
ed:boolean:Kodunuygulandığıobjeyi
,eğerdeğer
i‘f
alse’
yapı

rsa
görünmezyapmaya;değer t
i‘r
ue’yapı

rsatekrargörünüryapmayayarar.

r
enderer.mater
ial.
color:Color:Kodunuygulandı
ğıobj
eyeuygulanmışolan
mater
yalinanar engini
,hâli
yleobj
eninrengi
nideği
şti
rmeyeyarar.Değer
iörneği
n
Col
‘ or.red’veya‘Color.
green’yapı
labi
li
r.

tr
ansform.parent:Transf
orm :İ
lgi
liobj
eni
nParentobjesi
niseçmeyeyar
ar.Mesela
birevi
nkapısınabunuuygularsanbüyükolası

klaevi
nkendisi
niGameObjectol
arak
el
deet mişolursun.

tr
ansform.root:Transform :EğerbirobjebaşkabirobjeninChildobjesiyseve
bununPar entobjesidedahabaşkabi robjeni
nChildobjesiyse,yanikarmaşık
sayıl
abil
ecekbirPar enthi
yerarşi
sivarsakodunuygulandı ğıobj
eninenüstdüzeyde
Parent’
ıolanobjeyiseçmeyeyar ar.Yanitüm buhiyer
arşidekiataPar entobj
eyi
seçer.Ardından"tr
ansform.root.
ri
gidbody.enabl
ed=f alse;
"gibioat aobjede
i
stediği
ndeği şi
kli
ğiyapabil
irsi
n.

SendMessage("Fonksi
yonAdı":Str
ing,Eğervarsaar
gümanlar):Bi
robj
edeki
,i
smi
gi
ril
enfonksi
yonu;ter
cihebağl
ıolar
akdeğer igi
ri
lmi
şargümanlarl
a(İ
lgi
li
argümanlar
ınfonksi
yondatanı
mlıolmasılazım.
)çağı
rmayayarar.

SendMessageUpwards("
Fonksi yonAdı":Str
ing,Eğervarsaargümanl ar):
SendMessage'
dantekfarkı,
bukomutkul l
anıl
ıncascript
inyazı
ldığıobjenindışı
nda
ayr
ıcaoobjeni
ntüm ataobjelerii
çindeSendMessagekomut uçal ı
ştı
rılı
r,eğer
onl
ardada"Fonksi
yonAdı "adındabirf
onksiyonvar sabufonksiyononl ardada
çal
ışt
ır
ıl
ır
.

Broadcast
Message("
Fonksi
yonAdı ":St
ri
ng,Eğervar
saargümanlar):
SendMessage'
dantekfar
kı,
bukomutkul l
anıl
ıncascr
ipt
inyazı
ldı
ğıobj
enindışı
nda
ayrı
caoobjeni
ntüm chi
ldobjel
erii
çindeSendMessagekomutuçalışt
ır
ıl
ır
,eğer
onl
ardada"Fonksi
yonAdı
"adı
ndabi
rfonksi
yonvar
sabuf
onksi
yononl
ardada
çal
ışt
ır
ıl
ır
.

objeadi
.Get
Component ("
ComponentAdı":St
ri
ng):İ
smigiril
enobj
eninismigi
ri
len
componentiniseçmeyeyarar
.Bucomponenthazı
rbirbi
leşendeolabi
li
r,oobj
eye
atanmışherhangibi
rscri
ptkodpar
çasıda.

objeadi
.Get
Component
InChil
dren("ComponentAdı
":Str
ing):İ
smigiri
lenobjeden
başlamaküzer
e,i
smigiri
lencomponentiseçmeyeyar
ar.Eğerobj
eninkendisinde
componentyoksahi
yer
ar şi
kbirsır
ayagörechi
ldobj
eler
inedebakıl
ırvehiçbi
rinde
bucomponentyoksanulldöndürül
ür.

objeadi
.AddComponent("ComponentAdı":St
ri
ng):İ
lgi
liobj
eye,il
gil
icomponent’
i;
eğeryoksaeklemeyeyarar.Ancakeğerocomponentzateni
lgi
liobjedemevcutsa
herhangibi
rşeygerçekl
eşmez.

Inst
antiat
e(obje:GameObject
,pozi
syon:Vector3,rotasyon:Quat
erni
on)
:Gi
ri
len
pozisyondagir
il
enrot
asyonasahipbi obj
r' e'objesioluşturur
.

GameObj ect.
Cr eatePrimit
ive(Pri
mi t
iveTypesekil):Unit
y'ninhazırbasitşekil
ler
inden
oluşt maya(GameObj
ur ect->CreateOt hermenüsüal t
ındakigeomet rikşekil
ler
)
yarar.Oluşturulanşekl i
nt ür
ünü" sekil
"parametresibeli
rl
er.Değer i
Primiti
veType. Plane( 2boyutludüzlem) ,Pri
miti
veType.Cube( küp),
Primiti
veType. Spher e(küre),Pr
imiti
veType.Capsule(uçlarıyumuşat ı
lmışsili
ndirvar
i
olankapsülşekl )vePr
i imiti
veType.Cyli
nder(sil
indir
)olabil
ir.Değerimantıkenbir
değişkeneat ı
lmal ı
dırvedahasonr abudeği şkenvasıtasıyl
aol uşt
urulanşeklin
konumu, rot
asyonuveboyut uayar l
anmal ı
dır
.

Dest
roy(obj
e:GameObj
ect)
:Bi
robj
eyiyoket
meyeyar
ar.Ör
nekbi
rkul
lanı
mı:

f
unct
ionStart(
)
{
Dest
roy(gameObj
ect
.Fi
nd(
"masa"
),5)
;
}

Bukodlascri
ptilkuygulandı
ğı masa"i
nda" si
ml ibirobj
ebulunup5sani yesonra
yokedi
li
r.Eğeranındayokedi l
mesii
steni
yorsa‘,5’kı
smı;yanivi
rgülvevir
gülden
sonr
asısil
ini
r.Eğer‘Destr
oy(gameObj
ect)
’yazılı
rsakodunuygulandığıobj
eyok
edi
li
r.
 Fİ
ZİK–RI
GIDBODYİ
LEİ
LGİ
LİKOMUTLAR

rigidbody. AddForce(gucMi ktari:Vector


3):Scri
ptinuygulandığıobj
ederigi
dbody
var sa,Translate’i
naksine,fi
zikunsur l
arı
nıyoksaymadan, oobjeyebel
irl
ibiryönde
istediğimizgüçt ebirkuvvetuygul amakiçinkull
anıl
ır
.Ör neğin
"rigidbody.AddFor ce(Vector3.up*100) "komutuobj eyealttan100bir
imli
kgüç
uygul ar.Bukomut lauygul
anangücünyönügl obalkoordinatsist
eminegöredir.
Yaniobj eninrotasyonunabakmaksı nı
nVector3.r
ightsürekliScenepaneli
ninsağ
üst ündekixekseni ni(kı
rmızıeksen)i f
adeeder.

ri
gidbody.AddRelat
iveForce(gucMi
ktar
i:Vector
3) :r
igidbody.
AddForce(
)'
tantek
farkı,
gücünuygulandığıobjeni
nrot
asyonunungücünyönündeet ki
nrol
oynaması dı
r.Yaniuygulanangücünyönüglobaldeğildelocal(
yerel
)koordi
nat
sisteminegörebeli
rl
enir.

ri
gidbody.vel
oci
ty(gucMiktari:Vector3):Objeyeuygulanannormalgücünüzerine
(Relat
ive)güçuygulamakyer i
ne( AddForcekomut u)objedekit
oplam uygul
anan
gücüayar l
amayayar ar
.TıpkıeulerAnglesfonksi
yonuylaobjeni
nr ot
asyonunun
anındavekesindeğişmesigibi.Mesel akarakter
izı
plat
ırkenkull
anıl
abil
ir
.

ri
gidbody.
AddTor
que(torkMikt
ari:Vect
or3):Objeyif
izi
kmot oruvasıt
ası
yla
döndürmeye(t
orkver
erek)yarar
.Uygulanantorkglobalkoor
dinatsist
eminegör
edi
r.

rigi
dbody. AddRel
ati
veTorque(t
orkMikt
ari:Vector3)
:Gi
ri
lenvektörobj
eni
nlocal
(yerel)koordi
natsi
steminegöreyorumlanı
r,yaniobj
eni
nrotasyonutor
kunyönünde
etki
lidir
.

Physi cs. Raycast(baslangicKonumu:Vect or3,yon:Vect or3,raycastHitDegiskeni


(İsteğebağl ı
):Raycast Hit
,raycast Uzunlugu:f l
oat):Başlangıçkonumundani l
gil
i
yönei lgil
iuzunluktabirraycastı şınıyoll
arvebur aycastışınıbirobjenin
collider ’
inetemaseder sef onksi yon" t
rue"değeri
nidöndür ür.Eğerraycastı şınıbi
r
şeyeçar pmazsaf onksiyonundöndür düğüdeğer" f
alse"olur.Ayrıcaisteğebağl ı
olar akbi rdeğişkenoluşturupt ipini"RaycastHi
t"yaparsanveodeği şkeninadı nı
met oddakii l
gil
ikısmayazar sanr aycastışı
nını
nt emaset ti
ğiobjehakkı ndaçok
det aylıbi l
gil
eralabil
ir
sin.Ör neğinobj eyl
eraycast’i
nbaşlangı çnoktasıar asındaki
uzakl ık,objeninadıvb.Ayr ıcaobj enin"gameObj ect"
isayesindeonunüzer inde
istediği ndeğişikl
iğiyapabili
rsin.Ör nekbirkull
anımı:

f
unct
ionFi xedUpdat e(){
varvurus:Raycast Hit;
if
(Physics.Raycast(t
ransfor
m.posit
ion,-
Vector3.
up,vurus,5)
)
{
i
f(vurus.col
li
der.
gameObj ect
.name==" Zemin")
{
ri
gidbody.AddFor
ce(Vector
3.up*1000*Ti
me. del
taTi
me)
;
}
}
}
Bukodsayesi nde,kodunuygul andığıobj edenaşağıyönde5met r
eli
kbi rraycast
ışı
nıyoll
anırveeğerr aycastışınıbi robj n"
eni colli
der"
iyletemasyapar sa"vurus"
isi
mli"Raycast Hit
"türündekideği şkensayesi ndeot emasyapı lanobj eninadına
bakıl
ırveobj eninadıeğer" Zemi n"isekodunuygul andığıobjeninr i
gidbody’sine
yukarıyöndesani yede1000’ likbi rgüç, raycast ’
inzemi nl
et emasıkesi lenekadar
uygulanır
.Böyl eceobj ezemi neyakl aşıncascr iptsayesindeüzer i
neyukar ıyönde
güçuygul anarakyüksel ir
,birmi kt
aryüksel i
pzemi nl
eraycasti şlemiar tı
k
yapıl
amayı ncayer çekimininet kisiyl
et ekraraşağıdüşmeyebaşl arvebusonsuza
kadartekrarl
anı r
.Böyl ecegüzelbi rgör üntüol uşur.Ancakobj eninr i
gidbody
component ’i
ndeki" Mass"i si
ml iağı rl
ığıtemsi ledendeğer inebağl ıolarak‘1000’
değeriart
ırı
labili
ryadaazal t
ılabi l
ir.

Physics.Li
necast(baslangi
cKonumu:Vect or3,bi
ti
sKonumu:Vect or
3,
raycastHit
Degiskeni:RaycastHit):Physi
cs.Raycast'
eçokbenzer .Ondanfarkıi
se
temasol upolmadığınabakanışınınbukomut abasl
t angicKonumui ebi
l t
isKonumu
arasındaoluşt
urulması,yanibaşlangıçkonumununhar icindebi
ti
şkonumununda
bell
iolmasıvehal i
yleı
şınınuzunluğunager ekduyulmaması dı
r.

Physics.IgnoreColl
isi
on( colli
der1:Col l
ider,coll
ider2:Col li
der ,
dur um :bool ean) :
Fizikmot orunun"coll
ider 1"değişkenindedepol anmı şobjeile"collider2"
değişkenindedepol anmı şobj earasındakitemasl ar
ıihmalet mesini( Eğer"durum"
tr
ueyapı lı
rsa)sağlar,yanibu2obj ear asındaher hangibi rfizi
kselol ayger çekleşmez.
Üçüncüpar ametresi"fal
se"yapı lı
rsabu2obj earasındakiol asıetkileşimlerdef i
zik
mot or
ut ekrardevreyegi rer.Örneğin"Physi cs.I
gnor eColl
ision(colli
der ,
kursunObj esi.
col
li
der, t
rue) ;
"komut ubi rkurşununf ırl
atı
ldığısilahl
ayadahavadaki
başkabi rkurşunlatemasedi pistenmeyengör üntülereengelol masıgi bişeyleriçi
n
birebi
rdi
r.

Physi
cs.OverlapSphere(kureKonum :Vect or3,kur
eYar
icap:float):Gi
ri
lenVector3
konumunumer kezkabuledenvekur eYari
capkadaryarıçapasahipzahiribi
rküreni
n
i
çindekalanveyaonunl at emaseden, Coll
idercomponentinesahiptüm
GameObjectleriColl
ider
[]türündebirarr
ayol ar
akdöndürür.Patl
amagi bifi
ziki
unsurl
ariçi
nol dukçakullanı
şlıdı
r.

ri
gidbody.AddExpl osionForce(gucMi kt
ari:fl
oat,patl
amaKonumu:Vect or3,
patl
amaYar i
capi:float,di
keyEkstraGuc:f l
oat):Gerçekçipatlamaolaylarıiçin
kul
lanıl
ır.Objeeğergi ri
lenVect or
3şeklindekipatl
amaKonumu' ndaoluşan,
patl
amaYar i
capikadaryar ı
çapasahi pgucMiktar
işiddeti
ndekibirpatlamanı n
menzili
ndeyseUni tyonauygunbi rdoğrult
udauygunmi ktar
dabi rgüç(For ce)
uygular.dikeyEkstraGucdeği şkeniisenekadarbüyür sepatlamamenzi lindekiobj
e
okadarhavayaf ır
latıl
ır
,eğerdeğer i0yapıl
ır
sadikeydoğr ult
udaekst r
abi rgüç
uygulanmaz.Ör neği n:

/*(0,0,
0)konumundaki,
10met reyar
ıçapl
ıgüçl
übirpat
lamanınscri
pti
nyazı
ldığı
objeye(Eğerobjemenzil
deyse)güçuygul
amasınısağl
ar.Ayr
ıcaobj
eyebirmiktar
ekstradikeygüçuygul
ar.*/

f
unct
ionSt
art
(){
r
igi
dbody.
AddExpl
osi
onFor
ce(15.
0,Vect
or3.
zer
o,10.
0,2.
0);
}

ri
gidbody.
MovePosi t
ion(yeniKonum :Vect
or3):Rigi
dbody'esahipobj eyi
yeniKonum'ahareketett
iri
rvebuesnadaf i
zikolayl
arınıdi
kkat
eal ı
r.Örneğineğer
yolüzeri
ndebirbaşkaf i
zikobjesivar
saoobjeil
ef i
zikselbi
retki
leşim ger
çekleşi
r.

ri
gidbody.MoveRotati
on(yeniEgim :Quat
ernion):Rigi
dbody'esahipobjenineğimi
ni
değişti
ri
rvebuesnadaf izi
kolaylar
ınıdi
kkatealı
r.Örneği
nobj ebi
rküreyseve
kürenintam üzer
inderi
gidbody'esahipbi
rbaşkaobj edengededur uyorise,kür
eyi
buf onksi
yoniledöndürünceküreninüzeri
ndekiobjenindengesibozulurveobje
aşağıdüşer.

RaycastHitDeği
şkeni.
dist
ance:f
loat:Raycastiçi
neğerbirRaycastHitdeği
şkeni
bel
irl
enmişse,onunismiveardı
ndan".dist
ance"yazı

r.Raycasteğerbirobj
enin
col
li
der’i
yletemasyaptı
ysa;oobj
eyleraycast
’ı
nbaşlangıçnoktasıar
asındaki
uzakl
ığıveri
r.

Raycast
HitDeği
şkeni
.poi
nt:Vect
or3:Raycasteğerbirobj
eyetemasetmişsebu
t
emasın3boyutl
uuzaydatam ol
arakhangikoor
dinat
lardager
çekleşt
iği
nidepol
ar.

RaycastHi
tDeği şkeni.
coll
ider:Col
li
der:Raycasteğerbi robjeyet emasetmişseo
t
emasedi lenobj eninçeşit
liayarl
arı
nıdeğiştir
meki çi
nkull
anılır
.Ör neği
nraycast
’ı
n
t
emaset ti
ğiobj eye" r
igi
dbody"component ’ieklemekiçi
nşöyl ebirkodyazıl
ır
(Raycast
Hi tdeğişkenininadını
n‘vurus’
olduğuvar sayıl
maktadır.):

vur
us.
col
li
der
.gameObj
ect
.AddComponent
(Ri
gidbody)
;
 EĞİ
MLEİ
LGİ
Lİ(
QUATERNI
ON)KOMUTLAR

Quater
nion.Fr
omToRot at
ion(bi
rinciDogr
ult
u:Vector3,iki
nciDogrult
u:Vect or3):
bi
ri
nciDogrult
uilei
kinci
Dogrult
uar ası
ndayeralanrotasyonudöndür ür.Örneğinbir
obj
enintepesini
n(yeksenini
n,birbaşkadeyişl
eVector3.updeğişkeninin)sürekl
i
MainCamer a'
nınbaktı
ğıyönedoğr ubakmasıiçi
nşubasi tkodkullanıl
abili
r:

funct
ionUpdate()
{
t
ransf
orm.r
otat
ion=Quater
nion.
FromToRot
ati
on(Vect
or3.
up,
camera.main.
tr
ansfor
m.for
ward);
}

Quaternion.AngleAxis(dereceMikt
ari:f
loat,
yon:Vector3):yonVektoru'
nun
etr
afndader
ı eceMiktarikadardöndürül
müşbi rr
otasyondöndürür.Örneğin
"Quaternion.
Angl eAxis(30,Vect
or3.up)"komutueulerAngl
es'ı(
0,30,
0)olanbi
r
Quaternion(rotasyon)döndür ür
.

Quater
nion.
LookRotat
ion(dogrul
tu:Vect
or3):Birdoğrul
tuyönündebakanbir
rot
asyondöndürür
.Birobjeni
nsürekl
ibaşkabirobjeyebakmasıiçi
nbir
ebir
dir
.
Örneği
n:

vardogr ul
tu:Vect or
3;
varhedef:Tr ansform;
funct
ionUpdat e(){
dogrul
tu=hedef .
posi
ti
on–transform.posi
ti
on;
tr
ansform.rotati
on=Quater
nion.LookRotat
ion(dogr
ult
u);
}
 OYUNCUİ
LEKLAVYE-
MOUSEETKİ
LEŞİ
Mİ(
INPUT)

Input.
GetAxis("Axi sAdı":Stri
ng):İçeri
sine"Hori
zontal"yada"Ver t
ical
"yazıl
ır
.
Örneğin"Vertical"yazı
lmışsa,yukarıoktuşunabasıldı
ğındadeğer i1,geriok
tuşunabasıl
dı ğında-1,hiçbir
inebasılmadığı
nda0ol ur.Ancaksolveyasağok
tuşunabasar sanbi rşeyolmaz.Ol masıiçini
çinde"Vertical
"yeri
ne" Hori
zontal
"
yazmalıdı
r.Har eketscri
pt l
eri
ndekul l
anıl
abil
ecekçokpr atikbi
rkoddur .

NOT:Input.
GetAxi
s()komutundayumuşat mai şl
emiuygul anmaktadır
.Yani
kl
avyedeyukarıoktuşunabasınca" I
nput.GetAxi
s("Verti
cal")
;"di
rekt1değeri
ni
döndürmez,onunyerineherbirfr
ame' deazarazarar t
arak(0.
1,0.23vb.şekl
inde)

sabirsürede1döndür ül
ür.Yukarıoktuşubı r
akıl
ıncadaaynışekildehemen0
döndürül
mez,azarazarazalarak0'ayaklaşıl
ını
r.

Input
.GetAxi
sRaw(" Axi
sAdı":St
ring):Input
.Get
Axis(
)'
tentekfar
kıbukomutt
a
yumuşatmai şlemiuygul
anmaması dı
r.Yanimesela"I
nput.
GetAxi
sRaw("Ver
ti
cal
");
"
komutu,yukarıoktuşunabası
ldı
ğıanda1döndür ür.

Input.GetBut
ton("ÖncedenBeli
rti
lmişTuşunÖzelAdı ":Stri
ng) :İl
gil
ituşabası l
ı
tutuluptutul
madığınıt
esteder
.Eğer‘ I
nput.Get
ButtonDown’ kodukullanıl
ırsa
sadecet uşabasıl
dığıi
lkandaolaylargerçekl
eşir
.‘I
nput.GetButtonUp’kodu
kullanıl
ır
sadaolaylartuşt
aneli
miziçekincegerçekleşi
r.Örnekbi rt
uşadı :‘Fi
re1’
,
mouseni nsoltuşuveyaCTRLt uşuyer i
negeçer.

Burayagiri
lebil
ecekt
uşisi
mler
iveonlar
ınhangibutonlaraayar
landı
ğı‘Edi
t–
ProjectSet
tings–Input
’yol
uyl
aaçıl
anInspectorpenceresi
nde‘Axes’seçeneği
al
tındagörünür.

Input.
GetKey(tusKodu:KeyCode) :Bunun‘Input.
GetButton()
’danfarkı
,buscr i
ptt
e
kull
anabil
eceğimiztuşların‘I
nput ’
kısmındaöncedent anımlanmışolant uşl
arla
sını
rl
ıolmaması .Buscriptileklavyedekitüm tuşl
ariçi
nişlem yapı
labili
r.İ
şlem,
il
gil
ituşabasıl
ıtutul
duğusür ecegerçekleşi
r.Eğer‘I
nput.GetKeyDown’
kull
ansaydıktuşabastığımızanda, ‘I
nput.GetKeyUp’kul
lansaydıktuştanelimizi
çekti
ğimizandager çekleşir
di.

İçer
isi
negir
il
ebil
ecek‘KeyCode.Escape’argümanıklavyedekiESCt uşunui
fade
eder.Onunyeri
neherhangibirtuşdakullanıl
abi
li
r;"KeyCode.Backspace"
"KeyCode.
Keypad7""KeyCode.UpArrow""KeyCode.F1""KeyCode.Home"
"KeyCode.
R""KeyCode.T""
KeyCode. Lef
tControl
""KeyCode.Mouse1"vb.pekçok
tuşgibi

Input.Get
MouseBut t
on(mouseTuşu:i nt):Mouseninbirtuşunabasıl
ıtut
ulup
tutulmadığı
nıkontr
oleder .Eğer‘I
nput .
GetMouseBut t
onDown’ kodukull
anıl
ır
sa
sadecei l
gil
ituşabasıl
dığında,I
‘nput.GetMouseButtonUp’kull
anıl
ır
sadasadeceo
tuştanelçekili
ncei
lgi
liolaylargerçekleşi
r.3adettanımlıt
uşbulunur.Eğerdeğer
i‘0’
giri
li
rsesolmouset uşu,‘1’gir
il
ir
sesağmouset uşu, ‘
2’gir
il
ir
sedeor t
amouset uşu
elealını
r.
Input.
anyKeyDown:boolean:Mevcutkar
ede(fr
ame)herhangibirmouseyada
klavyetuşunabası

pbasıl
madığı
nıdöndürür
.Dahaöncekibirkaredenbası
lıt
utul
an
birtuştruedöndür
mez,t
uşamevcutf r
ame'debası
lmasıgerekl
idi
r.

Input
.anyKey:boolean:Her
hangibi
rmouseyadakl avyetuşunabası

p
basıl
madığınıdöndürür
.Dahaöncekibi
rkaredenbası
lıt
utul
anbirt
uşdatr
ue
döndürür,t
uşatam mevcutframe'
debasıl
masıgerekl
ideğil
dir
.
 SES–MÜZİ
KKOMUTLARI

audi
o.Pl
ayOneShot
(sesDosyasi:Audi
oCl
ip)
:Bi
rsesdosyası
nı,
tekbi
rker
eçal
mayı
sağl
ar.

audio.Play(
):Eğerkiobj
eni
n‘Audi
oSour
ce’component
inebirsesdosyasıhâl
i
hazırdaatanmışabukomutosesdosyasınıçal
mayayarar
.Veyaşöylede
kul
lanılabil
ir
:

GameObj
ect
.Fi
nd(
"Ar
aba"
).
Get
Component
(Audi
oSour
ce)
.Pl
ay(
);

Bukomutl
a"Ar
aba"obj
esi
ninAudi
oSour
cecomponent
ineat
anmı
şol
ansesi
çal
abi
li
rsi
n.

audi
o.Pause()
:Scr
ipt
inyazıl
dığıobj
edeçal
ınansesdosyası
nıdurakl
atmayayar
ar.
Dahasonra‘audi
o.Pl
ay(
)’komut uyl
açal
mayadevam edil
ebi
li
nir
.

audi
o.St
op(
):Scr
ipt
inyazı
ldı
ğıobj
edeçal
ınansesdosyası
nıdur
dur
mayayar
ar.

AudioSource.
PlayCl i
pAt Poi
nt(sesDosyasi:AudioClip,cal
inacagiKonum :Vect
or3
):Sesdosyasını,uzaydaher hangibirkonumdaçal dırmayayar ar.Bukodungüzel
yanı,kodunuygulandı ğıobj
enin"AudioSource"Component ’
inesahipol mak
zorundaolmaması dır.Çünkübukodger çekl
eşti
ril
diğindesesiçal dı
racak,
geçi
ci
yenibirobj
e,beli
rti
lenkonuml ar
daoluşturul
urvesesiçal ı
pbi t
irdi
ktensonra
otomat i
kmankendi siniyokeder.
 ZAMANLA(
SÜRE)
(HI
Z)İ
LGİ
LİKOMUTLAR

Time.delt
aTime:float:Birstepyer
inebirsani
yeyl
eişlem yapı
lması
nısağl
ar.
Örneği t
n;‘ransf
orm.Translate(
Vect
or3.
forward*5*
Time.delt
aTime)’
koduyl
akodun
uygulandığıobj
eni
n1sani yede5metreil
erigi
tmesisağlanı
r.

Time.
ti
me:float:Oyunbaşl
adıkt
anbuyanageçent
opl
am sür
eyisani
yeci
nsi
nden
sayar
.Değer
ideğişt
ir
il
emez,sadeceokunabi
li
r.

yi
eldWait
ForSeconds(sani
yeCi
nsindenBekl
enecekSur
eMiktar
i:fl
oat)
:Kodunger
i
kal
anı
nınyapıl
masındanöncebeli
rti
lensür
ekadarbekleni
lmesi
nisağl
ar.

Time.
ti
meScale:float:Değer
i0il
e1arası
ndaol makzorundadı
r.Yapt
ığışey
zamanıyavaşl
atmaktır
.Yanisl
ow-mot
ionyapmanızaolanaktanı
r.Ayrı
caeğer
değer
i0yapılı
rsazamant amamendur
ur,yanioyun"Pause"ol
ur.Ardı
ndandeğer
i
1yapıl
ır
sazamannor maledöner.
 ANDROI
D&i
OSKOMUTLARI

NOT:Buradayazı lankomutlar
ınüstündebasi tçegeçeceği
m çünkübukomut l
arı
dahaayrı
ntı
lıbirşekil
dedersolarakanlat
t ı
m.Der segitmekiçi
ntı
klayı
n:
htt
p:/
/yasi
rkula.com/2013/07/17/uni
ty-i
le-androi
de-uygul
ama-gel
isti
rmek-
1-
dokunmati
k-ekran-entegr
asyonu/

Input.
touches:Touch[
]:Ekr
andakit
üm par
makl
arıToucht
üründedepol
ayanbi
r
değişken.

Touch.
posi
ti
on:Vect
or2:Par
mağı
nekr
andakihangikoor
dinat
adokunduğunu
döndür
ür.

Touch.
del
taPosit
ion:Vector
2:Eğerpar
makekrandahar
eketet
ti
ysebuhar
eket
in
yat
aydavedikeydekaçpixelol
duğunudöndür
ür.

Touch.phase:TouchPhase:Par mağındur umunudepol ar


.Dahaaçı kkonuşmak
gereki
rseparmağınekranayenimidokunduğunu( TouchPhase. Began),
yoksa
ekrandabasıl
ıhal
dehar eketetmekteolanbi rparmakol duğunumu
(TouchPhase.
Moved),ekrandabası l
ıhaldedur anamahar eketetmeyenbirpar
mak
olduğunumu( TouchPhase.Stati
onary)yadaekr andanyenikaldırı
lanbi
rparmak
olduğunumu( TouchPhase.Ended)depol ar.Ekranaaynıandabeşt enfazla
parmağındokunmasıgibinadirolaylar
dai sedeğer iTouchPhase.Canceledol
ur.

Touch.
fi
nger
Id:i
nt:Opar
mağahasol
anbi
rdeği
şkendöndür
ür.

Input.devi
ceOr i
entati
on:Devi ceOr i
entati
on:Tel efonunhangipozi syonda
tutul
duğunubel i
rti
r.Yanicihazınyeredi kvedüzgünbi rşekil
de( HOMEbut onu
aşağı daolacakşeki l
de)mi( DeviceOri
ent ati
on.Por t
rai
t)
,yeredikamat epetakl
akbi r
şekilde(HOMEbut onuyukar ıdaolacakşeki lde)mi
(DeviceOrientati
on.Portr
aitUpsideDown) ,yeredi kvesolayat ı

lmı şbi
rşekildemi
(DeviceOrientati
on.LandscapeLef t)
,yeredikvesağayat ırı
lmışbirşekildemi
(DeviceOrientati
on.LandscapeRi ght)
,yerepar alelveekranıyukar ıbakacakşekilde
mi( DeviceOrientat
ion.FaceUp)yoksayer epar al
elveekr anıaşağıbakacakşeki lde
mi( DeviceOrientat
ion.FaceDown)t utulduğunudepol ar
.Eğerkici hazabuksubukbi r
eğiml etut
uluyorsaozamanbudeği şken" DeviceOr i
ent
at i
on.Unknown"değer inial
ır.

I
nput.accel
erat
ion:Vector
3:Telefonunhareketsensör
ününt
elef
onunmevcut
r
otasyonuylail
gil
ihesapl
adığıdeğeridöndür
ür.

Handhel
d.Vi
brat
e()
:Tel
efonut
it
ret
meyeyar
ar.

Screen.
or i
entati
on:Scr eenOri
entation:Oyunundüzekr anmıyoksayat ayekranmı
oynandığınıdöndürürvedeğer ideğişti
ri
lerekyatayekr anladüzekr anar ası
nda
geçişyapılabil
ir
.Varsayıl
anolarakdeğer iScreenOr ientati
on.
Por t
rait
't
irvebudüz
ekrananlamı ndadı
r.BudeğerScr eenOr i
ent at
ion.LandscapeLef ti
ledeği şt
ir
il
erek
oyunsolayat ıkyat
ayekr anolarak,ScreenOr i
entation.LandscapeRightile
değişt
ir
ilerekdesağayat ıkyatayekr anolarakoynanabi l
ir
.Veya
Scr
eenOr
ient
ati
on.
Por
trai
tUpsi
deDowni
ledeği
şti
ri
ler
ekdüzamat
epet
akl
akekr
an
ol
arakoynanabil
iroyun.Sonolar
akda,değerieğer
Scr
eenOrient
ati
on.AutoRotat
ioni
ledeği
ştir
il
ir
seekranıdöndürdükçeoyunekr
anı
daotomatikol
arakyatayekranayadadikeyekranageçişyapar.

Syst
emI
nfo.
devi
ceModel
:Ci
hazı
nmodel
inidöndür
ür(
iPhone3.
1gi
bi)
.

Application.genuine:Uygul
amanı nkorsanolupolmadı ğınıdöndürür.AppSt ore'daki
ücretl
iuygul amal ar
ıkırı
pücret
sizol ar
aksunankor sanlarakarşıkull
anılanbi r
tedbi
r dir
.EğerAppl icati
on.
genui neCheckAvail
ablekomut utruedöndür üyor save
Application.genuinekomutukomut udaf alsedöndür üyorsaozamanoyununuzun
kull
anı cı
nınoankul l
anmaktaol duğuver si
yonubüyükol ası

klakorsanlart arafı
ndan
kır
ıl
mı şver siyonudurvebudur umdaçeşi t
lit
edbi
rleralmaki steyebil
ir
siniz.Bu
komut ukul lanır
kenişlemci
yeçokyükbi nervebuyüzdenUpdat e(
)gibibir
fonksiyondakul l
anıl
mamalıdır
!
 WEBCAM KOMUTLARI

WebCamTextur
e.devi
ces:WebCamDevi
ce[
]:Donanı
mabağl
ıol
ant
üm webcam'
l
eri
,
kamer
alar
ıdöndürür.

webcam.name:Str
ing:Gi
ri
lenwebcam ci
hazı
nınokunabil
ir
,özgüni
smi
niver
ir
.
Bur
adaki"webcam"deği
şkeniWebCamDevicetür
ündedir
.

webcam.i
sFront
Faci ng:boolean:Gi
ri
lenwebcam ci
hazı
nınönkamer aolup
ol
madığı
nıdepolar.Yanieğerkamerakull
anıcı
yabakı
yorsadeğerit
rue,arkaya
bakı saf
yor al
se'dir
.Bur webcam"deği
adaki" şkeniWebCamDevicetüründedir.

WebCamText ure(cihazAdi:St ri
ng) :İ
smigiri
lenwebcami ngörüntüsünüanlık
depolayacakol anbirtextureoluşturmayayar ar
.Bubi rconstruct
or'dı
rvedeğer i
WebCamText uretüründebi rdeğişkeneaktarıl
mal ı
dır
.ArdındanbuWebCamText ure
herhangibirmat er
yaleat anarakomat er
yalesahipobjeleri
nkamer anıngörüntüsünü
renderetmesisağl anabil
ir.Eğerkimet oduniçiboşbı r
akılı
rsa(WebCamText ure(
)
şekli
nde)ci hazabağl ıi
lkwebcami ngörüntüsünüdepol ayanbirWebCamText ure
döndürür.cihazAdi'naatanabilecekkamer aisimlerii
çinWebCamText ur
e.devicesve
webcam. namekomut l
arıkull
anılabi
lir
.

webcamGor
unt
usu.
Play()
:Giri
lenwebcamGor untusu'nünbağl ıol
duğukamer
anı
n
anl
ıkgör
ünt
üver
meyebaşl amasınısağl
ar,
yanikamer ayıçal
ıştı

r.
webcamGor
unt
usudeğişkeniWebCamText ur
et üründeol malı
dır.

webcamGoruntusu.
Pause( ):Gir
ienwebcamGor
l untusu'
nünbağlıol
duğukameranı
n
anl
ıkgörünt
üvermeyidur aklat
masınısağl
ar.Webcam sonradan
webcamGoruntusu.
Play()il
eçal ı
şmayadevam etti
ril
ebi
li
r.webcamGorunt
usu
şkeniWebCamText
deği uret ür
ündeolmalı
dır
.

webcamGor
untusu.
Stop(
):Gir
ienwebcamGor
l untusu'
nünbağlıol
duğukameranı
n
anl
ıkgör
ünt
üvermeyikesmesinisağlar
.Webcam sonr adan
webcamGor
untusu.
Play(
)il
etekrarçalı
ştı

labi
li
r.webcamGoruntusudeği
şkeni
WebCamTextur
etür
ündeolmalıdır
.

webcamGorunt
usu.
isPl
aying:boolean:Gir
ienwebcamGor
l unt
usu'
nünbağlıol
duğu
kameranı
noandaçalı
şıpçalı
şmadığınıkont
r .webcamGor
oleder untusudeği
şkeni
WebCamTextur
etür
ündeol malı
dır
.

webcamGor untusu.vi
deoRot at
ionAngle:i
nt:Herkameranınkendi
nehasbi rçekim
açısıol
abi l
ir.Yaniçektiğigörüntüyüdüzl
eşti
rmekiçi
nkendiet r
afı
nda90, 270veya
başkabi rder ecedöndür üyorolabil
ir
.Budeğişkendebuçekim açısı
nıdepoluyor.
Bununkul lanı m al
anıiseçoköneml i
.Çünkübudeğişkenikul
lanar
akkamer anın
çekim açısınabakmaksı zıngörüntününobj
eyedüzgünakt ar
ıl
masısağlanabil
ir
.
Bununi çinyapı l
masıger ekenşeyisescri
pteşukodueklemek:

varwebcamGorunt
usu:WebCamText
ure;
varanaRot
asyon:Quat
erni
on;
f
unct
ionSt ar
t(){
webcamGor untusu=newWebCamText ur
e()
;
render
er.mater
ial.
mainTextur
e=webcamGorunt
usu;
anaRotasyon=t r
ansform.rot
ati
on;
webcamGor untusu.Pl
ay()
;
}

funct
ionUpdate( ){
t
ransfor
m. r
otati
on=anaRotasyon*
Quaterni
on.AngleAxis(webcamGorunt
usu.
videoRot
ati
onAngl
e,Vect
or3.
up)
;
}
 SAVE–LOADSİ
STEMİ

NOT:Bur adakiPl ayerPrefskomut l


arı
ylayapılankayı t
larWindows'taRegi str
y
Editor'
de" HKCU\ Sof t
war e\[şir
keti
smi]\[
ürüni smi]
"konumuna, MACOSX' teise"
~/Library/Preferences"konumundaki" unit
y.[
şi r
ketismi ]
.[
ürüni
smi ]
.pl
ist"adlıbir
dosyayakaydedi lmekt edi.EğeroyunWebPl
r ayerüzer indençal
ıştı


yorsaozaman
Windows' t
a"%APPDATA%\ Uni t
y\WebPlayerPrefs"konumunda, MACOSX' t
ei se
"~/Library/Preferences/ Uni
t y/
WebPlayerPrefs"konumundakayı tl
aryapılır
.

Player
Pref
s.SetI
nt("
Anahtarİçinİsi
m":Str
ing,deger:i
nt) ri
:Bi ntdeğişkeni
n
değeri
nidepolamayayarar.Bur Anaht
adaki" arİ
çinİsi
m",deği
şkeninismiyleaynı
olmakzorundadeğildi
r Anaht
." arİ
çinİ
sim"ismi,
kaydett
iği
mizbui ntdeğere
sonradanulaşmakiçingerekl
idir
.

Player
Prefs.
GetI
nt("Anahtarİçi
nİ si
m":Str
ing)
:Dahaöncekaydedi
lmi
şbiri
nt
değereulaşmakiçi
nkul l
anıl
ır
.Eğergi r
il Anaht
en" arİ
çinİ
sim"i
smindebi
ranaht
ar
yoksavarsayı
lanolarak0döndür ülür
.

Player
Pref
s.Set
Float
("Anaht
arİ
çinİ
sim":St
ri
ng,
deger:f
loat) rf
:Bi l
oatdeği
şkeni
n
değeri
nidepol
amayayarar.

Player
Prefs.
GetFl
oat("
Anahtarİ
çinİsi
m":Stri
ng):Dahaöncekaydedi
lmişbirf
loat
değereulaşmakiçi
nkull
anıl
ır
.Eğergir
il
en"Anaht
arİçi
nİsi
m"ismindebiranaht
ar
yoksavarsayı
lanol
arak0.0Fdöndürül
ür.

PlayerPref
s.Set
Stri
ng("Anaht
arİ
çinİsi
m":St
ri
ng,
"Değer
":St
ri
ng) rSt
:Bi ri
ng
değişkenindeğeri
nidepol
amayayarar.

Player
Prefs.
GetStri
ng("Anaht
arİçi
nİsim":Str
ing):Dahaöncekaydedil
mişbir
Stri
ngdeğereulaşmaki çi
nkull
anıl
ır
.Eğergi
ril
en"Anahtarİ
çinİ
sim"ismindebi
r
anahtaryoksavarsayı
lanolar
ak""döndürül
ür.

Player
Pref
s.HasKey("
Anahtarİ
smi":Str
ing):Gi
ri
len"Anaht
arİ
smi
"nesahi
pbi
r
anahtar
ınolupol
madığını
,bool
eancinsi
ndendöndürür.

Player
Pref
s.Del
eteKey("Anaht
arİ
smi
":St
ri
ng)
:Gi
ri
l Anaht
en" arİ
smi
"nesahi
p
anahtar
ıvedeğeri
nisil
meyeyarar
.

Pl
ayerPr
efs.Del
eteAl
l(
):Şi
mdi
yekadarol
uşt
urul
muşt
üm anaht
arl
arıvedeğer
ler
ini
si
lmeyeyarar.
 DEBUG(
KONSOL)KOMUTLARI

Debug.Log("Yazı
":St
ri
ng):Debugkonsol
unai
lgi
liSt
ri
ngyazı
yıyazdı

r.
pr
int(
"Yazı"
)komutudaaynıişiyapar
.

Debug.DrawRay(baslangicKonum :Vector3,
dogrul
tu:Vector3,renk:Col or)
:
Sadeceoyunutasarlarken"Scene"penceresi
ndegözüken,hayalibirçizgiçi
zer.
Önceçizgini
nbaşlangıçnoktası,
sonrayönüveuzunluğu,sonr adar engibeli
rl
enir
.

Debug.Br
eak(
):Oyunutesteder
kenpauseet
meyeyar
ar.Oyunadevam et
meki
çin
el
le‘
Play’t
uşunabası
lmalı.
 GUI(
ARAYÜZ)KOMUTLARI

NOT1:Buradayazı l
anscri
ptl
eri
nhepsi‘OnGUI()
’fonksiyonundaişeyarar.
NOT2:BazıGUI Layoutkomutl
arı
nındi
rektGUIşeklindeolanversiyonl
arı

yazmadım çünkügenelmantıktpkıGUI
ı Layout
.ButtonveGUI .Butt
onkomut l
arı
nda
olduğugi
biişl
iyor.Buyüzdenheral
deil
giiGUI
l Layoutkomut ları
nıkendi
nizdeButt
on
örneği
nebakarakGUIkomut unaçevir
ebil
ir
sini
z.

GUI.skin:GUISkin:EğerPr oj
epaneli Cr
nde" eate–GUISki n"yol
uyl
aveyadışarı
dan
i
mpor tederekkişisell
eşt
ir
il
mişbirGUISki
noluşturmuşsanı GUI
zvebunu‘ Skin’
t
ipindebirdeğişkeneaktarmışsanı
zokişi
sel
leşt
iri
lmi
şarayüzüil
gilOnGUI
i‘ ()’
fonksiyonundakul l
anmanızayarar
:

varar
ayuz:GUI
Ski
n;

f
unct
ionOnGUI()
{
GUI
.ski
n=arayuz;
}

GUI.color:Color:Ar
ayüzelemanları
nıntemelrengi
nibeli
rl
er(
Butonlar
dakiyazı
renkleri
,ar
kaplanrenkl
erivb.
).Değer
i‘Color
.whit
e’,
‘Col
or.
red’
gibit
anımlıbi
rrenge
ayarlanabil
ir
.

GUI.enabled:boolean:Eğerdeğerifalseyapıl
ır
sabukoddansonr akitüm GUI
el
emanl arı,
bunun( GUI.
enabled)değerit art
ekr rueyapılanakadartı
klanamazhâl
e
gel
ir(Eğertıkl
anabil
irbi
rGUIel ementi
yse)veyar ısaydamlaşır(
EğerGUI
el
ement iniçevr
eleyenbirçer
çevevar mışsa.)
.Örneğin:

funct
ionOnGUI (
)
{
GUILayout.BeginVer tical();/*GUIel emanl arı
nıdikeyolarak
yerl
eştir
iyorum.*/
GUILayout.Button("Mer haba" );
GUI.enabl
ed=f alse;/ *Busat ır
dansonr akiGUIel emanl arıakti
fol
mayacak,
takiGUI .
enabledt ekr
art rueyapı lanakadar .*
/
GUILayout.Button("Bunat ıklayamazsı n!!"
);/*Bubut onatıkl
anamaz, ayrı
ca
butonakt i
folmadığındandol ayıyar ısaydamdı r.*/
GUI.enabl
ed=t rue;/ *Ar t
ıkbundansonr akiGUIel emanlarıiseakt
ifolacak.
*/
GUILayout.Button("Amabunat ı
klayabil
irsin.
");
GUILayout.EndVer tical();
}

GUILayout.
Begi nArea(Rect(basl
angicXDeğeri:f
loat,baslangicYDegeri:fl
oat,
genisl
ik:f
loat,yuksekli
k:float)):Normalşar
tlar
daGUIel emanl ar
ısenbuscr i
pti
yazmazsan( 0,
0)koor di
natları
ndaoluşmayabaşlar,yaniekr anı
nensolüst ünde.
Ancakbuköt ügör ünümeengelol maki çi
n,meselaGUIel emanl arı
nın(But
onlar,
kaydır
ıl
abi
lirçubuklarvb.)ekranı
nortakısmıi
lesolkısmını ntam ortası
ndan
başlamasını i
sti
yorsanbuscri
ptilebuGUIel emanl
arınıbirdi
kdört
genal aniçi
nde
oluştur
ulmayazor larsı
n.İ
lki
kiparametr
ei l
edikdör
tgeninekrandakibaşlangıçXve
Ydeğer l
erinibel
ir
lerkensonr
akiparametrel
erledi
kdörtgeningeni
şli
ğinive
yüksekli
ğinibeli
rl
ersin.Ör
nekbirkull
anı
mı :

publ
icvargenisl
ik:fl
oat=400;
publ
icvaryuksekli
k:fl
oat=300;

f
uncti
onOnGUI (
)
{
varbaslangicX=( (
Screen.
width*0.5)-(genisl
ik*0. 5)
);
varbaslangicY=( (
Screen.
height*0.5)-(yuksekli
k*0.5) )
;
GUILayout.Begi
nAr ea(
Rect(
baslangi
cX,baslangicY,genisl
ik,
yuksekl
ik)
);



GUILayout.EndArea();
}

Bur
adayapılanişl
emleGUIelemanlar
ı,geni
" slik"ve"yuksekl
ik"igi
ri
lenbir
di
kdört
geniniçi
neçizi
li
rvebudikdört
gendeekr anınçözünürlüğü,oranıvb.ne
ol
ursaolsundaimaekranı
ntam ort
asınaort
alanır.

GUILayout
.EndArea(
):GUILayout
.Begi
nAreail
eaçılmışbirGUI
Layoutal
anı

kapatmayayarar
.Böylecekull
anı
lacakyeniGUILayoutkomutl
arıar
tkbuLayout
ı ’un
i
çerisi
neyerl
eşti
ri
lmez.

GUI.Begi nGroup(Rect (x:f l


oat , y:f l
oat ,
genisl
ik:float,yukseklik:float)) :Bukomut
GUI.EndGr oup( )i
lekapat ı
lmal ıdır.XveYdeğer l
erigrubunekr andakibaşl angı ç
konumunui f
adeeder kengeni sl i
kveyuksekl i
kdeğer leridegrubunkapsadı ğı
genişlikveyüksekl i
kdeğer lerinii fadeeder .Bukomuti eGUI
l .
EndGr oup( )ar ası
nda
yeralant üm GUIel emanl arı(GUI Layoutel emanlarıdeği l
!GUIveGUI Layoutf arkl
ı
i
şleyen2ayr ısistem.)içinar t
ık( 0,0)ol anbaşlangıçkoor dinatıoyunekr anı nınensol
üstünüt emsi letmezdeGUI .Begi nGr oupi l
eaçıl
mı şgr uptayeralan( X,Y)değer i
ni
temsi leder.Yanimesel aGUI .Begi nGr oup(Rect(
100, 200, 500,500) )ilebirgr up
açtı
ktansonr aGUI .
Box( Rect(0, 0,
100, 100) ,
"Merhaba" )komut unukul lanırsak,
üzerinde" Merhaba"yazani lgilikut ucukekr anı
n(0,0)koor dinatl
arındadeği lde
(100,200)koor dinatl
arındaçi zilir
.

NOT:GUI.BeginGr
oup’t
akiyüksekli
k,genişl
ikgi
bideğer
ler
lebeli
rl
enmişalanı
ndışına
taşanGUIelemanlar
ını
ntaşankısımlarıçi
zil
mez,ort
ayagari
pbirgörünt
üçıkar.O
yüzdenGUIelemanları
nıal
anındışınataşır
mamayaözengöst er
in.

GUILayout.Begi
nHorizontal(
):GUI
Layoutfonksiyonları
ylaoluşt
urul
acakar
ayüz
el
emanl ar
ınınbir
bir
ininsağınadoğrudizi
lmesinisağlar.İşibi
ti
nce
GUILayout.EndHori
zontal()komut
uylakapatı
lmal ı
dır.

GUILayout.Begi
nVer
ti
cal(
):GUILayoutfonksi
yonları
ylaoluşt
urul
acakar
ayüz
el
emanl ar
ınınbi
rbi
ri
ninal
tınadoğrudizil
mesinisağl
ar.İşibi
ti
nce
GUI
Layout
.EndVer
ti
cal
()komut
uyl
akapat
ıl
mal
ıdı
r.

GUILayout
.Wi
dth(geni
sli
k:f
loat)
:İçi
neyazı
lanar
ayüzel
emanı
nıngeni
şli
ğiniel
le
bel
irl
emeyeyar
ar.

GUILayout
.Hei
ght
(yuksekl
ik:f
loat)
:İçi
neyazı
lanar
ayüzel
emanı
nınyüksekl
iği
ni
el
lebeli
rl
emeyeyarar
:

f
unct
ionOnGUI()
{
GUI
Layout
.Box(
"Mer
haba"
,GUI
Layout
.Wi
dth(
150)
,GUI
Layout
.Hei
ght
(70)
);
}

GUILayout.
Space(bosl
ukMiktar
i:f
loat)
:İkiGUIel
emanıar ndabosl
ası ukMi
ktar
i
kadarpixel
li
kboşl
ukbırakı
r.

GUI Layout.
Button("ButonunAdı ":Stri
ng) :Üzer
inde"ButonunAdı "yazan

klanabil
irbirGUIbut onuoluşt
ur ur.Butonungenişli
ği,ol
uştur
ulacağıyervb.
GUI
‘ Layout.
Begi nArea()
’yabağl
ıol arakdeğişebi
li
r,eğeryoksa(0,0)
koor di
natl
arı
ndaol uşturul
ur.Örnek:

f
unct
ionOnGUI(
)
{
i
f(
GUI
Layout.
But
ton("
Banati
kla!
")
)
{
Debug.
Log("
Butonat
ikl
adin:)
");
}
}

GUI Layout.
Repeat
But t
on("ButonunAdı":Stri
ng):Bufonksi
yonun
GUI Layout.
Butt
on’dantekfar ;GUI
kı Layout.
Button’
dabutonaherbastı
ğımı
zda
olaylarsadece1kezger çekl
eşir
kenbuf onksi
yondabutonabasıl
ıtut
tuğumuz
süreceol ayger
çekleşi
r.

GUI Layout.Box("Kutununadı":St ri
ng):Üzerinde"Kutununadı"yazanbi
rGUI
kutusuol uşturur.Kutul
arınbutonlardanfar
kı;kutul
aratıkl
anamazancakbut onl
ara

klanabil
ir.Ayrıcakutulargörselolarakdabut onl
ardanbirazf
arklı
dır
.GUI.
Box
fonksiyonudaayr ıcamevcuttur.

GUILayout .
Label("Yazı":Stri
ng) :Ekrana"Yazı"yazdır
ır.BuGUIelemanınınbutonya
dakutugibi birgörsel
iyokt ur,t
ıpkıGUITextgibisadeceekr anagir
diği
nyazıyıyazar
.
YadaGUI Layout .
Label
( gor
sel)ileTexture2Dtipi
ndebi rgörsel
i(gor
sel)ekr
ana
çi
zdir
ebil
irsin.Bugör sel çi
zdirmei şl
emidiğerGUIel emanlarıi
çindeaynen
geçerl
idi
r.GUI .Labelf
onksi yonudaayr ıcamevcut t
ur.

GUILayout.
TextField(duzenlenecekStri
ng:Stri
ng):BirStri
ngtür
ündendeğişkeni
n
değeri
niarayüzelemanıvası tası
yla,
girdiol
arakdüzenlememizi/
gir
memizisağlar
.
Çokkullanı
şlıözell
ik,meselaonlinebiroyundakull
anıcıadıgi
rmekiçi
n
kul
lanıl
abil
ir
.Di
leni
rse2.birar
gümanvasıtasıyl
agiri
lenyazı
nınol
abil
ecek
maksimum uzunluğubeli
rl
enebil
ir
.Örnekbirkull
anımıiçi
n
GUILayout.
PasswordFi
eldfonksi
yonununtanıtı
ldı
ğıkısmabakabi
li
rsi
n.
GUI.Text
Fiel
dfonksi
yonudaayr ı
camevcuttur.

GUILayout.TextAr
ea(duzenl enecekSt
ring:Str
ing):Bufonksi
yonun
GUILayout.TextFi
eld’danfar
kı;GUILayout.
TextFi
eld’
dastri
ngsadecetekbi
rsat
ır
dan
ol
uşabil
irkenTextAr ea’dai
seEnt ert
uşuylayenibi
rsatı
rageçebil
iyor
uz.
GUI.
TextAreaf onksiyonudaayr ı
camevcut t
ur.

GUI.DrawText
ure(Rect(x:fl
oat,y:fl
oat,
geni
sli
k:f l
oat,yuksekli
k:float),
text
ureDosyasi:Text
ure):Gi
ril
enXveYkoor di
nat l
arı
nda, gi
ri
lengeni şl
ikve
yüksekli
kdeğerl
eri
nesahipbirdikdör
tgenal
anıniçeri
sinebirtextur
eDosyası(Resi
m
dosyası)çi
zer.

GUI Layout .
Passwor dField(duzenl enecekPar ola:St r
ing,"*"[
0]:char) :BirStr
ing
türündeol anduzenl enecekPar ola’yıarayüzel emanıvası tasıyl
a, klavyedengirdi
olarakdüzenl ememi zi/girmemi zisağlar .Par
ol a*şekl i
ndegör ünür .Bunu
değiştirmeki çinkomut taki*işar etinibaşkabi rişaretl
edeği ştirmekyet erli
dir
.
Oradaki[ 0]danedi yebilir
sinizkibendedemi ştim zaten.Onungör evişu:Unity
Passwor dFieldfonksiyonundapar olayer i
negöst eril
eceki şaretin(*)bi rchar
olması nıist
iyor,birStr i
ngdeği l.!Bur adaki[0]ise" *
"st r
ingindekii lkelemanı(Çünkü
dizil
erinelemanl arı0’danbaşl arve12…di yedevam eder .)charol ar
ak
döndür meyeyar ar.Ör neğin"Mer haba" [2]deseydim busef eryazı daki2+1=3’üncü
harfi,yani‘r’harf
inicharol ar
akdöndür ecekveşi f
reyibuhar fl
egi zleyecekti(
Çok
enteresandur acağınaemi nim: )) .Örnek:

functi
onOnGUI ()
{
GUILayout.
BeginVertical()
;
GUILayout.
Label("
Nickinizigir
in:")
;
ni
ck=GUILayout.TextField(ni
ck,25,GUILayout
.Widt
h(120)
);/*Maksimum 25
karakt
eruzunluğunda* /
GUILayout.
Label("
Şifrenizigi
rin:"
);
si
fr
e=GUI Layout.
Passwor dFi
eld(si
fre,
"*"
[0]
,15,GUI
Layout.
Wi dt
h(120)
);
/*Maksimum 15kar akteruzunl uğunda*/
GUILayout.
EndVer t
ical()
;
}

GUI .
Button(Rect(0,0,200,100) ,"
ButonunAdı ":Str
ing) :Ekranı
nensolüst
ünde
(0,0koordinat
lar
ında)200pi xelgenişl
iği
ndeve100pi xelyüksekl
iği
ndebi
rbuton
çizer.Bukomut aGUI
t Layout.Butt
on’danf ar
klıol
arakbut onunkonumunuve
boyut l
arı
nıtamamenkendi mi zbeli
rli
yoruz.

GUI.
Repeat
But
ton(Rect(0,0,200,100),"
ButonunAdı":Str
ing):Buf onksi
yonun
GUI.
Butt
on’
dantekfar
kı;GUI.But
ton’
dabutonaherbastığı
mızdaol ayl
arsadece1
kezger
çekl
eşi
rkenbufonksiyondabutonabasıl
ıtut
tuğumuzsür eceolaygerçekl
eşi
r.

GUI
Layout
.Fl
exi
bleSpace(
):Nor
malşar
tl
ardaGUI
Layoutel
emanl
arıbel
ir
libi
ral
anı
n
i
çerisi
neotomat i
kol arakyer l
eştir
il
irl
er,yaniherbirGUI Layoutelemanını nekr andaki
konumunut asarı
mcıt ekt ekgirmez(Zat enüsttekiGUILayoutfonksiyonl ar
ındada
hiçkonum bil
gisibulunmamakt a.
).GUI Layout.
Flexibl
eSpace()komut ui se,geçer l
i
GUILayoutiçi
nöngör ülmüş, beli
rl
ibiryer dekit
üm alanı(GUILayout.BeginAr ea()
fonksi
yonuylabelir
lenmi şbölgeyi
.Zat eneğerGUI Layout.BeginArea()fonksi yonunu
kull
anmamı şsanızGUI Layout.Fl
exibl
eSpace( )komut uişeyaramaz. )doldurmaya
yarar.

NormaldeGUIel emanlar
ıoluştur
duğumuzbi
rGUIalanı
nın(GUILayout
.BeginArea(
)
i
leoluşt
uruyoruz.)ensolüstündeni
ti
bar
endizi
lmeyebaşl
ar.Amabi zbutonlar
ın
i
lgi
lial
anınsolüstünedeğildeensağalt
ınadayal
ıol
masınıist
iyor
uzdiyeli
m:

functionOnGUI ()
{
GUILayout .BeginAr ea( Rect (0,0, Scr een.width, Screen. height));/*
GUI
elemanl arınınçizil
eceğial anıt üm oyunekr anıol ar
akbel ir
li
yor uz.* /
GUILayout .BeginHor izont al (
);/*ÖnceGUIel emanl arınısağadayamaki çin,
yataydi zil
imebaşl ı
yor uz.* /
GUILayout .FlexibleSpace( );/*Üst tekikomut layataydi zi
li
mebaşl adığımızdan
bukomut l
aekr anınsol undamümkünol duğuncaboşl ukkal ması nıayarlı
yoruz.*/
GUILayout .BeginVer tical();/*ŞimdideGUIel emanl arınıaşağı yadayamaki çi
n
dikeydi zi
li
mebaşl ı
yoruz. */
GUILayout .FlexibleSpace( );/*Ekr anınüst ündemümkünol duğuncaboşl uk
kalması ,yaniGUIel emanl arınınaşağı yadayat ıl
masıi çinyukar ı
dabi resnekboşl uk
oluşturuyor uz.(Yanibuboşl uğunnekadarol acağıbel l
ideği ldi
r.Bi zyeniGUI
elemanl arıekledikçet üm GUIel emanl ar ınıenaşağı yadayamaki çinboşluğun
mi kt
arıUni tytarafındansür eklihesapl anı r
.*/
GUILayout .Button( "İl
kbut on" );/*Ör nekol masıi çinbi rkaçGUIel emanı
oluşturuyor um.*/
GUILayout .Box( "Bur ayadabi rkut ucukkoyal ı
m: )");
GUILayout .Button( "Sonbut on" )
;
GUILayout .EndVer ti
cal ()
;/ *Ar tı
kt üm GUIel emanl ar ı
mıyer leşti
rdim.Oyüzden
birsorunçı kmamasıi çint üm yer leştir
mekomut larınısıraylakapat ı
yorum. *
/
GUILayout .EndHor izont al();
GUILayout .EndAr ea();/ *EnsonGUIal anınıkapat mayıunut ma! *
/
}

Buör nektedeolduğugi biFlexibleSpace( )komut ununyer iöneml i


dir.Bi zheryeni
dizi
li
m met odununbaşı ndabukomut ukullandık.YaniUni t
y’ededikki" Unit
y!Sen
öncebi rbuGUIel emanl arınınnekadaryerkapl ayacağı nıhesapla.Sonr abual anı
n
dışı
ndakal anboşluğuensonadeği ldeenbaşaekl e!
".Ör neğinBegi nHor izontal(
)’
ın
al
t ı
ndakiFlexi
bleSpace( )komut unuor adanal ıpEndHor izontal(
)’
ınüst ünekoyar san
göreceksinkibusef erbutonlarekr anınensağal tınadeği ldeensolal tı
nadi zi
ldi,
çünküboşl uğuyat aydaGUIel emanl ar
ınınsolunadeği ldesağı nayer leştir
dik.Veya
hem Begi nHori
zont al(
)’ı
nal t
ınahem deEndHor izont al
( )
’ı
nüst ünebi rer
Flexibl
eSpace()yazsaydı kbusef erbut onlarorta- aşağıyadayanı rdıçünkühem
soldanhem desağdanesnekboşl ukbı rakmı şol urduk.Bukonununhâl â
anlaşıl
mamasınor mal dir
.Birazkar ışıkduranamaasl ı
ndaçokbasi tol anbirşey
çünkü.Benyi nedebi rörnekdahaver eyim:
varyuksekli
k:int=400;
funct
ionOnGUI (){
GUILayout.
Begi
nArea(Rect(
0,0,
200,
yuksekl
ik)
);
GUILayout.
Begi
nVerti
cal(
);

GUI
Layout
.Box(
"Üsttekikutu"
,GUI
Layout.
Height
(100)
);
GUI
Layout
.Fl
exi
bleSpace( )
;
GUI
Layout
.Box(
"Alt
takikutu",
GUILayout
.Hei
ght(
100))
;

GUI
Layout
.EndVerti
cal(
);
GUI
Layout
.EndArea()
;
}

Bukoduyazı ncagör eceksinki" Üsttekikut u"enüst t


eve" Alt
takikutu"daonun200
pixelaltı
nda, çünküBegi nAr eai l
eol uşt urduğumuzal anınyüksekl i
ğizaten400.
Şimdi bur adaFl exibl eSpace( )komut uasl ı
ndaaynenşunaeşi t :
GUI Layout .
Space( 200) .Neden?Çünküi lkkut uenüst te100pi xelbiryüksekl ik
kaplıyorvear adaFl exibl
eSpacevarveaşağı dakikut udaaşağı da100pi xelyer
kaplıyor.Ezat enbi zim oluşturduğumuzal an400pi xelyüksekl i
ğindeolduğundan
FlexibleSpaceot omat ikolarak200pi xelyerkapl ı
yor .Pekinedenbi zdirekt
GUI Layout .
Space( 200)demedi k?Asl ındabunungüzel2nedenivar :Bir
inci si,biz
FlexibleSpacedeyi ncear adaki boşluğumat emat ikselolarakhesapl ama
zahmet i
ndenkur tuluyor uz,bunuUni tykendi siotomat ikolarakyapı yor(Hi çşi mdi ye
kadarFl exibleSpace( )’
iniçerisindeher hangibi rdeğergör dünmü! )
,iki
ncif aydasıi se
şukibi z‘yuksekl ik’ değişkeninindeğer inideğiştirdi
ği mizdeFl exibl
eSpace( ) ’
in
kaplayacağıal andayi neotomat ikol ar akyeni denhesapl anıponagör edeği şiyor.
Yanigi dipdeGUI Layout .Space( )’
i
nmi ktarınıdakendi mizyeni denhesapl amak
zorundakal mı yoruz.Vehat taiştet am buyüzdenbununadıTür kçeadı" esnek
bölge".Çünkübur adabahset ti
ğim gi bidur umdandur umagör eesneyipger ilebil
iyor.

GUILayout.BeginScroll
View():Bununpekçokzamangör düğümüzenyaygı nörneği,
biroyunuveyapr ogramıyükl erkenkarşıl
aştı
ğımı zçokuzunol anvebizi
m dir
ekt
"Kabulediyorum (Iaccept/agree…) "di
yerekgeçiştirdiğimizKull
anı

Sözleşmeleri
’di
r.Tıpkıonungi bi,i
çindebiryazıveyazı nı
nsağındadaonuaşağı
yukarıkaydır
mayayar ı
yanbi rscrol
lbari
çerenbi rsistemdi rbu.Kul
lanı
mıbir
azf ar
klı
olduğuiçinörnekleizahedeyi m:

privatevarscr ollbarKonumu:Vect or2;


functionOnGUI (){
scroll
bar Konumu=GUI Layout.Begi
nScr oll
View( scrol
lbarKonumu,
GUI Layout .Widt h(200), GUILayout .
Height(
50));
/*Buradani ti
bar enyazdı klar
ımızbu‘ Kul
lanıcıSözl eşmesi’gi
biolanşeyin
i
çineyazı l
ıyor;takionuGUI Layout.EndScroll
View()ilekapat anakadar.Bualanın
i
çinei stersekt extgi rebileceğimizgibiist
ersekbut onyadar esim bil
egirebi
li
ri
z.*
/
GUILayout .Label("Bubi rli
sanssözleşmesi dir…\ n\n** PEKÇOKSATI R
SONRA* *\n\nBöyl ecesözl eşmeni nsonunagel di
k: )
");/*Labelil
eçerçevesi
zsade
biryazıyazı yor uzsözl eşmeye. */
GUILayout .EndScr ol
lVi
ew( );
}

Buradadagör düğüngibiönceli
kledışar
ıdabi
rVect or
2deği şkenioluşturacaksı
n
(pri
vateolmasızor unl
udeğil.
)veonusür iBegi
ekl nScrol
lView’eeşitleyeceksi
n.
BeginScroll
View’iniçi
ndeyseil
kar gümanolarakyineVector2deği şkeninikull
anacak,
ardı
ndan‘ Kull
anıcıSözleşmesi’
alanını
nboyutlar
ınıgi
receğiz.**Buradasür ekl
i

KullanıcıSözl
eşmesi’diyorum amabual ansadecesözleşmeiçinkull
anmaki çin
değil
,istedi
ğinherşeydekul l
anıl
abi
li
r.Benim böyl
edememi nsebebiiseneyden
bahsettiği
mindahar ahatanlaşıl
masınıi
stemem. *
*Buradaşöylebirdurum var:Eğer
Scroll
View’ini
çineonunal abi
leceği
ndenfazlabirşeygi
rmezsek,yanitüm yazızaten
scroll
bar’ager ekduymadant ekbirseferdegör
üntülenebil
iyorsa,nor
malşar t
lar
da
Unitydeor adabirscrol
lbaroluşturmaz.Ancakyazıt ekseferde
görüntülenemeyecek/sı ğamayacakkadarbüyükol ursaozamanbi rscrol
lbar
oluştur
ur .Ancakdi l
ersekUni t
y’iherzamanscroll
bargöst ermeyezor l
ayabi
lir
iz.
Bununi çinyapmamı zger ekendeğişikl
ikşu(Üst
tekikoddakiör neğegöre
gösteri
yor um):

scr
oll
barKonumu=GUI Layout.
BeginScrol
lVi
ew(scr
oll
Bar
Konumu,
fal
se,
true,
GUILayout
.Widt
h(200)
,GUILayout
.Height(
50))
;

Birbaşkakullanı
şlıör
nekdahaver eyi
m.Meselabirkull
anıcısözl
eşmesiol
sunve
kull
anıcıonunsağındakiscroll
barıaşağıkaydı
rmadığısür
eceoyunubaşlatanbut
on
i
nakt i
folsun.Böyl
ecekullanıcı
yıokumasabi l
esözleşmeiletemasageçir
mi ş
olacağız:

pri
vatevarscr oll
Bar Konumu:Vect or2;
funct
ionOnGUI (){
GUILayout .
BeginVer tical()
;
scroll
BarKonumu=GUI Layout.Begi
nScr ol
lView( scroll
Bar
Konumu, fal
se,t
rue,
GUILayout .
Width(200) ,
GUI Layout .Height(
50));
GUILayout .
Label("Dikkat !Busözleşmeyii mzal arsanızevi
niz,t
apunuz,
mobilyanızkarşılı
ksızbizim ol acaktı
r!
!Oyüzdenl ütfensözl eşmeyiokumayınkibi
z
desizdenkol aycaf aydalanabi lel
im.Şakayapı yoruz, evini
zevb.ihti
yacı
mızyok.Siz
sadecesözl eşmeyiokuyuni şte…");
GUILayout .
EndScr ollView( )
;
GUILayout .
Space( 20);
i
f(scrol
lBarKonumu. y<80)
{
GUI .
enabled=f alse;
}
i
f(GUILayout .
Button("Okudum, kabulüm! ")
)
{
Applicati
on.LoadLevel (
"Oyun");
}
GUI.enabled=t rue;
GUILayout .
EndVer ti
cal ();
}
Eğerbukoduyazar sanbahset ti
ğim gibibirsistem kurmuşol acaksı n.Buradabi rşey
oldukçaöneml ;odascr
i oll
BarKonumu. y<80' deki80değer i
nin( scroll
BarKonumu. y
sağdakiscrol
lbarınyazıyıaşağıdoğr ukaçpi xelindirdi
ğinigösterir.Scroll
baraşağı
kaydıkçabudeğerar tar.
)gözkar arıveri
lmi şolması .Çünküyazı danyazı yave
Scroll
Viewalanınınboyut unagörescr oll
barıni nebi
leceğimaksi mum mi ktardeğişi
r
vemaksi mum mi ktarıbi
zeverenbi rfonksiyondayok.Oyüzdenbunudeneme-
yanıl
mayoluylakendi nbul malı
sın.

GUIUtili
ty.RotateAroundPivot
(dereceMikt
ari:float
,refer
ansNokt a:Vect or
2):Bu
komut tansonr ayazılanGUIelemanları
,ReferansNokt a'
yagör e'Derece'mikt
arı
nda
döndür ülür.EğerbirGUIelemanınıtam ol
duğuyer dedöndür meki sti
yorsan
ReferansNokt aolarakoGUIel emanını
ntam mer kezindekinoktasını
n
koordinatlarnıVect
ı or2olarakvermeli
sin.
 MATEMATİ
KSELKOMUTLAR

Random. Range(mi ni
mumDeger:f l
oat,maksimumDeger:f l
oat):İçi
negi r
il
en
mi ni
mum vemaksi mum değer
lerinarası
ndar asgelebirdeğereldeeder.Pekçok
yerdekullanılabili
r.Ancaköneml ihusus,eğergirdiğini
zdeğerl
erinbi
r f
i‘loat’i
se
diğeride‘float’olmalı
,‘i
nt’
isediğeride‘i
nt’ol
mal ıvemi ni
mum asl amaksimumdan
büyükol mamal ı.Ayrı
caeğergiri
lendeğer l i
er‘nt’isedöndürül
ecekdeğermi ni
mum
değer eeşitolabili
rkenmaksimum değer eeşitolmaz.Yanimi nimum değerbu
rasgeleişl
emi nedahilkenmaksimum değerdeği l
dir.Amagiri
lendeğerl
er‘ f
loat’
ise
döndür ül
endeğermaksi mum değer edeeşitolabili
r.

Random.val
ue:f
loat
:"Random.
Range(0.
0f,
1.0f);
"komut uil
etamamenaynı
dır
,0.
0
i
le1.0ar
asında(
Bu2değerdedahilol
maküzere)birsayıdöndür
ür.

Vector3.Dist
ance(biri
nci
Konum :Vector
3,ikinci
Konum :Vect
or3):İkinokta
arasındakiuzakl
ığınhesapl
anmasınayarar.Konumlar
ınherhangibiriiçi
nbir
değişkenkullanı
lacaksadeği
şkeni
nti Tr
pi‘ ansform’ol
makzor undadır.Örnekbi
r
kull
anım:

varobje:Transfor
m;
funct
ionUpdate(){
varmesafe:fl
oat=Vect
or3.
Distance(
obj
e.posit
ion,tr
ansf
orm.posi
ti
on)
;
i
f(mesafe<=50)
{
Destr
oy(gameObj
ect)
;/*Scri
pti
nuygulandığıobj
eyokedil
ir
.*/
}
}

Vector3.
Nor
mali
ze()
:Gi
r i
lenVect
or3türündenvekt
örünx,
yvezdeğer
ler
ini
,vekt
örün
uzunluğu1ol
acakşeki
ldedüzenl
er.Örneğin:

varvektor:Vector
3=Vector
3(1,2,2);/
/Uzunl
uğu3bir
im ol
anbirvektör
vekt
or.Normalize(
);/
*Ar

kvekt
or'undeğer
i(1/
3,2/
3,2/
3)oldu.Böyleceuzunl
uğu
da1bi r
im oldu.*/

Vect
or3.nor
mali
zed:Vect 3:Vect
or or3.
Normali
ze(
)'
dentekf
arkı
,bufonksiyongi
ri
len
vekt
öründeğer
inideği
şti
rmez,
onunyeri
neyenibi
rvekt
ördöndür
ür.Örneğin:

varvekt
or1=Vect or3(1,2,2) ;
varvekt
or2:Vector3;
vekt
or2=vector1.
nor malized;/*Ar

kvekt
or2'
nindeğer
i(1/
3,2/
3,2/
3)ol
urken
vekt
or1'
indeğer
i(1, 2,2)olarakkal
dı.*
/

Mathf.
Clamp(fl
oat
BirSayi:float
,minimumDeger:f
loat
,maksi
mumDeger:f
loat)
:
Bi
rdeğişkeni
ndeğeri
nin,birminimum vebi
rmaksimum ol
maküzer
e2değerin
ar
asındaolması
nıgaranti
ler.Örneği
n:
f
unct
ionUpdate(
){
t
ransf
orm.
Transl
ate(
Vect
or3(
Mat
hf.
Clamp(
transf
orm.
Transl
ate,
-
15,
15)
,0,
0))
;
}

Bukodlayapı
lan,
eğerkodunuygulandığıobj
eni
nxkoordinat
ındakikonumu-
15’
den
küçükolur
saotomat
ikolar
ak-15,15’denbüyükolur
saotomatikolar
ak15yapmakt
ır
.

Mathf.
Clamp01(f
loat
Bir
Sayi:fl :BukomutMat
oat) hf
.Cl
amp(
Floatbirsayı
,0,
1)i
le
tamamenaynışeyii
fadeeder
.İçi
negir
il
ensayı
nın0i
le1'
i
ndı
şınaçıkmamasını
sağl
ar.

Mat hf.Ler
p(biri
nci
Deger:fl
oat,
iki
nciDeger:fl
oat
,sayi:f
loat):Öncel
ikleiçi
negir
il
en
"sayı"parametresi
nindeğer
ieğer0’
danküçükseUni t
yonuot omatikolarak0
yapar ken1’denbüyüksedeotomati
kol ar
ak1yapar.Ardı
ndanbaşt akarmaşı kgi
bi
duranamaçokbasi tolanbuscri
ptt
emant ıkşöyl
eişl
er:

Scri
pti
niçinegi r
il
en" sayı
"nı
ndeğer inekadar0’ ayaklaşı
rsascr i
ptindöndüreceği
değerokadar" Biri
nciDeğer "
eyaklaşır,
"sayı"0olursascript"Bir
inciDeğer"i
n
kendi
sinidöndür ür
."sayı"
nındeğeri1’enekadaryakl aşır
sascr ipti
ndöndür eceği
değerde" İ
kinciDeğer "
eokadaryakl aşır
,"sayı"1olur
sascr ipt"İ
kinciDeğer"i
döndürür.Eğer"sayı"0.5olursayaptığı
m açıklamalardandaçı karıl
abi
leceğiüzer
e
"Bi
ri
nciDeğer "il
e"İki
nciDeğer "
inarit
met i
kor t
alamasınıdöndür ür.Mesela

Mat
hf.
Ler
p(10,
50,
0.7)
;

Buscri
ptt
e"sayı"0.
7,yanidöndürülecekdeğer50’yedahayakınolacakveikisayını
n
ari
tmet
ikort
alamasındanda( 30)büyükolacak.Pekiburadadöndürüleceksayınası
l
bul
unuyor?Şöyl
eki,biz"sayı
"yı0.
7gi r
incedemişoluyor Uni
uzki" t
y!Bana
döndür
eceği
nsayı10il
e50arası
ndaol sunvebudöndür
eceği
ndeğer10sayı
sına7
bi
ri
m uzakt
aysa50sayı
sına3bir
im uzaktaol
sun.
"veUnit
ydebundanyol
açıkarak
şui
şlemiyapı
yor
:

1.(50-
10)*0.
7=28
2.10+28=38

Veböyl
ecesonuçol
arak38döndür
üyor
.

Mat hf.
Inver
seLerp(bir
inciDeger:fl
oat,iki
nciDeger:float,sayi:fl
oat):Mathf.
Lerp'
i
n
tam tersi
niyapar.Yanimesel abizMathf .
Lerp(10,50,0.7)deyincenasıl38
bulmuşsak;Mat hf.
InverseLerp(10,
50,38)yazar sakdabusef er0.7buluruz.Yani
sayı'
nınBiri
nciDeğerileİkinciDeğerarasındakioransalolarakkonumunubul ur
uz.
Buradandaanl aşıl
acağıüzer edöndürülendeğerbi rfl
oat't
ırvedeğeri0ile1
arasındadır
.

Mathf.LerpAngl e(biri
nciDeger:fl
oat,
ikinciDeger:float,
sayi:fl
oat) :Mathf.Lerpil
e
aynıgör eviyapanbi rfonksi
yondur.Ondant ekfar
kı;buf onksi
yonözel l
ikl
eder ece
ci
nsindenaçı l
arlaişl
em yapmaki çinolduğui çi
n,eğergiril
endeğerlerdenher hangi
bir
i360' danbüyükse, odeğer360' danküçükol anakadarondanot omat ikolarak360
çı
karıl
ır.Ancaknegat i
fbirdeğere360ekl enmez( Aslındanegatifdeğerlerl
e
mümkünsepekuğraşmayı
nçünküonl
arl
aol
uşansonuçl
arkar
maşı
kol
abi
li
yor
.)
.Bu
f
onksi
yonunyaygı
nbirkul
lanı
mı:

funct
ionUpdate(){
t
ransfor
m.eul
erAngl
es=Vect
or3(
0,Mat
hf.
Ler
pAngl
e(Bi
ri
nciAçı

kinciAçı
,
Time.t
ime),0);
}

Buf onksiyonsayesi ndeoyunbaşl adıktansonr a1sani yeiçeri


sindeobj eyekseni
etr
af ndaBi
ı rinciAçı danİ
' kinciAçı '
yadoğr ur otasyonyapar.Bunumesel a2saniyede
yapmaki çinTi me.time* 0.5yazabi li
ri
z.Bur adamesel aMat hf.
Ler pAngle(20,500,
Time.time)yazar sakİ kinciAçıot omat i
kolar ak500-360=140'aayar lanırveobje1
saniyedeyekseni nde20der eceden140der eceyedöner.Ancakaynışeyi
Mat hf.
Ler p(20,500, Time. ti
me)di yeyazsaydı kbusefer500'den360çı karı
lmayacakt
ı
veobj eönce20der eceden360der eceyedönecek, sonraUnityaçıyıotomat ikol
arak
0'
açevi recek( BunuUni tybi rfonksiyonkul lanmadankendi sisürekliyapar.)vesonra
obje140der eceyekadardönüpdur acaktı.Yani1sani yede120der ecedeği lde480
derecedönecekt i
.İşt eLer pileLer pAnglear asındakifar
kbu.

Mat hf.
PingPong(bir
inciDeger:f l
oat,i
kinci
Deger:f loat):İ
çinegirienbi
l r
incideğer
in
0ileİkincideğerar
asındakal ması nısağlar.AncakMat hf.
ClampveyaMat hf.
Lerp
fonksiyonları
ndanbari
zf arkıvar dı
r.Odaşudurki ;Biri
ncideğer,İki
ncideğer'
den
büyükol mayabaşladığı
ndabusef erdöndür ensonuçİ
ül kincideğer'
den0'adoğru
azalmayabaşl arvedeğer0' aul aşıncat arİ
ekr kincideğer '
edoğr uyüksel
meyebaşl ar
.
İşt
ebuyüzdenadıPi ngPong' tur.Yinebuyüzdenİ kincideğer0'danküçükol amaz.
Dahai yianlamaniçi
nbi rkaçör nekver eyi
m:

Mat
hf.
PingPong(
1,3)bi
zedi
rekt1döndür
ürçünkü1sayısızat
en0ile3arası
nda.
Mat
hf.
PingPong(
4,3)bi
ze2döndürür
.Neden?Çünküt
ıpkıPingPonggi
bi,
değer3'
ten
büyükse, 3'
ten0'
adoğr uger igel
meyebaşl ı
yordu.Peki4sayısı3'
tenkaçfazla:1.O
zamandöndür ül
ecekdeğerde3- 1=2olur
.
Mat hf.
PingPong(7,3)bize1döndür ür
.Tekrarneden?İşl
emiadı m adı
milerlet
eli
m:
Öncesayı3' egelenekadar3ol du.Sonrasayıgeriyedoğr
ubi r3dahagittive0'a
geldi;buaradadeğer i6oldu.Şimdisayıtekr
ar3'edoğruhareketedecekamakaç
bir
im:7- 6=1bir
im.Sonuçda0+1=1ol ar
akdöndür ül
ür.

Buol
ayıcanl
ıol
arakdahar
ahatgör
meni
çindi
nami
kbi
rör
nek:

funct
ionUpdate(){
pr
int
(Mathf.Pi
ngPong(Ti
me.
ti
me,
3))
;/*
Consol
eekr
anı
na,
0il
e3ar
ası
nda
gidi
pgelendeğerlerdöndür
ür.*
/
}

Mat hf
.Repeat(biri
nciDeger:f l
oat,i
kinciDeger:float)
:AslındaMat hf.Pi
ngPong' un
neredeyseaynı sı
,sadecebi rfarkvararalarnda.Odaşu:Pi
ı ngPongf onksiyonunda
Biri
ncideğerİkincideğeriaşıncaİkincideğer'den0'ageriyönelmevar kenRepeat
fonksi
yonundager iyönel
medi yebirşeyyok.Bi ri
ncideğerİkincideğer'
denbüyük
oluncadirekt0'ageridönerveyi neİkincideğer'edoğruyüksel meyebaşlar .Yani
meselaMat hf
.PingPong(4,3)=2ikenMat hf
.Repeat(4,
3)ise1'eeşitt
ir
.Aslındabu
fonksiyon'Bir
incideğer%İ ki
nciDeğer'
ifadesi
ylener
edeysetamamenaynıi
şi
yapıyor,yanibufonksiyonukull
anmanapekger ekdeyok.AmaUnit
ykıl
avuzunda
birfar
ktanbahsedi l
iyorkibufarkıbennedensegöremedim:).

Mathf.Abs(bir
Sayi:fl
oat):İ
çinegi
ri
lensayını
nmut l
akdeğer
ini(
Absolut
e)döndür
ür.
Yaninegatifbi
rsayıgi
rersenonunpozit
if
iniveri
r.(
Mesel
a-12girer
sen12,-
3.5
gi
rersen3.5,6gir
ersen6döndür ür
.)

Mathf
.Si
gn(bi
rSayi:f
loat)
:İçi
negir
il
ensayını
nişar
eti
nidöndür
ür.Eğersayı0'
aeşi
t
yadaondanbüyükse1döndürürkensayı0'
danküçüksede-1döndürür.

Mathf.
ClosestPower Of
Two(birSayi:i
nt):İ
çinegiril
ensayıyaenyakınolan2'ni
n
kuvvet
inibulur
.2'ninkuvvet
ler
isır
ayla1-2-
4-8-16-32-
64-128-
256-512-1024-
…diye
devam edervebukomut uniçi
ndekisayıbunları
nhangisineenyakınsaosayı
döndürülür
.(Gereksizbi
rkomutsanki:))

Mathf
.I
sPower Of
Two(birSayi:int):İ
çinegir
il
ensayı
nın2'ni
nkuvvetiol
up
ol
madı nıt
ğı rueyadafalseolarakdöndür ür
.Bencegereksi
zbirşeydi (
rçünkü'sayi%
2)==0'i
fadesideaynıi
şigörmekt edi
r.

Mathf.
NextPowerOf
Two(birSayi:i
nt):İ
çinegi
ri
lensayı
danbüyükolanve2' ni
n
kuvvet
iol
anilksayı
yıver
ir
.Sayızaten2'
ninkuvvet
iisesayı
nınkendi
siniver
ir.

Mat hf
.Approximatel
y(bir
Sayi:float,baskaBir
Sayi:float):İ
çinegiri
len2float
değerinaynıolupolmadığı
nı,tr
ueyadaf alseolarakdöndür ür
.Bunuözelkı l
anşey
i
seşukif loat'
lar
danoktadansonr asıçoknetol madığıiçi
nmesel a1. 0==
10.0/10.
0i emit
şl ruedöndürülmezken( kiaslndabut
ı r
uebirifadedi
r.)
Mat hf
.Approximatel
y(1.
0,10.0/10.0)yazdığı
mı zdabusef ertr
uedöndür ül
ür.

Mat
hf.
PI:f
loat:Pisayı
sını(
)i
fadeeder
.Değer
ideği
şti
ri
lemez.

Mat
hf.
Inf
ini
ty:f
loat:+(
Sonsuz)sayı
sınıi
fadeeder
.Değer
ideği
şti
ri
lemez.

Mathf.
Negati
veI
nfi
nit
y:f
loat:-
(Eksisonsuz)sayı
sınıi
fadeeder
.Değer
i
deği
şti
ri
lemez.

Mat hf
.Deg2Rad:f l
oat:Der ececinsi
ndenbi raçıyıradyanci nsi
neçevir
ir(Yani
dereceyi2/360il
eçar par.
).Mesela30der ece/ 6r adyana( Uni
tyburadaki'yi
i
fadeet mekyerineonukendiPIdeğer iil
e( 3.1415…)çar par.Yani3.
14/60. 5'
e
yakınbirdeğerdöndürür.)eşit
ti
r.Bubi rfonksiyondeği ldi
r,buyüzdenbi rfonksi
yon
gibikull
anı
lamaz.Busadece2* Mathf.PI
/ 360demeni nbirbaşkayol udur.Ve
mesel a60dereceyiradyanaçevi r
eceksen60* Mat hf.Deg2Radşeklindekul l
anır
ız.

Mathf.
Rad2Deg:float:Radyancinsi
ndenbiraçı
yıder
ececinsi
neçevi
rir
.Busadece
360/2*Mathf
.PIdemeninbirbaşkayoludur
.Kull
anımıtpkıDeg2Rad'
ı dakigi
bidi
r.
( a0.
Mesel 5*Mathf.
Rad2Deggibi.
.)

Mathf.
Epsil
on:float:0'
aolabi
l nf
ecekenyakı l
oattar
zındakisayı
dır(
Tabibuda
'
sonsuz'sayıgi
bi;i
şleml
erdekolayl
ıksağl
amasıi
çinkull
anıl
an,ger
çektevar
olmayanbirsayıdı
r.Lise4matematiğindegörül
enli
m x->0+(Sı

rasağdangeli
rken
l
imit)gi
bibirşeydi
r.)
.BunuUnitykendisiMathf.
Approxi
mat el
yfonksi
yonunda
kull
anır
.Busayınınoyuntasar
ımcısıtaraf
ındankul
lanıl
masınagerekolduğunu
sanmıyorum.

Mat hf.Delt
aAngl e(bi r
Sayi:f l
oat,baskaBi r
Sayi: float):Derececi nsinden2açı nı
n
arasındakienküçükaçı yıbulur.Mesel aaçı l
ardanbi ri360't
anbüyüksede, 360't
an
küçükol anakadarondanot omat i
kol ar ak360çı karı
r(Açıyıbirdeği şkende
saklıyorsandeği şkeni ndeğerinideği ştirmez, mer aketme. )
.Bur adaaçı ları
nkonumu
öneml i
dir
.Lisedet rigonomet ri
degör üldüğügi bibur adadanegat ifsonuçlar
döndür ülebil
ir.Mesel aMat hf.Del
taAngl e(10,350)yazar san-20döndür ür.Çünkü
biri
m çember deaçı larsaatyönündenegat i
fdeğeral ı
rkensaatyönününt ersinde
pozitifdeğerleralıyordu.Aynenöyl ede, 10der eceyive350der eceyibirim çemberde
çi
zer senar aları
ndakienküçükaçı nın10' dan350' yesaatyönünde- 20der ece
olduğunur ahatçagör ebil
ir n.YokamaeğerMat
si hf
.DeltaAngle( 350,10)deseydikbu
sefer+20döndür ürdü.Eğerkisonucunsür eklipozi t
ifçıkmasınıi sti
yorsan
Mat hf.Abs(Mat hf.
Del taAngle(Fl
oat ,Float )
)şeklindeyazabi li
rsin.

Mathf.
Cos(bir
Sayi:f
loat)
:İçi
nef
loatol
arakgi
ri
lenr
adyanci
nsi
ndenaçı
nın
cosi
nüs'ünüveri
r.

Mathf
.Si
n(bi
rSayi:f
loat)
:İçi
nef
loatol
arakgi
ri
lenr
adyanci
nsi
ndenaçı
nın
si
nüs'
ünüver
ir.

Mat
hf.
Tan(bi
rSayi:f
loat)
:İçi
nef
loatol
arakgi
ri
lenr
adyanci
nsi
ndenaçı
nın
t
anj
ant

nıver
ir
.

Mathf.
Acos(bi
rSayi:f
loat)
:İçi
negi
ri
lendeğer
inr
adyanci
nsi
ndenar
ccosi
nüs'
ünü
ver
ir
.

Mat
hf.
Asi
n(bi
rSayi:f
loat)
:İçi
negi
ri
lendeğer
inr
adyanci
nsi
ndenar
csi
nüs'
ünüver
ir
.

Mat
hf.
Atan(bi
rSayi:f
loat)
:İçi
negi
ri
lendeğer
inr
adyanci
nsi
ndenar
ctanj
ant

nıver
ir
.

Mat hf
.Exp(birSayi:f loat):Doğall
ogari
tmadadakul
lanı
lan'
e'sayı
sını
n'Fl
oat

ncı
Fl
oatdeğer
kuvveti
ni,yanie sonucunuver
ir
.e'ni
nnor
maldeğerii
seyaklaşı
k
2.718282…'dir
.

Mathf.
Pow(bi r
inci
Deger:f
loat,
iki
nci
Deger:f l
oat)
:bi
ri
nciDeger
'i
niki
nci
Deger
'i
nci
iki
nci
Deger
kuvvet
inidöndürür
.Yanibi
rinci
Deger işl
emi
niyapar.

Mat
hf.
Sqr
t(bi
rSayi:f
loat)
:İçi
negi
ri
lensayı
nınkar
ekökünübul
ur.

Mathf.
Log(
):İkifarklıkul
lanı
mıvardı
r:Mathf.
Log(a:fl
oat,b:fl
oat)i
leloga(
b)'
yi
bul
ursun.İ
kincikullanımıiseMathf.
Log(a:fl
oat)şekl
indedi
r.Bundaisedoğal
l
ogari
tmakul l
anılı
r,yanil
oge(a)yadabirbaşkadeyi
şleln(
a)bulunur
.

Mathf
.Log10(bi
rSayi:f
loat):Mathf
.Log(
10,bi
rSayi:f
loat)i
let
amamenaynışeydi
r,
onukı
sayoludur
.10tabanındalogar
itmaalmayayarar(Enmeşhurl
ogar
it
ma).
Mat hf.
Max(Enaz2sayı( Aral
arındavir
gülkonulmalı):fl
oat)
:Giri
lensayıl
ar
arasındanenbüyükolansayıyıdöndürür.Buradadikkatedi
lmesigerekenhusus;
sayılar
danbiii
r nti
sediğerl
erideint,
birif
loatisedi
ğerl idef
er l
oatolmak
zorundadır
.

Mat hf.
Min(Enaz2sayı(Ar
aları
ndavir
gülkonulmal
ı):f
loat):Giri
lensayı
lar
arasındanenküçükol
ansayıyıdöndür
ür.Buradadi
kkatedil
mesiger ekenhusus;
sayılar
danbiii
r nti
sedi
ğerl
erideint
,bi
rifl
oatisedi
ğerl
eridefloatolmak
zorundadır
.

Mathf.
Round(bi r
Sayi:fl
oat)
:İçi
negir
il
ensayı
yıenyakınt
amsayıyayuvar
lar
.Özel
durum ol
arak;eğergir
il
ensayı
nınsonu".
5"i
lebit
erse,
osayıyaenyakı
nçift
tamsayıdöndürülür
.

Mathf.RoundToInt
(bi
rSayi:f l
oat):Mathf
.Round'
dantekf arkı
,buf onksiyonda
döndürülendeğernf
i l
oattipindedeğildei
nttipi
ndeolması dı
r.Bufar kı
nbi zeet
kisi
i
se;birdeğişkenebufonksiyonundöndürdüğüdeğeriatayacaksak, hataal mamak
i
çindeğişkenintür
ünegörebuf yonuyadaMat
onksi hf.
Roundf onksiyonunu
kul
lanırı
z.

Mathf.
Ceil
(bir
Sayi:f
loat):İ
çinegi
ri
lensayı
yı-eğerzat
enbirtamsayı
yaeşi
tdeği
lse-
yukar
ıyuvarl
amayayarar.Meselai
çine5.3gir
ersen6,9.0gir
ersen9,2.
04gi
rer
sen3,
-4.
6gir
ersen-4döndürür.

Mathf.
Cei
lToI
nt(bi
rSayi:fl :BununMat
oat) hf
.Cei
l'
dantekfar
kı;bukomutint
t
üründensonuçdöndürürkenMathf
.Cei
lisefl
oatcinsi
ndensonuçdöndürür.

Mathf.Fl
oor(bi
rSayi:f
loat)
:İçi
negiri
lensayıyı–eğerzat
enbirtamsayı
yaeşi
t
deği
lse-aşağıyuvar
lamayayarar.Mesela5.3girer
sen5,9.0gir
ersen9,2.
78
gi
rersen2,-4.
6girer
sen-5döndür ür
.

Mathf.
Floor
ToI
nt(bi
rSayi:fl :BununMat
oat) hf
.Fl
oor
'dantekfar
kı;bukomutint
t
üründensonuçdöndürürkenMathf
.Fl
oori
sefl
oatci
nsindensonuçdöndürür
.
 UYGULAMAYLAİ
LGİ
LİKOMUTLAR

Appli
cati
on.
LoadLevel
("Geçil
ecekBölümün(Scene)Adı":St
ri
ng):Başkabi
r
scene’
e(böl
üm)geçmeyeyar ar.Ancakbukodunişeyaramasıi
çingeçi
şyapıl
acak
bölümün"Fi
le–BuildSett
ings" ScenesI
deki" nBuild"kı
smınaekl
enmesigerekl
idi
r.

Appl
icat
ion.
Qui
t(
):Oyunusonl
andı
rmayayar
ar.

Applicati
on.OpenURL(http:/
/yasirkula.
com/:Stri
ng) :İ
lgi
liwebsayfası
nıaçmaya
yarar.EğerWebPl ayer’
dakullanıl
ırsaoyununoynandığısayfayıyönl
endi
ri
r,nor
mal
bi .
r‘exe’oyundakullanı

rsasiteyivarsayı
lant
arayı
cıdaaçar.

Appli
cation.l
oadedLevelName:String:Ensonyükl
enenscene’i
nadınıdepolarki
normalşar t
lar
dabuoyuncununoandabul unduğuböl
ümdür .Mevcutbölümün
hangisiolduğunutestediponagöreişl
em yapmakiçi
nidealbi
rscri
ptt
ir.Değeri
sadeceokunabi l
ir
,değişti
ri
lemez.

Applicat
ion.plat
for
m :Runt i
mePl atform :Oyununoynandı ğıci
hazı
n–pl at
formun
adınıdepolar.Değeri
,oynanıl
anpl atformagör egenelde
"RuntimePlatfor
m.Wi ndowsPlayer"" Runti
mePl at
form.WindowsWebPlayer"
"RuntimePlatfor
m.Andr oi
d""Runt i
mePl atf
orm. I
PhonePlayer"
"RuntimePlatfor
m.FlashPlayer""Runt i
mePlatform.OSXPlayer"
"RuntimePlatfor
m.OSXWebPl ayer"değer l
eri
ndenbi r
inial
ır
.(Bunl
ardanbaşkabir
kaç
değerdahavar .
)

Application.CaptureScr eenshot(" Oluşturul


acakr esi
m dosyasınınadı.png":Stri
ng,
boyut:i nt):Ekranınr esminiçekmeyeveonuoyununol duğuklasörekaydet meye
yarar.Eğer" boyut"undeğer i1yapı lı
rsaçekil
enresmi nboyutuoyunekr anının
boyutuyl aaynıolur .Resmi nboyut uoyununoynandı ğıekranı
nboyut uyladoğru
orantıl
ıdır.Eğer"boyut "
uyüksel tirsenr esminçözünür lüğüdear t
arvehat t
abu
esnadagr afikkal
itesindenhi çbirşeykaybol maz.Mesel abudeğer i4yapar san
ekranınçözünür l
üğünün4kat ıboyut ları
ndabirresim kaydedil
irvenor maloyuna
göreçokdahakal i
telibirgörselesahi polur
.Yanir esim çeker
kenoyundaki
görsell
er dendahakal it
eligörsellereldeedebili
rsinbusayede.Ancakdeğerne
kadarbüyür seresmi nçeki l
mesür esiveboyut ubi rokadaruzar .

Appl
icat
ion.
dat
aPat
h:St
ri
ng:Oyununyükl
üol
duğudi
zinidöndür
ür.

Appl
icati
on.persi
stent
DataPath:Str
ing:Oyununsavedosyal
arı
nıkaydetmekiçi
n
i
dealbirkonum döndürür.Windows'
tabu"Belgel
eri
m"ol
urkenmobilcihazl
arda
t
elef
onunhaf ızakart
ıolur
.
 ANİ
MASYONLAİ
LGİ
LİKOMUTLAR

animation.
Play("AnimasyonAdı ":St r
ing) :Objedeismigiri
lenanimasyonun
oynatı
lmasınısağlar.Buani masyonl aröncedent anımlıol
mal ı
.Birobjedekivarolan
animasyonlarıonuseçi nceI nspectordakiAni
’ mat i
oncomponent ininaltı
ndaki
Animat i
onssekmesi ndengör ebi
lir
sin.Objeninani masyonları
nıtanımlamaki çi
nse
(Unit
y’deoluştur
ulmamı ş,başkabi rprogramdaol uşt
urulmuşanimasyonl arı
)onu
Assetolarakekleyi
ncePr ojepanelindenseçi psağdakiAni mationskısmı nınalt
ından
"Spl
itAnimations"seçeneği niseçeceksi nvealt ı
ndakikutucuktaanimasyonl araisi
m
gir
iponları
noynat ı
ldığıkarear al
ığı
nıgi r
eceksin.

ani
mat i
on.Stop(
):Objedeçal
ışmakt
aolantüm animasyonl
arıdurdurmayayar
ar.
Veyahutt
a" ani
mation.St
op("
AnimasyonAdı ":St
ri
ng);
"komut ukull
anı
lar
aksadece
bel
libi
ranimasyonundur dur
ulmasıdasağlanabi
li
r.

animat i
on.CrossFade(" AnimasyonAdı ":Str
ing) :İ
smigiril
enanimasyonu
oynat mayayar ar."animati
on.Pl
ay()"
denf ar
klıolarakismigiri
lenani
masyonu
direktgeçi
şyapı lmaz, mevcutanimasyondanoani masyonayumuşakbi rgeçi
ş
yapılı
r.Böyleceani masyonlararasıkeskinhareketdeğişikl
ikl
eri
ninönünegeçi
lmi
ş
olur.Çokkul l
anışlıbirözel
li
kyani.

animation.Blend("AnimasyonAdı ":Stri
ng, hiz:int):İsmigirilenanimasyonl a
mevcutoynanmakt aolanani masyonubirleşti
rir
.Ör neğinkar akter
inilerivesağa
git
meki çin2ayr ıanimasyonuol sun.Karakt ersağilerigiderkenbu2ani masyonu
kombineet meki çinbukomutkul l
anıl
abil
ir.Ancaköncesi nde
"ani
mat ion.SyncLayer(
) "kul
lanı
mıöneml idir.Eğer"hiz"değer i1yapılırsayeni
animasyonger çekhızı
yl amevcutanimasyonadahi lol ur
.Amaeğer" hiz"değeri0
yapıl
ır
sai smigi r
il
enani masyonunbukombi neani masyonl aber aberoynaması
durdurulur.

animation.SyncLayer(layerNumarasi:int):Birdençokani masyon
"ani
mat ion.Bl
end()"i
lekombi needil
eceksebunl ar
ıneşzamanl ı,düzgünbirşekil
de
beraberoynamat ı
lmasınısağlar
.Bununnası lbaşar ı
ldı
ğıpeköneml ideği
l,
önemli
olanişeyar aması.Start
()fonksi
yonundakul lanımıöneril
ir
.Eğerbi ranimasyonun
l
ayer '
ı"animati
on["AnimasyonunAdı ":Stri
ng].l
ayer=l ayer:i
nt;"komut uil
e
değişti
ril
mezse, heranimasyonunvar sayıl
anbaşl angıçlayer
'ı0'dı
r.

ani
masyonAdi
.normal
izedTi
me:float:Biranimasyonunenbaşt andeği
ldeor
tadan
yadabaşkabi
rkonumdanbaşlaması nısağlar.Değeri0yapı

rsaani
masyonen
başt
an,1yapı

rsaensondan(Aynışey),0.5yapılı
rsaort
adanbaşlar
.
 DOSYAYÖNETİ
Mİ(
FILEMANAGEMENT)

NOT1:Klasörl
erl
eçal ı
şır
kenDir
ectory.
Exists(
),dosyalarl
açalı
şır
kenFi l
e.Exi
sts(
)
metodl
arıvası
tasıyl
aönceli
kleüzeri
ndeişlem yaptığı
nızdosyanıngerçektenvar
ol
upolmadığınıkontr
oledinveböyleceolasıhataları
nönünegeçi n.

NOT2:Bur adakimetodl dageçenkonum par


ar ametr
esi
nindeğeriklasör
ler
le
çal
ışı
rkenör neği
n"D:\WordpressDersler
\"i
kendosyal
arl
açalı
şırkenseörneği
n
"D:
\Wor dpressDersl
er\Ders.
pdf"şekl
indeol
malıdı
r!

Di
rectory.
Exi
sts(konum :Stri
ng):İ
çinebirklasör
egidenyol(pat
h)giri
li
rvemetod
buklasörünvarolupolmadığı
nıdöndürür.Eğerbeli
rt
il
enyoldagerçekt
enil
gil
i
kl
asörvarsatrue,yoksaf
alsedöndürür.

Dir
ect
ory.
Creat
eDi
rect
ory(konum :St
ri
ng)
:Konumugi
ri
lenkl
asör
üol
uşt
urmaya
yar
ar.

Di
rect
ory.
Delet
e(konum :St
ri
ng,her
SeySil
insi
n:boolean):Konumugi r
il
enkl
asör
ü
si
lmeyeyar .Eğerher
ar SeySil
insi
ntr
ueiseklasör
üniçeri
ğidesil
ini
rkenfal
sei
se
kl
asörüni
çeri
ğisi
li
nmez.

Dir
ector
y.Move(eski
Konum :Stri
ng,yeni
Konum :St
ri
ng)
:Bi
rkl
asör
ü
eski
Konum'danyeniKonum'
at aşı
r.

Di
rectory.
GetDi
rect
ori
es(konum :St
ri
ng):Konumugiri
lenkl
asör
üniçer
isi
ndekit
üm
al
tklasörl
eregi
denyoll
arıbi
rStr
ingarr
ay'
indedepol
arvedöndür
ür.

Di
rect
ory.
GetFi
les(konum :Stri
ng):Konumugi r
il
enklasör
üni
çindekit
üm dosyal
ara
gi
denyoll
arıbi
rStri
ngarr
ay'indedepolarvedöndürür
.

Fi
le.
Exists(konum :St
ri
ng):İçi
nebirdosyayagidenyol(path)gi
ri
li
rvemet
od
dosyanınvarolupolmadı
ğınıbool
eancinsindendöndürür.

Fil
e.Wri
teAl
lText
(konum :St
ri
ng,
icer
ik:St
ri
ng)
:Gi
ri
lenkonumdagi
ri
leni
cer
ik'
e
sahipbi
rdosyaoluştur
ur.

Fi
le.
AppendAll
Text
(konum :St
ri
ng,iceri
k:St
ri
ng)
:Gi
ri
lenkonumdakidosyanı
n
mevcuti
çeri
ği nensonunai
ni ceri
k'
iekler
.

Fi
le.
ReadAll
Text(konum :St
ri
ng)
:Konumugi
ri
lendosyayıaçarvei
çer
i niSt
ği ri
ng
ci
nsindendöndürür.

Fi
le.
Del
ete(konum :St
ri
ng)
:Konumugi
ri
lendosyayısi
ler
.
 Dİ
ĞERKOMUTLAR(
KATEGORİ
LENDİ
RİLMEMİ
Ş)

col
or.
a:f l
oat:Bi
rrenkdeği
şkeni
ni Al
n‘ pha’

nı,
yanisaydaml
ığı
nıdeği
şti
ri
r.Değer
i0
-1ar
asındaolmalı
dır
.

col
or.
r–col or
.g–color
.b:fl
oat:Bi
rrenkdeğişkeni
ninRGB(Kır
mızı
-Yeşi
l-
Mavi
)
değer
ler
iniayr
ıayr
ıdeği
şti
rmeyeyarar.Değer
leri0-
1arası
ndaol
malı
dır.

gameObj
ect
.SetAct
iveRecursivel
y(t
rue:bool ean) :Scri
pti
nyazıl
ıol
duğu
GameObj
ect
'iveonunvar satüm chi
ldobjeleriniakti
feder gameObj
.Yani" ect
.act
ive
=tr
ue;
"komutunuobjeveonunt üm chi
ld'
l
ar ıi
çinger çekl
eşti
ri
r.

arr
ayAdi .
RemoveAt(1:int)
:Birdi
zini
n(array)2.el
emanı
nı(Çünküdizil
erde
numar al
andır
ma0’danbaşlarvebudadi zini
n1.elemanı
nadenkgelir.Yani
numar ası1olanel
emanıdadizini
n2.elemanınadenkgelmektedi
r.
)silmeyeyar
ar.
Buel emandansonrabaşkaelemanlarvarsaherbir
ini
nnumarası,
aradakibu
boşluğudoldurmakiçi
n,1düşer.Örneği
n:

funct
ionSt art
()
{
vardizi:Array=["Süleyman" ,"Yasi
r",
"Kul a"]
;/*3elemanl ıdizi
yioluşturdum.*
/
print
(di
zi[0]
);/*
Konsol a"Süleyman"yazdı r ı
r.
*/
print
(di
zi[1]
);/*
Konsol a"Yasir"yazdır
ır.
*/
print
(di
zi[2]
);/*
Konsol a"Kula"yazdırı
r.*/
dizi.
RemoveAt (1)
;/*Dizi
nin1+1=2.el emanıol an"Yasir
"idizidenat ı
yoruz.*
/
print
(di
zi[0]
);/*
Konsol a"Süleyman"yazdı r ı
r.
*/
print
(di
zi[1]
);/*
Konsol a"Kula"yazdırı
r.Çünkü" Yasir
"dizidenatıl
dıve
"Yasi
r"densonr akiel
emanl arı
nnumar alar
ıbirerazaldı.*/
print
(di
zi[2]
);/*
Hataver i
rçünküar t
ıkdiziden" Yasir
"git
tiğiiçindizi2elemanlı
vebuyüzdendi zide2+1=3’üncüel emandi yebi rşeykal madı.
* /
}

arrayAdi.Add(birSey:object)
:İsmiver
il
enarr
ayi
nensonel emanı
ndansonr
ayeni
birelemanol uştururveonabirSey’
i
ndeğeri
niver
ir
.(bir
Seyyer i
nei
ster
sen
"mer haba"gibibirStr
ingveyabaşkabirobj
edeğerigi
rebi
li
rsin.
)

ar
rayAdi
.l
engt
h:i
nt:İ
smiver
il
enar
rayi
nkaçel
emandanol
uşt
uğunusöyl
er.

arr
ayLi
stAdi
.Count:i
nt:İ
smiver
il
enArrayLi
st’
i
n( Bunl malAr
arnor ray’
l
erdenbi
raz
dahafar
klı
dır
.)kaçel
emandanol
uştuğunusöyler
.

ar
rayLi
stAdi
.I
ndexOf(birSey:obj
ect):İsmiveri
lenArrayList’
i
niçeri
si bi
ndeki‘ r
Sey’
el
emanını Obj
n( ecttüründeolmalı
dır
.)arr
ayli
st’
i
nkaçı ncıelemanıol
duğunubul urve
i
ntolar
akgeridöndürür.Eğerar
rayl
ist’
t bi
e‘ r
Sey’indeğeriyoksa-1döndür ür
.

coll
ider
.Cl
osestPoint
OnBounds(bi
rVekt
or:Vect
or3):Bi
robj
eni
n,gi
r i
lenVect
or3
şekl
indekibi
rVektornokt
ası
naolanenyakı
nnokt nıVect
ası or3şekl
indedöndürmeye
yar
ar.

Scr
een.
widt
h:i
nt:Oyunekr
anı
nınpi
xelci
nsi
ndengeni
şli
ğiniver
ir
.

Scr
een.
hei
ght:i
nt:Oyunekr
anı
nınpi
xelci
nsi
ndenyüksekl
iği
niver
ir
.

Camer a.pi
xelWidth:fl
oat:Gir
il
enkamer anınpixelci
nsindengenişl
iği
niveri
r.Tek
kamer al
ıoyunlardadeğerigeneldeScreen.widthil
eaynıdı
r.Ancakbirkamer a
örneğinmi ni
mapgör evigörüyorsa;bi
rbaşkadeyi şl
eoyunekranını
nsadecebi r

smı nıkapsıyorsaozamanbudeği şkenindeğeriScreen.
width'
i
ndeğer i
ndenf ar
klı
olurvemi nimapınpixelci
nsindengenişli
ğinidöndürür.

Camera.
pixel
Hei
ght:f
loat
:Gi
ri
lenkameranı
npi
xelci
nsi
ndenyüksekl
iği
niver
ir
.
(Ör
nekkull
anı :Camer
mı a.
mai
n.pixel
Hei
ght)

Camer a.Viewpor t
PointToRay(pozi syon:Vect or3):Asl ı
ndagerçektenkarmaşı k
sayıl
abilecekbirkomut .Kamer adanbaşl ayanveekr anın(pozi
syon.x,pozisyon.y)
koordi
nat lar
ındangeçenbi rraydöndür ür
.Buyüzdenpozi syonvektörününz
argümanıönemsi zdir,i
hmaledi l
ir.Dahasonr abur ayi leRaycastyapılabi
li
r.Ekr
anın
ensağı ndapozi syon.x1,enüst ündepozi syon.ydeği şkenl
eri1değerinial
ır.Bu
döndürül enray'
ikullanarakoluşturulanRaycast '
ıoluşturmanınuzunyol uise
"Physi
cs. Raycast(Camer a.
main.transfor
m. posit
ion,
(Camer a.
main.Vi
ewpor
tToWor l
dPoi
nt(pozi
syon)-Camera.
main.t
ransf
orm.posi
ti
on
));"yapmaktı
r.Kı
sayoli
se
"Physics.
Raycast
(kamera.
Viewport
Point
ToRay(pozi
syon));
"dur
.Örneğin
kameranıngörüşalanı
nıntam ortasındançı
kanvekameranı
nbaktığıyön
doğr
ultusundagidenbirraycastoluşturmaki
çinşukomutkul
lanı
labil
ir
:

varvurus:RaycastHi
t;
Physics.
Raycast(Camera.
mai
n.Vi
ewpor
tPoi
ntToRay(Vect
or3(0.
5,0.
5,1.
0))
,vur
us
);

Camer a.ScreenPoi
ntToRay(pozisyon:Vect or3):Anl
adığım kadar ı
yla
Viewpor t
PointToRay(pozi
syon)komut undansadecebi rfar
kıvar :Viewport
komutundaekr anı
nensağüst ü(1,1)ikenbukomut taekranınensağüst ü
(Camer a.pi
xelWidt
h,Camera.pi
xelHeight).Yanikameranınverdiğigör ünt
ününpi
xel
cinsi
ndeneniveboyu.

Screen.l
ockCursor:boolean:Mouse'
ninekrandagözükmemesiveol duğuyer den

mı l
damaması ,böyleceoyunuoynarkenyanlı
şlı
klabaşkayerler
et ı
klayarakoyun
ekranı
nınaktif
li
ğinikaybetmemesii
çingüzelbirkomut.Eğer"Screen.lockCur
sor=
tr
ue;"yapıl
ır
samouseki l
it
leni
r,Scr
" een.l
ockCursor=false;
"yapıl
ırsakili
taçıl
ır
.

NOT:Buözel
li
kmaal
esefUni
tyedi
törekr
anı
ndaçal
ışmamakt
adı
r.

tr
ansform.
DetachChi
ldr
en():Objenineğervar satüm chi
ldobjeler
inichil
d'l
ık
durumundançıkar
ır
,yanihiyer
arşiyikır
ar.ÖrneğinnormaldeDest roy(gameObject)
komutubirobj
eyichi
ldobjeler
iyl
eber aberyoketmeyeyar arancakeğerchi ld
objel
eri
nyokedil
mesinii
stemiyorsakşöyl ebirçözüm yolubulunmakt adı
r:
t
ransfor
m.Det
achChi
ldr
en(
);
Destr
oy(gameObj
ect);

tr
ansform.I
sChil
dOf(bi
rBaskaTr
ansf
orm :Transf
orm):Bi
robj
eninbaşkabi
robjeni
n
chil
dobjesiol
upolmadığı
nıdöndür
ür(Eğerchil
diset
rue,
deği
lsefal
sedöndür
ür.)
.
Örneğin:

/*obj
e1'in,scri
ptinatandığıobj
eninbirchi
ld'
ıol
upol madığınabakanbi
rscr
ipt*
/
varobje1:GameObj ect;
funct
ionStar t
(){
i
f(obje1.t
ransform.IsChi
ldOf(t
ransfor
m )){
pri
nt("
obje1, buobjeni
nbirchil
dobjesi
!");
}
el
se{
pri
nt("
obje1, buobjeni
nbirchil
dobjesideğil
!");
}
}

Invoke("Metodİ
smi":St
ring, sani
yeMi
ktar
i:fl
oat):İsmigi
ril
enmet odu(
Kull
anı

taraf
ındanoluşt
urul
muşbi rfonksi
yonu)gi
ri
lensaniyeMikt
arikadarsani
yegeçt
ikt
en
sonraçalışt
ır
mayayarar
.Ör neğin:

funct
ionSt ar
t(){
I
nvoke(" BeniKlonla"
,1.5);/
*Scr i
ptçalı
ştı

lmayabaşl andı
ktan1.
5sani
ye
sonraBeni Kl
onlaf onksiyonuçağrı
larak(0,
0,0)pozisyonundaobjeninbi
rkl
onu
oluşt
uruluyor.*/
}
funct
ionBeni Klonla()
{
I
nstantiate(gameObj ect,
Vector3.
zero,Vector3.zer
o);
}

CancelI
nvoke("Metodİ smi":Str
ing):Kodunyazıldı
ğıscript
te"Metodİsmi"i
simli
metodInvokeedilmişsebuI nvokeişl
eminii
ptaleder Met
.Eğer" odİ smi"boş

rakı
lısa(Cancel
r Invoke()şekli
nde)mevcutscriptteçalı
ştı

lmışolantüm I
nvoke
i
şlemleri
nii
ptaleder(Invokeedil
mişmet odl
arı
nisi mleri
nebakmaksı zı
n).

Resour ces.Load("Asseti
nadı":Stri
ng) :Proj
ectpaneli
ndeeğerher hangibiryer
de
rResour
bi cesklasörüvarsa,onuniçindekibirasseti
leişlem yapmayayar ar.
Dil
enirseiçerisi
nde2.birparamet r
eol arakassetinnetüründeolduğubel ir
til
ebi
li
r.
Böyleceör neğin2f ar
klı
Resour cesklasöründeaynıisimli2farklıassetvarsa,
Unit
y’ehangi sindenbahsetti
ğimizianlatabi
li
riz:

guiText
ure.
text
ure=Resources.
Load("
dusman",
Text
ure2D);
vardusman:GameObj ect=Inst
anti
ate(
Resour
ces.
Load("
dusman"
,GameObj
ect
));

@scr
iptRequi
reComponent
(Audi
oSour
ce)
:Scr
ipt
inuygul
andı
ğıGameObj
ect
’t
e
scri
pti
nçalı
şmasıi çin"AudioSour ce"Component ’
i
ni nbulunması nızorunlukıl
ar.
Eğeryoksakendiot omatikolar
akekl er
.Meselascr i
pt i
nyazı l
dığıobjedebirses
dosyasıçal
ınacaksa‘ AudioSour ce’componentiger ekliol
duğundanbu
componentinvar l
ığındanemi nolmayayar ar
.Genel descr ipti
nensonunayazı l
ırbu
kodveenöneml iözel l
iği
,bukodunsonuna" ;"(Noktalıvirgül)işar
etikonulmaz.
ÇünkübubirJavaScr iptkodudeğil,Unit
ymot orununkendi nehasbi rkodudur.

#pragmast rict
:Script
tekat
ıkural
lar
ınuygul
anmasınısağlar
.Yanimeselabir
değişkentanımlarkenonuntürünüdeyazmakzor undaolmanızısağl
ar.Bence
güzelbirözelli
k.Bukodunsonunanokt al
ıvi
rgül
";"konul
maz.Bukomutayr ıca
zorunlukıl
dığıbuözelli
ksayesi
ndeperformansartı
şıdasağlar
.
BAŞKAÖNEMLİBİ
LGİ
LER

St
ri
ngOl
mayanBi
rDeği
şkeni
nBi
rSt
ri
ngİ
çer
isi
ndeKul
lanı

Ör
neğinbir‘
int
’deği
şkeni
nibi
ryazıiçi
ndedirekgöst
ermeyekalkarsanı
zhat
a
al
ır
sını
z.Bununyeri
neşöyl
ebirkul
lanım yapı

rsapr
oblem çözül
ür:

varsayi:i
nt=45;
varyazi:St
ri
ng=""+sayi
;

Buradayaptı
ğımızşey‘
yazi=sayi
’demekyer i
ne(Böyleyazar
sanızhat
aalı
rsını
z.)
yazi
‘ ="
"+sayi
’demekoldu.Buradadil
ersekikit
ır
nakişaret
iarası
naekst
rabiryazı
gi
rebil
i
riz.Mesel
a‘yazi
="Sayi
ninDegeri:"
+sayi;
’gi
bi.

Bi
rObj
edeHer
hangiBel
ir
liBi
rComponentVarmıYokmuKont
rolEt
mek

i
f(
obj
em.
ri
gidbody)
{

}

Böylebirkull
anı obj
mdaeğer‘ em’ obj
esi
nin‘rigidbody’
component ’
ivar i
sa‘f’
i
n
i
çindekiyapıl
acakşeyl
erçal
ıştı


r.Eğerbiz‘objem’de‘r
igidbody’yoksabi
rşeyler
yapmaki st
iyorsakenbaşabir‘
!’
(Ünlem İ
şaret i
)koyabi
li
riz,yanii
:‘f(!
obj
em.r
igidbody)

şekl
inde.

Böl
meYer
ineÇar
pmaKul
lanmak(
Gar
ipBi
rŞey)

Birdeğişkenindeğer i
ni nyarısı
nıbulmakiçi
n"degisken/2"yazı

rkısayol
danancak
gaript
irki"degisken*0. 5"yazarsanUnity(Dahadoğr usubil
gisayarı
nkendi
si,
yani
oyunmot oruylaalakalıbirşeydeğilbu.
)sonucudahaazCPUhar cayar
ak
buluyor(muş) .Çünkübi lgi
sayarçarpmai şl
eminibölmeişleminegöredaharahat
yapıyor(
muş) .Sebebi nibilmiyor
um amabubi lgi
yibirdençokyerdegördüm ve
madem öyl ebi zdeçar pmai şleminikul
lanı

zohal de:)


thi
s’Komut
u

Bazenbirkull
anıcıtanımlıfonksi
yonuniçer
i ndet
si his.
bir
DegiskenAdişekl
indebir
kull
anı
mar astlayabil
ir
sin.Buaslındaçokbasi
tbirşey,buyüzdenbunuuf akbir
örnekl
eanlatayım:

varyazi:St
ring=" bir
";
funct
ionStart(
)
{
Degi
stir
("i
ki"
);
}
funct
ionDegistir
(yazi:St
ri
ng)
{
thi
s.yazi=yazi
;
pri
nt(yazi
);/
*Consol
eekr
anı
na"
iki
"yazdı

r.
*/
}

Bur adadagör düğüngi bikullanıcıtanı


mlıbirfonksiyonol anDegi st i
r’
iniçinde
this.yazi=yazikomut unukul landım.Pekineden?ÇünküDegi sti
rf onksi yonuna
gelenar gümanı nismine? :yazi–Pekibi zdedeyazidi yebirdeği şkenzat envarmı ?
Var .İştebur adabizbu2f ar klışeyindeğeratamasısı rasında( Değişkeni l
ear güman)
birbirinekar ı
şmamasıi nt
çi his.yaziieyazideği
l şkeni niif
adeedi yor uz( thisböyle
dur uml ardaherzamandeği şkenii fadeetmeyeyar ar.).Ardındant his.yazi=yazi
diyer ekyazideği şkeninindeğer niyaziar
i gümanınındeğer i
neeşi tl
iyor uz.Eğeror ada
thiskul lanmasaydı kor ayayazi
t =yazigi
bisaçmabi rifadeçı kacakt ıveUni tybize
uyar ıver ecekt
iveyapmaki stediğimizşeydeger çekleşemeyecekt i.Pekibui şlemi
şöyl eyapamazmı ydık:


f
unct
ionDegisti
r(bi
rYazi:Str
ing)
{
yazi=bir
Yazi;
pri
nt(
yazi)
;/*Consoleekranı
na"
iki
"yazdı

r.
*/
}

Yapabi
li
rdiktabiki.Pekibenbuncasatırboyuncani nt
çi his’
inneişeyar
adığı

anl
atmaklauğr aştı
m?Çünkübununkul l
anımıözel
li
kleyabancıki
mselertar
afı
ndan
çokyaygınvear tı
kböylebirt
hiskull
anımıyl
akarşı
laştı
ğındaasl
ındathi
s’
inorada
deği
şkeniifadeetmeki çi
nkull
anıl
dığı
nıbil
mişolacaksı
n.

TekBasamaklıBi
rSayı
yı(
YaniBi
rRakamı
)İkiBasamakt
aGöst
ermek(
Saat
ler
de
OlduğuGi
bi)

Oyunundabirsayaçolduğunudüşün.Eğerkibusayacıoutputedersen(ekr
anda
göst
erir
sen)vesaniye10'danküçükse,yanimesela6iseekrandasani
ye'06'olarak
deği
ldesadece'6'olar
akgözükür.Amabugüzeldur mazçünkübirsayaç'2:06'
şekl
indegözükürnormalde,'2:
6'gibigari
pbirşeki
ldedeği
l.Bunuayarl
amaki çin
basi
tbirkomutvar:

sani
ye.
ToSt
ri
ng("
D2")
;

BusayedeUnit sani
y' ye'deği
şkenini
ndeğeri
niherzaman( saniye3veyadahaçok
basamaklıol
madığısürece)2basamaklıol
arakgöster
ir
.Bunumesel a"D3"
yapsaydı
m 3basamakt agöster
ir
di,2:
' 006'gibi
.Örnekbirkul
lanımı
:

gui
Text
.t
ext="
"+daki
ka+"
:"+sani
ye.
ToSt
ri
ng("
D2")
;

Sonolarak,
buradakiToSt
ring(
)fonksiyonununişl
eviise'sani
ye'değişkenini
n
değer
iniosatır
dakikomutahasStringtürüneçevi
rmektir.Aynışeki
ldeisteseydi
m'
daki
ka.ToStr
ing()'
deyazabil
ir
dim amapar ant
eziçinebirparametregirmediğimiçi
n
bunagerekyok.
Bukomutunfloat'
l
ariçi
nolanbirbaşkagüzelver
siyonudamevcut.Örneği
nbi
r
vi
rgül
lüsayı
nınvir
güldensonr
asadece3basamağı nıgöst
ermeki
sti
yorsak
yazmamızgerekenkodşu:

f
loat
Sayi
.ToSt
ri
ng("
F3")
;

Per
for
mansCanavar
ıKodl
arOl
uşt
urmak

Buradaanl
atı
lanyöntem Unit
y'ni
ndirektUni
ty'
nindökümanındanaldı
ğım bi
rşeyve
gerçekt
ençokil
ginç.Eğerbüyükbiroyunprojesi
ndeçal
ışı
yorsantavsi
yeedil
enbir
yöntem.Şuörnektenyol
açıkayım:

f
unctionUpdat
e()
{
t
ransfor
m.Tr
anslat
e(0,
0,5*Ti
me.
del
taTi
me)
;
}

Bubasi tkodunyapt
ığışeyobjeyiherkar
ede5metr
eiler
igöt
ürmek.Bukoduşöyl
e
değişti
ri
rsekbir
azdahaf azl
akodyazmı şol
uyor
uzancakçokdahafazl
aperf
ormans
al
ıyoruz:

pri
vatevartr
ansf
ormComponent i:Tr
ansfor
m;
functi
onAwake()
{
tr
ansfor
mComponenti=transform;
}
functi
onUpdate(
)
{
tr
ansfor
mComponenti.
Translat
e(0,0,
5*Ti me.
del
taTi
me)
;
}

Buradagör ül
düğüüzer eobj nTr
eni ansf orm component 'niAwake(
i )fonksiyonunun
i
çindebirdeğişkene( Değişkeninpr i
vat eolması zorunl
udeğil.AncakInspector'
da
gözükmesi ni
nhiçbiranlamıol madı ğıiçinpr ivatetavsi
yeedili
r.
)atı
yoruz(Awake
f yonununSt
onksi artfonksiyonundanf arklar ı
;objedekiscri
pti
ntikl
iolupolmasına
bakmazsızın,Awakef onksiyonununobj eol uşturul
duğuandat ekseferl
ik
çalı
ştı

lmasıvedeneol ursaolsunAwakef onksiyonununherzamanSt art
fonksi
yonundanönceçal ıştı

lması dı
r .
).Ar dındannezamanTr ansform componenti
i
leişyapacakol sakbudeği şkenikul lanıyor uz.BusayedeUni tyherbirkarede
objeni
nTr ansform component initekrarvet ekrararamakyer i
nebucomponent i
n
yeri
nizatendepolamı şolandeği şkenikul lanar akbüyükbirperformanskazancı
sağlı
yor.Birbaşkaör nek:

pri
vatevartheRi
gidbody:Ri
gidbody;
functi
onAwake()
{
theRigi
dbody=rigi
dbody;
}
f
uncti
onFixedUpdat
e()
{
t
heRigi
dbody.
AddForce(
Vector3.
up*Time.
del
taTi
me)
;
}
@scri
ptRequir
eComponent(Ri
gidbody)

I
nspect
or'
uDebugModundaÇal
ışt
ır
mak

Çokbasi tamaazbi l
inenbirözell
ik.I
nspectorpaneli
ndeki"Inspector"yazı
sınasağ

klayıp"Debug"useçer senDebugmodunageçi şyaparsın.Bumoddaykenobj eler
in
rotasyonlarıEul
erAnglescinsindendeğildeQuaterni
onci nsindengözükürve
script
lerdeyeralanpr i
vatedeğişkenl
eri
ndeğer l
erideInspector'
da, grir
enklişekil
de
görünür( amadeği şt
iri
lemez).Ancakstati
cdeğişkenleri
ndeğer l
erineol ur
saol sun
Inspector'dagörünmez.

MevcutAndakiSaat
,Daki
kaveSani
yeDeğer
ler
ineUl
aşmak

Çokçeşitl
isebepl
erdendol ayıoyunsır
asındasaatinkaçol duğunabakı
ponagör e
i
şlem yapmakisteyebi
li
rsiniz(Örneği
nsaatgeceyar ı
sınıgöster
iyor
saakşam, öğl
eni
göst
eriyor
sagündüzat mosf eriolanbi
ryarışoyunuiçin).Zamandeğerl
erine
ul
aşmaki nJavascr
çi i
pt'
teşukodukul lanabil
ir
sin:

publi
cst at
icvarsaat:i
nt;
publi
cst at
icvardaki
ka:int;
publi
cst at
icvarsani
ye:int;
funct
ionUpdat e(){
varzaman:System.DateTi
me=Syst
em.
Dat
eTi
me.
Now;
saat=zaman.Hour;
daki
ka=zaman. Minute;
sani
ye=zaman. Second;
}

VeyaC#kul
lanacağı
m di
yor
sanaşağı
dakikodukul
lanabi
li
rsi
n:

usi
ngUnit
yEngi
ne;
usi
ngSyst
em.DateTi
me;

publ
icclassZaman:MonoBehavi our{
publi
cstati
ci ntsaat
,daki
ka,saniye;
voidUpdate(){
DateTimezaman=Dat eTi
me.Now;
saat=zaman. Hour;
dakika=zaman. Minute;
saniye=zaman. Second;
}
}
Bukodu" Zaman"adındayenibi rscri
pteyapışt
ır
ıpbuscr ipt
iistediğinGameObj ect
'e
ata.Ardındanherhangibirscriptte"Zaman.saat",Zaman.
" dakika","Zaman.saniye"
değişkenleri
yledi
rektmevcutzamanaul aşabil
ir
sin.Ancakdikkatet :EğerC#kodunu
kull
andıysabudeği şkenleredirektyoldansadeceC#scr i
ptl
erinden, Javascr
ipt
kodunukul landı
ysandirektolaraksadeceJavascr i
ptscri
ptl
erindenul aşabil
ir
sin.
YaniC#'takibirst
aticdeğişkeneJavascr ipt
't
endirektulaşamazsı n!

Publ
icBi
rSayı
nınI
nspect
or'
daAl
abi
leceğiDeğer
eAl
tveÜstLi
mitBel
ir
lemek

Diyeli
m kieli
mizdesayiadındapubli
cbirintvarvebusayınındeğer
ini
n
Inspector
'dansadece-100i l
e100arasındaveri
lebi
lmesi
niisti
yor
uz.Ozaman
değişkentanımlamamızışöyleyapı
yoruz:

@Range(-100,100)
publ
icvarsayi:int
;

C#kul
lanı
yor
sanşöyl
eyapacaksı
n:

[
Range(-
100,100)
]
publ
ici
ntsayi=0;

Yalnı
zdikkatet
:budeğişkenescri
ptt
ekifonksi
yonlar
da-100il
e100limi
tidı
şındada
değerl
erverebi
li
rsi
nvebudeğerot omati
kolarak-100il
e100arası
nadönmez!Yani
l
imitkoymai şl
emisadeceInspector
'dandeğerverir
kengeçerl
idi
r.

C#Scr
ipt
indekiBi
rpr
ivat
eDeği
şkeniI
nspect
or'
daGöst
ermek/
Düzenl
emek

Normaldepri
vatedeği
şkenl
erI
nspect
or'
dagözükmez.AmaC#'tabirpr
ivat
e
deği
şkeninbi
rüstsatı

naşukoduekl
ersenodeğişkenI
nspect
or'
dagörünürve
değer
ideğişt
ir
il
ebi
li
r:

@Ser
ial
izeFi
eld

C#i
çin:

[
Ser
ial
i
zeFi
eld]

Scr
ipt
tekiBi
rFonksi
yonuI
nspect
or'
danÇağı
rmak

Eğerscri
pti
ndekist
ati
colmayanbirf
onksiyonubeli
rsizbi
rsebept
enöt
ürü
I
nspector'
dançağır
abil
mekist
iyor
sanfonksiyonunbirüst
üneşukoduyazabi
li
rsi
n:

@Cont
ext
Menu("
Aci
klayi
ciUf
aci
kBi
rYazi
")

Eğerböyl eyaparsanInspector'
daocomponent 'i
nsağındakidişl
iikonat ı
klayı
nca
"Acikl
ayiciUfaci
kBirYazi"ismindebirbutongörünürvebubut onat ıkl
ayınca
fonksiyoneditör
deçalışt
ırı

r.KodunC#hal ii
çiniseöncekiörnekl
er deolduğugibi@
i
şaretinisil
ipkal
ankısmı[ve]i şar
etl
erii
çineal
abili
rsi
n.
Niçi
nböylebirşeyisteyeyi
m di
yebil
ir
sin.Ör
neğinTransform component
'i
nde"Reset
Posi
tion"but
onuvar ;onatı
klar
sanpozisyonsıf
ır
lanı
yor.Kendicomponent'
indede
bunabenzerbirişl
evyapmaki ster
senişteozamanCont extMenuişi
neyarar.

You might also like