You are on page 1of 127

Learning C# by Developing Games

with Unity 3D Beginner's Guide

          
                       

 
      

          

! " # ! $ % & ' # ( # ) # ' !


Learning C# by Developing Games
with Unity 3D Beginner's Guide
* + , - . / 0 1 2 3 4 5 6 7 8 9 : ; 2 8 < = > / ? 1 / @ 0

> > . / 0 1 2 ? . A ? A . B A C D + , 9 . 2 + E 2 1 / ? = + + ; F 9 - = A . A , . + C < : A C G ? 2 + . A C / @ 9 . A 2 . / A B 9 > ? - ? 2 A F G


' $

ŽƌƚƌĂŶƐŵŝƩĞĚŝŶĂŶLJĨŽƌŵŽƌďLJĂŶLJŵĞĂŶƐ͕ǁŝƚŚŽƵƚƚŚĞƉƌŝŽƌǁƌŝƩĞŶƉĞƌŵŝƐƐŝŽŶŽĨƚŚĞ
ƉƵďůŝƐŚĞƌ͕ĞdžĐĞƉƚŝŶƚŚĞĐĂƐĞŽĨďƌŝĞĨƋƵŽƚĂƟŽŶƐĞŵďĞĚĚĞĚŝŶĐƌŝƟĐĂůĂƌƟĐůĞƐŽƌƌĞǀŝĞǁƐ͘

ǀĞƌLJĞīŽƌƚŚĂƐďĞĞŶŵĂĚĞŝŶƚŚĞƉƌĞƉĂƌĂƟŽŶŽĨƚŚŝƐŬƚŽĞŶƐƵƌĞƚŚĞĂĐĐƵƌĂĐLJŽĨƚŚĞ
ŝŶĨŽƌŵĂƟŽŶƉƌĞƐĞŶƚĞĚ͘,ŽǁĞǀĞƌ͕ƚŚĞŝŶĨŽƌŵĂƟŽŶĐŽŶƚĂŝŶĞĚŝŶƚŚŝƐŬŝƐƐŽůĚǁŝƚŚŽƵƚ
ǁĂƌƌĂŶƚLJ͕ĞŝƚŚĞƌĞdžƉƌĞƐƐŽƌŝŵƉůŝĞĚ͘EĞŝƚŚĞƌƚŚĞĂƵƚŚŽƌ͕ŶŽƌWĂĐŬƚWƵďůŝƐŚŝŶŐ͕ĂŶĚŝƚƐĚĞĂůĞƌƐ
ĂŶĚĚŝƐƚƌŝďƵƚŽƌƐǁŝůůďĞŚĞůĚůŝĂďůĞĨŽƌĂŶLJĚĂŵĂŐĞƐĐĂƵƐĞĚŽƌĂůůĞŐĞĚƚŽďĞĐĂƵƐĞĚĚŝƌĞĐƚůLJŽƌ
/ @ C / . A : 2 > - = - 2 1 / ? = + + ; D

WĂĐŬƚWƵďůŝƐŚŝŶŐŚĂƐĞŶĚĞĂǀŽƌĞĚƚŽƉƌŽǀŝĚĞƚƌĂĚĞŵĂƌŬŝŶĨŽƌŵĂƟŽŶĂďŽƵƚĂůůŽĨƚŚĞ
ĐŽŵƉĂŶŝĞƐĂŶĚƉƌŽĚƵĐƚƐŵĞŶƟŽŶĞĚŝŶƚŚŝƐŬďLJƚŚĞĂƉƉƌŽƉƌŝĂƚĞƵƐĞŽĨĐĂƉŝƚĂůƐ͘,ŽǁĞǀĞƌ͕
WĂĐŬƚWƵďůŝƐŚŝŶŐĐĂŶŶŽƚŐƵĂƌĂŶƚĞĞƚŚĞĂĐĐƵƌĂĐLJŽĨƚŚŝƐŝŶĨŽƌŵĂƟŽŶ͘

/ . ? 2 , < = > / ? 1 A C I J A , 2 A F = A . 4 5 6 7
H

WƌŽĚƵĐƟŽŶZĞĨĞƌĞŶĐĞ͗ϭϭϵϬϵϭϯ

8 < = > / ? 1 A C = - 8 9 : ; 2 8 < = > / ? 1 / @ 0 K 2 C D

K / B A . - 8 > 9 : A

7 L K / B A . - J 2 . A A 2

/ . F / @ 0 1 9 F 7 4 8 G D D
) M

/^EϵϳϴͲϭͲϴϰϵϲϵͲϲϱϴͲϲ

www.packtpub.com

ŽǀĞƌ/ŵĂŐĞďLJƌƟĞEŐ;artherng@yahoo.com.au
N
Credits

WƌŽũĞĐƚŽŽƌĚŝŶĂƚŽƌ
O P Q R S T

z u v o d { o p p
U V W W X Y Z W [ Z \ V j [ \ j

] ^ _ ` ^ a ^
T b
WƌŽŽĨƌĞĂĚĞƌ
z i o d c
V V j W V V \

c d e d f c d
W W g

<ƌŝƐƟĂŶ,ĞĚĞŚŽůŵ
/ŶĚĞdžĞƌƐ
v o d d p
m V Y W

ĐƋƵŝƐŝƟŽŶĚŝƚŽƌ
h d i h d r | p
V j Z \ V j U V y Z \

>ĞĂĚdĞĐŚŶŝĐĂůĚŝƚŽƌ
} T ~  R b
` €

d d d i
k X \ l X V j d v o e f
m Z \ k W

dĞĐŚŶŝĐĂůĚŝƚŽƌƐ WƌŽĚƵĐƟŽŶŽŽƌĚŝŶĂƚŽƌ
ĚŝƟ'ĂũũĂƌ
e n o p d q o d d r p
m [ \ j

r d d
k X \ s V W \ \ t V j

 S T ‚ S T ƒ
_ ^

p u p v d c d v d
k Z \ W

ĚŝƟ'ĂũũĂƌ
p n d h o
w Z \ Z \

o p p d
x W Z j Z \ y [ w [ W
About the Author

ǁĂƐďŽƌŶĂŶĚƌĂŝƐĞĚŝŶĂůŝĨŽƌŶŝĂ͘ƵƌŝŶŐƚŚĞsŝĞƚŶĂŵĞƌĂ͕ŚĞƐĞƌǀĞĚƐŝdž
„ … † † ‡ ˆ ‰ † Š ‰ ‹

ĂŶĚŚĂůĨLJĞĂƌƐŝŶƚŚĞh^ŝƌ&ŽƌĐĞ͘tŚŝůĞŝŶƚŚĞŵŝůŝƚĂƌLJ͕ŚĞǁĂƐƚƌĂŝŶĞĚŝŶĞůĞĐƚƌŽŶŝĐƐĨŽƌ
A > A : 2 . + @ / : : + < @ 2 A . F A 9 ? < . A ? D , + @ C / ? : 1 9 . 0 A G 1 A A 9 . @ A C 1 / ? Π> A : 2 . / : 9 > Π@ 0 / @ A A . / @ 0 C A 0 . A A G
( )

ĂŶĚůĂƚĞƌǁŽƌŬŝŶŐĨŽƌ:ŽƐůLJŶĞĨĞŶƐĞ^LJƐƚĞŵƐŝŶsĞƌŵŽŶƚ͕ĚĞƐŝŐŶŝŶŐĂŶĚĚĞǀĞůŽƉŝŶŐƚĞƐƚ
A  < / , F A @ 2 E + . 2 1 A J 9 B - D
) $

Ž 1 A @ , A . ? + @ 9 > : + F , < 2 A . ? : 9 F A + @ 2 1 A ? : A @ A G 1 A 2 + + ; 9 @ / @ 2 A . A ? 2 / @ = < / > C / @ 0 : + F , < 2 A . ? G = < 2

ŶĞǀĞƌƋƵŝƚĞĚĞůǀĞĚĚĞĞƉŝŶƚŽƚŚĞƉƌŽŐƌĂŵŵŝŶŐƐŝĚĞ͘/ƚǁĂƐŶΖƚƵŶƟůϮϬϬϰƚŚĂƚƉƌŽŐƌĂŵŵŝŶŐ
ƉĞĂŬĞĚŚŝƐŝŶƚĞƌĞƐƚ͘,ĞďĞŐĂŶǁƌŝƟŶŐĂƌƟĐůĞƐĨŽƌK^ͬϮDĂŐĂnjŝŶĞƚŽƚĞĂĐŚннƉƌŽŐƌĂŵŵŝŶŐ͘
hŶĨŽƌƚƵŶĂƚĞůLJ͕ĚĂŵĂŐŝŶŐŚŝƐůĞŌŚĂŶĚŝŶĂƐŶŽǁďůŽǁĞƌĂĐĐŝĚĞŶƚŝŶϮϬϬϱĞŶĚĞĚŚŝƐǁƌŝƟŶŐĨŽƌ
9 : + < , > A - A 9 . ? D

/DĂďĂŶĚŽŶĞĚK^ͬϮ͕ƐŽdĞƌƌLJďŽƵŐŚƚŚŝƐĮƌƐƚƉƉůĞĐŽŵƉƵƚĞƌŝŶĞĂƌůLJϮϬϬϲ͘,ĞƚƌŝĞĚĂ
ĨĞǁƟŵĞƐƚŽůĞĂƌŶKďũĞĐƟǀĞͲ͕ďƵƚǁŽƌŬĂŶĚĨĂŵŝůLJĂůǁĂLJƐƐĞĞŵĞĚƚŽƐŝĚĞƚƌĂĐŬŚŝƐĞīŽƌƚƐ͘
/ƚǁĂƐŶΖƚƵŶƟůĂďŽƵƚϮϬϭϬǁŚĞŶŚĞĚŝƐĐŽǀĞƌĞĚhŶŝƚLJĂŶĚƚŚĞŶĞĞĚƚŽǁƌŝƚĞƐĐƌŝƉƚƐ͕ƚŚĂƚŚĞ
ĮŶĂůůLJŵĂĚĞƐŽŵĞƉƌŽŐƌĞƐƐŝŶƚŽƚŚĞƉƌŽŐƌĂŵŵŝŶŐǁŽƌůĚ͘,ĞďĞŐĂŶǁƌŝƟŶŐĂŶŽŶůŝŶĞ
ƚƵƚŽƌŝĂůĨŽƌhŶŝƚLJ^ĐƌŝƉƚƟƚůĞĚ ͘/ƚǁĂƐĂďĂƐŝĐƚƵƚŽƌŝĂůĨŽƌďĞŐŝŶŶĞƌƐ   ‘ ’ “ ” • – ‘ — ’ ˜ ™ – š ™ ™ › œ

F 9 C A 9 B 9 / > 9 = > A  < ? 2 = A E + . A @ / 2 A 4 5 6 6 D


)

^ŝŶĐĞƚŚĞŶ͕dĞƌƌLJŚĂƐďĞĞŶůĞĂƌŶŝŶŐηĨŽƌǁƌŝƟŶŐƐĐƌŝƉƚƐĨŽƌhŶŝƚLJ͘WĂĐŬƚWƵďůŝƐŚŝŶŐŶŽƟĐĞĚ
  ĂŶĚĂƐŬĞĚŝĨŚĞǁŽƵůĚďĞŝŶƚĞƌĞƐƚĞĚŝŶǁƌŝƟŶŐĂŬĂďŽƵƚůĞĂƌŶŝŶŐ
‘ ’ “ ” • – ‘ — ’ ˜ ™ – š ™ ™ › œ

hŶŝƚLJ^ĐƌŝƉƚ͘,ĞĚĞĐůŝŶĞĚ͘,ĞĨĞůƚƚŚĂƚηǁĂƐĂďĞƩĞƌůĂŶŐƵĂŐĞ͕ĂŶĚŚŝƐŚĞĂƌƚũƵƐƚǁĂƐŶΖƚŝŶƚŽ
hŶŝƚLJ^ĐƌŝƉƚĂŶLJůŽŶŐĞƌ͘dǁŽǁĞĞŬƐůĂƚĞƌ͕WĂĐŬƚŽīĞƌĞĚŚŝŵƚŚĞŽƉƉŽƌƚƵŶŝƚLJƚŽǁƌŝƚĞĂŬ
9 = + < 2 > A 9 . @ / @ 0 * ž E + . @ / 2 - D A  < F , A C + @ / 2 D
) &

/ǁĂŶƚƚŽƚŚĂŶŬŵLJĚĂƵŐŚƚĞƌŵŝůLJEŽƌƚŽŶ͕ƚŚĞĂƌƟƐƚŝŶƚŚĞĨĂŵŝůLJ͕ĨŽƌ
ŚĞůƉŝŶŐŵĞǁŝƚŚƚŚĞŐƌĂƉŚŝĐΖƐĚĞƐŝŐŶ͘
About the Reviewers

ǁĂƐďŽƌŶŝŶĞůŚŝ͘,ĞŝƐĂŽŵƉƵƚĞƌƉƉůŝĐĂƟŽŶƐŐƌĂĚƵĂƚĞĨƌŽŵ/ŶĚŝƌĂ
Ÿ   ¡   ¢ Ÿ  
† † £

9 @ C 1 / @ / B A . ? / 2 - 9 @ C 1 9 ? , 9 ? ? A C 1 / ? 1 / 0 1 A . ? A : + @ C 9 . - E . + F 2 1 A * J Œ + 9 . C D ¤ < . / @ 0 1 / ?
% )

ƵŶĚĞƌͲŐƌĂĚƵĂƚĞƐƚƵĚŝĞƐ͕ŚĞƐƚĂƌƚĞĚŚŝƐĐĂƌĞĞƌĂƐĂŶŝŶĚŝĞŐĂŵĞƉƌŽŐƌĂŵŵĞƌ͕ďƵƚĚŝĚŶΖƚ
ŐĂŝŶƐƵĐĐĞƐƐďĞĐĂƵƐĞŽĨĂůĂĐŬŽĨŽƌƐĂLJ͕ŶŽĞdžƉĞƌŝĞŶĐĞ͘ŌĞƌƚŚŝƐ͕ŚĞůĞĂƌŶƚƚŚĂƚƉĂƐƐŝŽŶŝƐ
ŶŽƚƚŚĞŽŶůLJƚŚŝŶŐĨŽƌŐĞƟŶŐƐƵĐĐĞƐƐ͖ĞdžƉĞƌŝĞŶĐĞŵĂƩĞƌƐĂůŽƚ͘dŚĞŶŚĞũŽŝŶĞĚ/ƐŝƐĞƐŝŐŶ
^ĞƌǀŝĐĞĂƐĂŐĂŵĞƉƌŽŐƌĂŵŵĞƌ͕ǁŚĞƌĞŚĞƉƵďůŝƐŚĞĚĂĨĞǁŝK^ƟƚůĞƐĂŶĚŽŶĞǁĞďͲďĂƐĞĚ
ŐĂŵĞ͘,ĞǁŽƌŬĞĚƚŚĞƌĞĨŽƌĂLJĞĂƌĂŶĚĂŚĂůĨ͘dŚĞŶ͕ŚĞŵŽǀĞĚƚŽ:ƵŵƉ'ĂŵĞƐ͕WƵŶĞ͕ĂŶĚ
ǁŽƌŬĞĚŽŶĂĨĞǁŐŽŽĚŐĂŵĞƟƚůĞƐƐƵĐŚĂƐZĞĂůƐƚĞĂůĂŶĚĂŶĐŝŶŐǁŝƚŚƚŚĞ^ƚĂƌƐ͘EŽǁ͕ŚĞ
ǁŽƌŬƐĨŽƌDƌDĂŶǀĞŶĚĞƌ^ŚƵŬƵůŝŶ>ĂŬƐŚLJĂŝŐŝƚĂůWǀƚůƚĚ͘ĂŶĚŚĂƐďĞĞŶƚŚĞƌĞƐŝŶĐĞƚŚĞ
, 9 ? 2 - A 9 . D

,ĞŚĂƐŶΖƚƌĞǀŝĞǁĞĚĂŬďĞĨŽƌĞ͕ďƵƚŽŶĞŽĨŚŝƐĂƌƟĐůĞƐǁĂƐƉƵďůŝƐŚĞĚŝŶ'ĂŵĞŽĚĞƌ
DĂŐĂnjŝŶĞ͘dŚĞĂƌƟĐůĞǁĂƐŽŶhŶŝƚLJϯ͘zŽƵĐĂŶĚŽǁŶůŽĂĚƚŚĞĂƌƟĐůĞĨƌŽŵŚŝƐƉĞƌƐŽŶĂů
ǁĞďƐŝƚĞ͕http://gauravgarg.com/
D

/ǁŽƵůĚůŝŬĞƚŽƚŚĂŶŬƐŵLJƉĂƌĞŶƚƐǁŚŽƚĂƵŐŚƚŵĞƚŚĞǀĂůƵĞŽĨŚĂƌĚǁŽƌŬ
ĂŶĚĂŶĞĚƵĐĂƟŽŶ͘

/ŶĞĞĚƚŽƚŚĂŶŬƐŵLJĨƌŝĞŶĚƐ͕ƉĂƌƟĐƵůĂƌůLJDĂŶũŝƚŚĂŶĚsŝďŚĂƐŚ͕ǁŚŽĂůǁĂLJƐ
ƚŽŽŬƚŚĞƟŵĞƚŽůŝƐƚĞŶ͕ĞǀĞŶǁŚĞŶ/ǁĂƐũƵƐƚĐŽŵƉůĂŝŶŝŶŐ͘dŚĞLJĂůǁĂLJƐĂƌĞ
F - = A ? 2 ? < , , + . 2 A . ? 9 @ C 9 C B / ? + . ? D

&ŝŶĂůůLJ͕/ǁŽƵůĚůŝŬĞƚŽƚŚĂŶŬ,ĂƌƐŚŝƚǁŚŽŐŝǀĞƐŵĞƚŚŝƐŽƉƉŽƌƚƵŶŝƚLJ͘
<ƌŝƐƟĂŶ,ĞĚĞŚŽůŵƐƚƵĚŝĞĚŽŵƉƵƚĞƌ^ĐŝĞŶĐĞĂƚĂƌŚƵƐhŶŝǀĞƌƐŝƚLJĂŶĚŶŽǁǁŽƌŬƐĂƐĂ
ŐĂŵĞƉƌŽŐƌĂŵŵĞƌĂƚ^ĞƌŝŽƵƐ'ĂŵĞƐ/ŶƚĞƌĂĐƟǀĞŝŶŽƉĞŶŚĂŐĞŶ͕ĞŶŵĂƌŬ͘^ŝŶĐĞ<ƌŝƐƟĂŶ
ũŽŝŶĞĚƚŚĞŐĂŵĞŝŶĚƵƐƚƌLJďĂĐŬŝŶϮϬϬϵ͕ŚĞŚĂƐǁŽƌŬĞĚŽŶĂĐŽƵƉůĞŽĨƌĞůĞĂƐĞĚĐĂƐƵĂůŐĂŵĞƐ͘
/ŶĂĚĚŝƟŽŶƚŽƚŚŝƐ͕ŚĞŝƐĂůƐŽƚŚĞĐŚĂŝƌŵĂŶŽĨĂŶĂƐƐŽĐŝĂƟŽŶĐĂůůĞĚzŽƵŶŐ'ĂŵĞĞǀĞůŽƉĞƌƐ͕
ǁŚŝĐŚĂŝŵƐƚŽƐƉƌĞĂĚŝŶĨŽƌŵĂƟŽŶĂďŽƵƚŐĂŵĞĚĞǀĞůŽƉŵĞŶƚĂŵŽŶŐĐŚŝůĚƌĞŶĂŶĚƚĞĞŶĂŐĞƌƐ͘
/ŶƚŚĞĨƵƚƵƌĞ͕<ƌŝƐƟĂŶǁŝůůƵƐĞŚŝƐΗĐŽŵƉƵƚĞƌŵŝŶĚΗƚŽĚĞǀĞůŽƉĂƌƟĮĐŝĂůŝŶƚĞůůŝŐĞŶĐĞĂŶĚ
ĚLJŶĂŵŝĐĚŝĸĐƵůƚLJĂĚũƵƐƚŵĞŶƚƐLJƐƚĞŵƐĨŽƌĐŽŵƉƵƚĞƌŐĂŵĞƐ͘

tŚĞŶ<ƌŝƐƟĂŶŝƐŶΖƚĚĞǀĞůŽƉŝŶŐŐĂŵĞƐ͕ƚĞĂĐŚŝŶŐŽƚŚĞƌƐƚŽĚĞǀĞůŽƉŐĂŵĞƐ͕ŽƌƉůĂLJŝŶŐŐĂŵĞƐ
1 / F ? A > E G 1 A 2 1 / @ ; ? 9 = + < 2 2 1 A F 9 > + 2 ¥
www.PacktPub.com

6XSSRUWÀOHVH%RRNVGLVFRXQWRIIHUVDQGPRUH
zŽƵŵŝŐŚƚǁĂŶƚƚŽǀŝƐŝƚwww.PacktPub.comĨŽƌƐƵƉƉŽƌƚĮůĞƐĂŶĚĚŽǁŶůŽĂĚƐƌĞůĂƚĞĚƚŽ
- + < . = + + ; D

ŝĚLJŽƵŬŶŽǁƚŚĂƚWĂĐŬƚŽīĞƌƐĞŽŽŬǀĞƌƐŝŽŶƐŽĨĞǀĞƌLJŬƉƵďůŝƐŚĞĚ͕ǁŝƚŚW&ĂŶĚĞWƵď
ĮůĞƐĂǀĂŝůĂďůĞ͍zŽƵĐĂŶƵƉŐƌĂĚĞƚŽƚŚĞĞŽŽŬǀĞƌƐŝŽŶĂƚwww.PacktPub.com
9 @ C 9 ? 9 , . / @ 2

ŬĐƵƐƚŽŵĞƌ͕LJŽƵĂƌĞĞŶƟƚůĞĚƚŽĂĚŝƐĐŽƵŶƚŽŶƚŚĞĞŽŽŬĐŽƉLJ͘'ĞƚŝŶƚŽƵĐŚǁŝƚŚƵƐĂƚ
service@packtpub.com
E + . F + . A C A 2 9 / > ? D

www.PacktPub.com͕LJŽƵĐĂŶĂůƐŽƌĞĂĚĂĐŽůůĞĐƟŽŶŽĨĨƌĞĞƚĞĐŚŶŝĐĂůĂƌƟĐůĞƐ͕ƐŝŐŶƵƉ
2
'

ĨŽƌĂƌĂŶŐĞŽĨĨƌĞĞŶĞǁƐůĞƩĞƌƐĂŶĚƌĞĐĞŝǀĞĞdžĐůƵƐŝǀĞĚŝƐĐŽƵŶƚƐĂŶĚŽīĞƌƐŽŶWĂĐŬƚŬƐ
9 @ C A + + ; ? D

TM

http://PacktLib.PacktPub.com

ŽLJŽƵŶĞĞĚŝŶƐƚĂŶƚƐŽůƵƟŽŶƐƚŽLJŽƵƌ/dƋƵĞƐƟŽŶƐ͍WĂĐŬƚ>ŝďŝƐWĂĐŬƚΖƐŽŶůŝŶĞĚŝŐŝƚĂůŬ
ůŝďƌĂƌLJ͘,ĞƌĞ͕LJŽƵĐĂŶĂĐĐĞƐƐ͕ƌĞĂĚĂŶĚƐĞĂƌĐŚĂĐƌŽƐƐWĂĐŬƚΖƐĞŶƟƌĞůŝďƌĂƌLJŽĨŬƐ͘

Why Subscribe?
< > > - ? A 9 . : 1 9 = > A 9 : . + ? ? A B A . - = + + ; , < = > / ? 1 A C = - 8 9 : ; 2
H

‹
* + , - 9 @ C , 9 ? 2 A G , . / @ 2 9 @ C = + + ; F 9 . ; : + @ 2 A @ 2

‹ KŶĚĞŵĂŶĚĂŶĚĂĐĐĞƐƐŝďůĞǀŝĂǁĞďďƌŽǁƐĞƌ

)UHH$FFHVVIRU3DFNWDFFRXQWKROGHUV
/ĨLJŽƵŚĂǀĞĂŶĂĐĐŽƵŶƚǁŝƚŚWĂĐŬƚĂƚwww.PacktPub.com
G - + < : 9 @ < ? A 2 1 / ? 2 + 9 : : A ? ?

WĂĐŬƚ>ŝďƚŽĚĂLJĂŶĚǀŝĞǁŶŝŶĞĞŶƟƌĞůLJĨƌĞĞŬƐ͘^ŝŵƉůLJƵƐĞLJŽƵƌůŽŐŝŶĐƌĞĚĞŶƟĂůƐĨŽƌ
/ F F A C / 9 2 A 9 : : A ? ? D
7DEOHRI&RQWHQWV
  ¨
¦ † … § … ©

ŚĂƉƚĞƌϭ͗ŝƐĐŽǀĞƌŝŶŐzŽƵƌ,ŝĚĚĞŶ^ĐƌŝƉƟŶŐ^ŬŝůůƐ ϳ
WƌĞƌĞƋƵŝƐŝƚĞŬŶŽǁůĞĚŐĞĨŽƌƵƐŝŶŐƚŚŝƐŬ ϴ
ĞĂůŝŶŐǁŝƚŚƐĐƌŝƉƚƉŚŽďŝĂ ϴ
dĞĂĐŚŝŶŐďĞŚĂǀŝŽƌƐƚŽ'ĂŵĞKďũĞĐƚƐ ϵ
ŚŽŽƐŝŶŐƚŽƵƐĞηŝŶƐƚĞĂĚŽĨhŶŝƚLJ^ĐƌŝƉƚ ϭϬ
ZĞĂƐŽŶϭĨŽƌĐŚŽŽƐŝŶŐηʹǀĂƐƚĂŵŽƵŶƚŽĨĚŽĐƵŵĞŶƚĂƟŽŶŽŶƚŚĞ/ŶƚĞƌŶĞƚ ϭϬ
ZĞĂƐŽŶϮĨŽƌĐŚŽŽƐŝŶŐηʹŇĞdžŝďŝůŝƚLJƚŽƵƐĞhŶŝƚLJƐĐƌŝƉƚƐĂŶĚƌĞŐƵůĂƌ
ηĐŽĚĞĮůĞƐ ϭϬ
ZĞĂƐŽŶϯĨŽƌĐŚŽŽƐŝŶŐηʹĐŽĚŝŶŐƌƵůĞƐĂƌĞƐƉĞĐŝĮĐ ϭϭ
DĂŶĞƵǀĞƌŝŶŐĂƌŽƵŶĚhŶŝƚLJΖƐĚŽĐƵŵĞŶƚĂƟŽŶ ϭϭ
dŝŵĞĨŽƌĂĐƟŽŶʹŽƉĞŶŝŶŐƚŚĞZĞĨĞƌĞŶĐĞDĂŶƵĂůĚŽĐƵŵĞŶƚĂƟŽŶ
ĨŽƌƚŚĞƚƌĂŶƐĨŽƌŵŽŵƉŽŶĞŶƚ ϭϭ
dŝŵĞĨŽƌĂĐƟŽŶʹŽƉĞŶŝŶŐƚŚĞƐĐƌŝƉƟŶŐƌĞĨĞƌĞŶĐĞĚŽĐƵŵĞŶƚĂƟŽŶ
ĨŽƌƚŚĞƚƌĂŶƐĨŽƌŵĐŽŵƉŽŶĞŶƚ ϭϮ
ƌĞǁĞƌĞĂůůLJƐƵƉƉŽƐĞĚƚŽŬŶŽǁĂůůƚŚĂƚƐƚƵī͍ ϭϯ
tŚĂƚŝƐĂůůƚŚĂƚŝŶĨŽƌŵĂƟŽŶ͍ ϭϯ
tŽƌŬŝŶŐǁŝƚŚηƐĐƌŝƉƚĮůĞƐ ϭϰ
dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƚĞĂηƐĐƌŝƉƚĮůĞ ϭϰ
ª « ¬ ­ ® ¯ ° ± ² « ³ ¬ ´ µ ¶ ® « ® · µ ¸ µ ¹ ® º ± ® ¯ µ µ ¯ ² ¬ ® ­ » ¼

^LJŶĐŝŶŐηĮůĞƐďĞƚǁĞĞŶDŽŶŽĞǀĞůŽƉĂŶĚhŶŝƚLJ ϭϱ
dŝŵĞĨŽƌĂĐƟŽŶʹŽƉĞŶŝŶŐ>ĞĂƌŶŝŶŐ^ĐƌŝƉƚŝŶDŽŶŽĞǀĞůŽƉ ϭϱ
tĂƚĐŚŝŶŐĨŽƌĂƉŽƐƐŝďůĞΗŐŽƚĐŚĂΗǁŚĞŶĐƌĞĂƟŶŐƐĐƌŝƉƚĮůĞƐŝŶhŶŝƚLJ ϭϲ
&ŝdžŝŶŐƐLJŶĐŝĨŝƚŝƐŶΖƚǁŽƌŬŝŶŐƉƌŽƉĞƌůLJ ϭϲ
^ƵŵŵĂƌLJ ϭϳ
ŚĂƉƚĞƌϮ͗/ŶƚƌŽĚƵĐŝŶŐƚŚĞƵŝůĚŝŶŐůŽĐŬƐĨŽƌhŶŝƚLJ^ĐƌŝƉƚƐ ϭϵ
hƐŝŶŐƚŚĞƚĞƌŵŵĞƚŚŽĚŝŶƐƚĞĂĚŽĨĨƵŶĐƟŽŶ ϮϬ
hŶĚĞƌƐƚĂŶĚŝŶŐǁŚĂƚĂǀĂƌŝĂďůĞĚŽĞƐŝŶĂƐĐƌŝƉƚ ϮϬ
½ ¾ ¿ À Á Â Ã Ä Â Å Æ Á Å Æ Ç

È É Ê ² « ³ É ¸ É ­ ² É Ë ¹ µ Ì »

ǀĂƌŝĂďůĞŶĂŵĞŝƐũƵƐƚĂƐƵďƐƟƚƵƚĞĨŽƌĂǀĂůƵĞ Ϯϭ
dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƟŶŐĂǀĂƌŝĂďůĞĂŶĚƐĞĞŝŶŐŚŽǁŝƚǁŽƌŬƐ ϮϮ
dŝŵĞĨŽƌĂĐƟŽŶʹĐŚĂŶŐŝŶŐƚŚĞŶƵŵďĞƌϵƚŽĂĚŝīĞƌĞŶƚŶƵŵďĞƌ Ϯϯ
hƐŝŶŐĂŵĞƚŚŽĚŝŶĂƐĐƌŝƉƚ Ϯϰ
tŚĂƚŝƐĂŵĞƚŚŽĚ͍ Ϯϰ
dŝŵĞĨŽƌĂĐƟŽŶʹůĞĂƌŶŝŶŐŚŽǁĂŵĞƚŚŽĚǁŽƌŬƐ Ϯϰ
tŚĂƚΖƐŝŶƚŚŝƐƐĐƌŝƉƚĮůĞ͍ Ϯϱ
DĞƚŚŽĚŶĂŵĞƐĂƌĞƐƵďƐƟƚƵƚĞƐƚŽŽ Ϯϱ
/ŶƚƌŽĚƵĐŝŶŐƚŚĞĐůĂƐƐ Ϯϳ
LJƵƐŝŶŐĂůŝƩůĞhŶŝƚLJŵĂŐŝĐ͕ĂƐĐƌŝƉƚďĞĐŽŵĞƐĂŽŵƉŽŶĞŶƚ Ϯϴ
ŵŽƌĞƚĞĐŚŶŝĐĂůůŽŽŬĂƚƚŚĞŵĂŐŝĐ Ϯϴ
ǀĞŶŵŽƌĞhŶŝƚLJŵĂŐŝĐ Ϯϵ
ŽŵƉŽŶĞŶƚƐĐŽŵŵƵŶŝĐĂƟŶŐƵƐŝŶŐƚŚĞŽƚ^LJŶƚĂdž Ϯϵ
tŚĂƚΖƐǁŝƚŚƚŚĞĚŽƚƐ͍ ϯϬ
^ƵŵŵĂƌLJ ϯϬ
ŚĂƉƚĞƌϯ͗'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨsĂƌŝĂďůĞƐ ϯϭ
tƌŝƟŶŐηƐƚĂƚĞŵĞŶƚƐƉƌŽƉĞƌůLJ ϯϮ
hŶĚĞƌƐƚĂŶĚŝŶŐŽŵƉŽŶĞŶƚƉƌŽƉĞƌƟĞƐŝŶhŶŝƚLJΖƐ/ŶƐƉĞĐƚŽƌ ϯϮ
sĂƌŝĂďůĞƐďĞĐŽŵĞŽŵƉŽŶĞŶƚƉƌŽƉĞƌƟĞƐ ϯϯ
Í « ² ¬ Î ± ´ É « ³ µ Ï Ï ± ­ ² º ¬ É « ¯ ¸ É ­ ² É Ë ¹ µ « É Ê µ Ï Ï ¹ ² ³ ´ ¬ ¹ Î Ð Ð

ŚĂŶŐŝŶŐĂƉƌŽƉĞƌƚLJΖƐǀĂůƵĞŝŶƚŚĞ/ŶƐƉĞĐƚŽƌƉĂŶĞů ϯϯ
ŝƐƉůĂLJŝŶŐƉƵďůŝĐǀĂƌŝĂďůĞƐŝŶƚŚĞ/ŶƐƉĞĐƚŽƌƉĂŶĞů ϯϰ
dŝŵĞĨŽƌĂĐƟŽŶʹŵĂŬŝŶŐĂǀĂƌŝĂďůĞƉƌŝǀĂƚĞ ϯϰ
EĂŵŝŶŐLJŽƵƌǀĂƌŝĂďůĞƐƉƌŽƉĞƌůLJ ϯϱ
ĞŐŝŶǀĂƌŝĂďůĞŶĂŵĞƐǁŝƚŚůŽǁĞƌĐĂƐĞ ϯϲ
hƐŝŶŐŵƵůƟͲǁŽƌĚǀĂƌŝĂďůĞŶĂŵĞƐ ϯϲ
ĞĐůĂƌŝŶŐĂǀĂƌŝĂďůĞĂŶĚŝƚƐƚLJƉĞ ϯϳ
dŚĞŵŽƐƚĐŽŵŵŽŶďƵŝůƚͲŝŶǀĂƌŝĂďůĞƚLJƉĞƐ ϯϴ
dŝŵĞĨŽƌĂĐƟŽŶʹĂƐƐŝŐŶŝŶŐǀĂůƵĞƐǁŚŝůĞĚĞĐůĂƌŝŶŐƚŚĞǀĂƌŝĂďůĞ ϯϴ
tŚĞƌĞLJŽƵĚĞĐůĂƌĞĂǀĂƌŝĂďůĞŝƐŝŵƉŽƌƚĂŶƚ ϯϵ
sĂƌŝĂďůĞƐĐŽƉĞʹĚĞƚĞƌŵŝŶŝŶŐǁŚĞƌĞĂǀĂƌŝĂďůĞĐĂŶďĞƵƐĞĚ ϰϬ
^ƵŵŵĂƌLJ ϰϮ
ŚĂƉƚĞƌϰ͗'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ ϰϯ
ŶĚŝŶŐĂŵĞƚŚŽĚĚĞĮŶŝƟŽŶƵƐŝŶŐĐƵƌůLJďƌĂĐĞƐ ϰϰ
hƐŝŶŐŵĞƚŚŽĚƐŝŶĂƐĐƌŝƉƚ ϰϰ
EĂŵŝŶŐŵĞƚŚŽĚƐƉƌŽƉĞƌůLJ ϰϰ
ĞŐŝŶŵĞƚŚŽĚŶĂŵĞƐǁŝƚŚĂŶƵƉƉĞƌĐĂƐĞůĞƩĞƌ ϰϱ
hƐŝŶŐŵƵůƟͲǁŽƌĚŶĂŵĞƐĨŽƌĂŵĞƚŚŽĚ ϰϱ
WĂƌĞŶƚŚĞƐĞƐĂƌĞƉĂƌƚŽĨƚŚĞŵĞƚŚŽĚŶĂŵĞ ϰϱ

[ ii ]
½ ¾ ¿ À Á Â Ã Ä Â Å Æ Á Å Æ Ç

ĞĮŶŝŶŐĂŵĞƚŚŽĚƉƌŽƉĞƌůLJ ϰϱ
dŚĞŵŝŶŝŵƵŵƌĞƋƵŝƌĞŵĞŶƚƐĨŽƌĚĞĮŶŝŶŐĂŵĞƚŚŽĚ ϰϲ
hŶĚĞƌƐƚĂŶĚŝŶŐƉĂƌĞŶƚŚĞƐĞƐʹǁŚLJĂƌĞƚŚĞLJƚŚĞƌĞ͍ ϰϳ
dŝŵĞĨŽƌĂĐƟŽŶʹĂĚĚŝŶŐĐŽĚĞďĞƚǁĞĞŶƚŚĞƉĂƌĞŶƚŚĞƐĞƐ ϰϳ
^ƉĞĐŝĨLJŝŶŐĂŵĞƚŚŽĚΖƐƉĂƌĂŵĞƚĞƌƐ ϰϴ
,ŽǁŵĂŶLJƉĂƌĂŵĞƚĞƌƐĐĂŶĂŵĞƚŚŽĚŚĂǀĞ͍ ϰϵ
ĂůůŝŶŐĂŵĞƚŚŽĚ ϰϵ
hƐŝŶŐĂƌŐƵŵĞŶƚƐŝŶƚŚĞƉĂƌĞŶƚŚĞƐĞƐŽĨĂŵĞƚŚŽĚ ϰϵ
ZĞƚƵƌŶŝŶŐĂǀĂůƵĞĨƌŽŵĂŵĞƚŚŽĚ ϱϬ
dŝŵĞĨŽƌĂĐƟŽŶʹƌĞƚƵƌŶŝŶŐĂǀĂůƵĞĨƌŽŵĚĚdǁŽEƵŵďĞƌƐ;Ϳ ϱϭ
ĂůůŝŶŐĂŵĞƚŚŽĚŝƐĂůŽŐŝĐĚĞƚŽƵƌ ϱϰ
hƐŝŶŐhŶŝƚLJΖƐhƉĚĂƚĞĂŶĚ^ƚĂƌƚŵĞƚŚŽĚƐ ϱϰ
dŚĞ^ƚĂƌƚŵĞƚŚŽĚŝƐĐĂůůĞĚŽŶĞƟŵĞ ϱϱ
Ñ ´ µ Í º ¯ É ¬ µ Ê µ ¬ ´ ® ¯ ² Ï ± É ¹ ¹ µ ¯ ® ¸ µ ­ É « ¯ ® ¸ µ ­ É « ¯ ® ¸ µ ­ Ò ¼ ¼

^ƵŵŵĂƌLJ ϱϲ
ŚĂƉƚĞƌϱ͗DĂŬŝŶŐĞĐŝƐŝŽŶƐŝŶŽĚĞ ϱϳ
dĞƐƟŶŐĐŽŶĚŝƟŽŶƐǁŝƚŚĂŶŝĨƐƚĂƚĞŵĞŶƚ ϱϴ
dĞƐƟŶŐŝĨĐŽŶĚŝƟŽŶƐĂƌĞƚƌƵĞŽƌĨĂůƐĞ ϱϴ
dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƚĞĂĐŽƵƉůĞŽĨŝĨƐƚĂƚĞŵĞŶƚƐ ϱϴ
hƐŝŶŐƚŚĞEKdŽƉĞƌĂƚŽƌƚŽĐŚĂŶŐĞƚŚĞĐŽŶĚŝƟŽŶ ϲϬ
ŚĞĐŬŝŶŐŵĂŶLJĐŽŶĚŝƟŽŶƐŝŶĂŶŝĨƐƚĂƚĞŵĞŶƚ ϲϬ
dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƚĞŝĨƐƚĂƚĞŵĞŶƚƐǁŝƚŚŵŽƌĞƚŚĂŶŽŶĞĐŽŶĚŝƟŽŶƚŽĐŚĞĐŬ ϲϬ
hƐŝŶŐĂŶŝĨͲĞůƐĞƐƚĂƚĞŵĞŶƚƚŽĞdžĞĐƵƚĞĂůƚĞƌŶĂƚĞĐŽĚĞ ϲϯ
dŝŵĞĨŽƌĂĐƟŽŶʹĂĚĚΗĞůƐĞΗƚŽƚŚĞŝĨƐƚĂƚĞŵĞŶƚ ϲϯ
DĂŬŝŶŐĚĞĐŝƐŝŽŶƐďĂƐĞĚŽŶƵƐĞƌŝŶƉƵƚ ϲϱ
^ƚŽƌŝŶŐĚĂƚĂŝŶĂŶĂƌƌĂLJ͕Ă>ŝƐƚ͕ŽƌĂŝĐƟŽŶĂƌLJ ϲϲ
^ƚŽƌŝŶŐŝƚĞŵƐŝŶĂŶĂƌƌĂLJ ϲϲ
^ƚŽƌŝŶŐŝƚĞŵƐŝŶĂ>ŝƐƚ ϲϴ
dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƚĞĂ>ŝƐƚŽĨƉŽŶLJŶĂŵĞƐ ϲϴ
^ƚŽƌŝŶŐŝƚĞŵƐŝŶĂŝĐƟŽŶĂƌLJ ϳϯ
dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƚĞĂĚŝĐƟŽŶĂƌLJŽĨƉŽŶLJŶĂŵĞƐĂŶĚŬĞLJƐ ϳϯ
hƐŝŶŐĂŽůůĞĐƟŽŶ/ŶŝƟĂůŝnjĞƌƚŽĂĚĚŝƚĞŵƐƚŽĂ>ŝƐƚŽƌŝĐƟŽŶĂƌLJ ϳϱ
dŝŵĞĨŽƌĂĐƟŽŶʹĂĚĚŝŶŐƉŽŶŝĞƐƵƐŝŶŐĂŽůůĞĐƟŽŶ/ŶŝƟĂůŝnjĞƌ ϳϱ
>ŽŽƉŝŶŐƚŚŽƵŐŚůŝƐƚƐƚŽŵĂŬĞĚĞĐŝƐŝŽŶƐ ϳϳ
hƐŝŶŐƚŚĞĨŽƌĞĂĐŚůŽŽƉ ϳϳ
dŝŵĞĨŽƌĂĐƟŽŶʹƵƐŝŶŐĨŽƌĞĂĐŚůŽŽƉƐƚŽƌĞƚƌŝĞǀĞĚĂƚĂ ϳϳ
hƐŝŶŐƚŚĞĨŽƌůŽŽƉ ϴϭ
dŝŵĞĨŽƌĂĐƟŽŶʹƐĞůĞĐƟŶŐĂƉŽŶLJĨƌŽŵĂ>ŝƐƚƵƐŝŶŐĂĨŽƌůŽŽƉ ϴϭ
hƐŝŶŐƚŚĞǁŚŝůĞůŽŽƉ ϴϰ
dŝŵĞĨŽƌĂĐƟŽŶʹĮŶĚŝŶŐĚĂƚĂĂŶĚďƌĞĂŬŽƵƚŽĨƚŚĞǁŚŝůĞůŽŽƉ ϴϰ
^ƵŵŵĂƌLJ ϴϳ
[ iii ]
½ ¾ ¿ À Á Â Ã Ä Â Å Æ Á Å Æ Ç

ŚĂƉƚĞƌϲ͗hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ ϴϵ
hƐŝŶŐŽƚ^LJŶƚĂdžŝƐůŝŬĞĂĚĚƌĞƐƐŝŶŐĂůĞƩĞƌ ϵϬ
^ŝŵƉůŝĨLJŝŶŐƚŚĞĚŽƚƐŝŶŽƚ^LJŶƚĂdž ϵϬ
hƐŝŶŐĂĐĐĞƐƐŵŽĚŝĮĞƌƐĨŽƌǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ ϵϭ
tŽƌŬŝŶŐǁŝƚŚŽďũĞĐƚƐŝƐĂĐůĂƐƐĂĐƚ ϵϭ
hƐŝŶŐŽƚ^LJŶƚĂdžŝŶĂƐĐƌŝƉƚ ϵϯ
ĐĐĞƐƐŝŶŐĂŽŵƉŽŶĞŶƚΖƐŽǁŶǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ ϵϯ
dŝŵĞĨŽƌĂĐƟŽŶʹĂĐĐĞƐƐŝŶŐĂǀĂƌŝĂďůĞŝŶƚŚĞĐƵƌƌĞŶƚŽŵƉŽŶĞŶƚ ϵϰ
ĐĐĞƐƐŝŶŐĂŶŽƚŚĞƌŽŵƉŽŶĞŶƚŽŶƚŚĞĐƵƌƌĞŶƚ'ĂŵĞKďũĞĐƚ ϵϳ
dŝŵĞĨŽƌĂĐƟŽŶʹĐŽŵŵƵŶŝĐĂƟŶŐǁŝƚŚĂŶŽƚŚĞƌŽŵƉŽŶĞŶƚŽŶƚŚĞDĂŝŶĂŵĞƌĂ ϵϳ
Ó ± ± µ Ï Ï ² « ³ ® ¬ ´ µ ­ Ô É Ê µ Õ Ë Ö µ ± ¬ Ï É « ¯ ¬ ´ µ ² ­ × ® Ê º ® « µ « ¬ Ï » Ø »

dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƟŶŐƚǁŽ'ĂŵĞKďũĞĐƚƐĂŶĚĂŶĞǁƐĐƌŝƉƚ ϭϬϮ
ĐĐĞƐƐŝŶŐ'ĂŵĞKďũĞĐƚƐƵƐŝŶŐĚƌĂŐͲĂŶĚͲĚƌŽƉǀĞƌƐƵƐǁƌŝƟŶŐĐŽĚĞ ϭϬϴ
dŝŵĞĨŽƌĂĐƟŽŶʹƚƌLJŝŶŐĚƌĂŐͲĂŶĚͲĚƌŽƉƚŽĂƐƐŝŐŶĂ'ĂŵĞKďũĞĐƚ ϭϬϴ
^ƵŵŵĂƌLJ ϭϬϵ
ŚĂƉƚĞƌϳ͗ƌĞĂƟŶŐƚŚĞ'ĂŵĞƉůĂLJŝƐ:ƵƐƚĂWĂƌƚŽĨƚŚĞ'ĂŵĞ ϭϭϭ
ƉƉůLJŝŶŐLJŽƵƌŶĞǁĐŽĚŝŶŐƐŬŝůůƐƚŽĂ^ƚĂƚĞDĂĐŚŝŶĞ ϭϭϮ
hŶĚĞƌƐƚĂŶĚŝŶŐƚŚĞĐŽŶĐĞƉƚƐŽĨĂ^ƚĂƚĞDĂĐŚŝŶĞ ϭϭϮ
ĞŶĞĮƚƐŽĨďLJƵƐŝŶŐĂ^ƚĂƚĞDĂĐŚŝŶĞ ϭϭϯ
&ŽůůŽǁŝŶŐƚŚĞ^ƚĂƚĞDĂĐŚŝŶĞůŽŐŝĐŇŽǁ ϭϭϰ
ĞůĞŐĂƟŶŐŐĂŵĞĐŽŶƚƌŽůƚŽĂ^ƚĂƚĞ ϭϭϰ
^ǁŝƚĐŚŝŶŐƚŽĂŶŽƚŚĞƌ^ƚĂƚĞǁŚĞŶĐĂůůĞĚƚŽĚŽƐŽ ϭϭϱ
<ĞĞƉŝŶŐƚƌĂĐŬŽĨƚŚĞĂĐƟǀĞ^ƚĂƚĞ ϭϭϲ
ƌĞĂƟŶŐŽŵƉŽŶĞŶƚƐŽďũĞĐƚƐĂŶĚηŽďũĞĐƚƐ ϭϭϳ
hŶŝƚLJĐƌĞĂƚĞƐŽŵƉŽŶĞŶƚƐďĞŚŝŶĚƚŚĞƐĐĞŶĞƐ ϭϭϳ
/ŶƐƚĂŶƟĂƚĞĂĐůĂƐƐƚŽĐƌĞĂƚĞĂŶŽďũĞĐƚ ϭϭϳ
dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƟŶŐĂƐĐƌŝƉƚĂŶĚĂĐůĂƐƐ ϭϭϴ
dŝŵĞĨŽƌĂĐƟŽŶʹŝŶƐƚĂŶƟĂƟŶŐƚŚĞĞŐŝŶ^ƚĂƚĞĐůĂƐƐ ϭϮϭ
^ƉĞĐŝĨLJŝŶŐĂĮůĞΖƐůŽĐĂƟŽŶǁŝƚŚĂŶĂŵĞƐƉĂĐĞĚĞĐůĂƌĂƟŽŶ ϭϮϮ
>ŽĐĂƟŶŐĐŽĚĞĮůĞƐǁŝƚŚĂƵƐŝŶŐƐƚĂƚĞŵĞŶƚ ϭϮϯ
/ŶƚƌŽĚƵĐŝŶŐƚŚĞηŝŶƚĞƌĨĂĐĞ ϭϮϯ
dŚĞ^ƚĂƚĞDĂĐŚŝŶĞĂŶĚƚŚĞŝŶƚĞƌĨĂĐĞŐƵĂƌĂŶƚĞĞ ϭϮϰ
dŝŵĞĨŽƌĂĐƟŽŶʹŝŵƉůĞŵĞŶƟŶŐĂŶŝŶƚĞƌĨĂĐĞ ϭϮϰ
^ƵŵŵĂƌLJ ϭϮϴ
ŚĂƉƚĞƌϴ͗ĞǀĞůŽƉŝŶŐƚŚĞ^ƚĂƚĞDĂĐŚŝŶĞ ϭϮϵ
ƌĞĂƟŶŐĨŽƵƌ^ƚĂƚĞĐůĂƐƐĞƐ ϭϯϬ
dŝŵĞĨŽƌĂĐƟŽŶʹŵŽĚLJŝĮŶŐĞŐŝŶ^ƚĂƚĞĂŶĚĂĚĚƚŚƌĞĞŵŽƌĞ^ƚĂƚĞƐ ϭϯϬ
^ĞƫŶŐƵƉƚŚĞ^ƚĂƚĞDĂŶĂŐĞƌĐŽŶƚƌŽůůĞƌ ϭϯϮ
^ƚƵĚLJŝŶŐĂŶĞdžĂŵƉůĞŽĨŝŶŚĞƌŝƚĂŶĐĞ ϭϯϰ
ŶƚĞƌƚŚĞ/^ƚĂƚĞĂƐĞŝŶƚĞƌĨĂĐĞĂŐĂŝŶ ϭϯϲ

[ iv ]
½ ¾ ¿ À Á Â Ã Ä Â Å Æ Á Å Æ Ç

dŝŵĞĨŽƌĂĐƟŽŶʹŵŽĚŝĨLJ^ƚĂƚĞDĂŶĂŐĞƌ ϭϯϳ
ĚĚŝŶŐĂŶŽƚŚĞƌ^ƚĂƚĞ ϭϰϮ
dŝŵĞĨŽƌĂĐƟŽŶʹŵŽĚŝĨLJŝŶŐWůĂLJ^ƚĂƚĞƚŽĂĚĚĂŶŽƚŚĞƌ^ƚĂƚĞ ϭϰϮ
ĚĚŝŶŐKŶ'h/ƚŽƚŚĞ^ƚĂƚĞDĂŶĂŐĞƌĐůĂƐƐ ϭϰϯ
dŝŵĞĨŽƌĂĐƟŽŶʹĂĚĚŝŶŐKŶ'h/;ͿƚŽ^ƚĂƚĞDĂŶĂŐĞƌ ϭϰϯ
ŚĂŶŐŝŶŐƚŚĞĂĐƟǀĞ^ƚĂƚĞĂŶĚĐŽŶƚƌŽůůŝŶŐƚŚĞ^ĐĞŶĞ ϭϰϰ
dŝŵĞĨŽƌĂĐƟŽŶʹĂĚĚŝŶŐ'ĂŵĞKďũĞĐƚƐĂŶĚĂďƵƩŽŶƚŽƚŚĞ^ĐĞŶĞ ϭϰϰ
WĂƵƐŝŶŐƚŚĞŐĂŵĞ^ĐĞŶĞ ϭϰϱ
dŝŵĞĨŽƌĂĐƟŽŶʹĂĚĚŝŶŐĐŽĚĞƚŽƉĂƵƐĞƚŚĞŐĂŵĞ^ĐĞŶĞ ϭϰϲ
dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƟŶŐĂƟŵĞƌŝŶĞŐŝŶ^ƚĂƚĞ ϭϰϳ
ŚĂŶŐŝŶŐ^ĐĞŶĞƐ ϭϱϭ
dŝŵĞĨŽƌĂĐƟŽŶʹƐĞƫŶŐƵƉĂŶŽƚŚĞƌ^ĐĞŶĞ ϭϱϮ
ŚĂŶŐŝŶŐ^ĐĞŶĞƐĚĞƐƚƌŽLJƐƚŚĞĞdžŝƐƟŶŐ'ĂŵĞKďũĞĐƚƐ ϭϱϯ
<ĞĞƉŝŶŐ'ĂŵĞDĂŶĂŐĞƌďĞƚǁĞĞŶƐĐĞŶĞƐ ϭϱϯ
dŝŵĞĨŽƌĂĐƟŽŶʹĂĚĚŝŶŐƚŚĞǁĂŬĞŵĞƚŚŽĚƚŽ^ƚĂƚĞDĂŶĂŐĞƌ ϭϱϰ
× ´ É « ³ ² « ³ ¬ ´ µ Ù ± µ « µ Ï » ¼ ¼

dŝŵĞĨŽƌĂĐƟŽŶʹĂĚĚŝŶŐƚŚĞĐŽĚĞƚŽĐŚĂŶŐĞƚŚĞ^ĐĞŶĞƐ ϭϱϲ
sĞƌŝĨLJŝŶŐƚŚĞĐŽĚĞŽĨLJŽƵƌĐůĂƐƐĞƐ ϭϱϳ
^ƵŵŵĂƌLJ ϭϲϭ
ŚĂƉƚĞƌϵ͗^ƚĂƌƚƵŝůĚŝŶŐĂ'ĂŵĞĂŶĚ'ĞƚƚŚĞĂƐŝĐ^ƚƌƵĐƚƵƌĞZƵŶŶŝŶŐ ϭϲϯ
ĂƐŝŶŐŝŶƚŽhŶŝƚLJΖƐƐĐƌŝƉƟŶŐĚŽĐƵŵĞŶƚĂƟŽŶ ϭϲϰ
ZĞĂĚŝŶŐƚŚĞhŶŝƚLJZĞĨĞƌĞŶĐĞDĂŶƵĂůĮƌƐƚ ϭϲϱ
&ŝŶĚŝŶŐĐŽĚĞĞdžĂŵƉůĞƐŝŶƚŚĞ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞĂƐŶĞĞĚĞĚ ϭϲϱ
^ĞƚƵƉƚŚĞ^ƚĂƚĞDĂĐŚŝŶĞĂŶĚĂĚĚĂWůĂLJĞƌ'ĂŵĞKďũĞĐƚ ϭϲϱ
dŝŵĞĨŽƌĂĐƟŽŶʹƐĞƫŶŐƵƉŶŝŶĞ^ƚĂƚĞƐĂŶĚƚŚƌĞĞ^ĐĞŶĞƐ ϭϲϳ
ĂůůŝŶŐƚŚĞZĞƐƚĂƌƚŵĞƚŚŽĚŽĨƚŚĞ^ƚĂƚĞDĂŶĂŐĞƌ ϭϲϵ
ĚĚĂWůĂLJĞƌ'ĂŵĞKďũĞĐƚ ϭϳϬ
WůĂĐŝŶŐĂŶĚƵƐŝŶŐƚŚĞWůĂLJĞƌŽůůŝĚĞƌ ϭϳϭ
WůĂĐŝŶŐĂŶĚƵƐŝŶŐƚŚĞ^ƉŚĞƌĞŽůůŝĚĞƌ ϭϳϭ
dŝŵĞĨŽƌĂĐƟŽŶͲĂĚĚŝŶŐĂWůĂLJĞƌ'ĂŵĞKďũĞĐƚ ϭϳϮ
^ƚŽƌŝŶŐŐĂŵĞĚĂƚĂŝŶŝƚƐŽǁŶƐĐƌŝƉƚ ϭϳϮ
dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƟŶŐĂ'ĂŵĞĂƚĂƐĐƌŝƉƚ ϭϳϯ
ŝƐƉůĂLJŝŶŐƚŚĞƐƉůĂƐŚƐĐƌĞĞŶƐ ϭϳϰ
ŽŶƚƌŽůůŝŶŐƚŚĞWůĂLJĞƌ'ĂŵĞKďũĞĐƚ ϭϳϵ
dŝŵĞĨŽƌĂĐƟŽŶʹƌŽƚĂƟŶŐWůĂLJĞƌŝŶ^ĞƚƵƉ^ƚĂƚĞ ϭϴϬ
ĚĚŝŶŐƚŚĞWůĂLJĞƌŽůŽƌŽƉƟŽŶ ϭϴϯ
dŝŵĞĨŽƌĂĐƟŽŶʹĐŚĂŶŐŝŶŐƚŚĞĐŽůŽƌƵƐŝŶŐ'h/ďƵƩŽŶƐ ϭϴϰ
ĚĚŝŶŐƚŚĞ>ŝǀĞƐŽƉƟŽŶĨŽƌWůĂLJĞƌ ϭϴϳ
dŝŵĞĨŽƌĂĐƟŽŶʹƐĞƫŶŐƚŚĞ>ŝǀĞƐĨŽƌWůĂLJĞƌ ϭϴϳ
^ƵŵŵĂƌLJ ϭϵϭ

[v]
½ ¾ ¿ À Á Â Ã Ä Â Å Æ Á Å Æ Ç

ŚĂƉƚĞƌϭϬ͗DŽǀŝŶŐƌŽƵŶĚ͕ŽůůŝƐŝŽŶƐ͕ĂŶĚ<ĞĞƉŝŶŐ^ĐŽƌĞ ϭϵϯ
sŝƐƵĂůŝnjŝŶŐƚŚĞĐŽŵƉůĞƚĞĚŐĂŵĞ ϭϵϰ
^ǁŝƚĐŚŝŶŐƚŽƚŚĞĮƌƐƚƉůĂLJ^ƚĂƚĞĂŶĚƉůĂLJĂďůĞƐĐĞŶĞ ϭϵϰ
>ŽĂĚŝŶŐ^ĐĞŶĞϭƵƐŝŶŐĐŽĚĞ ϭϵϱ
ĚĚŝŶŐĐĂŵĞƌĂƐĨŽƌĚŝīĞƌĞŶƚǀŝĞǁŝŶŐŽƉƟŽŶƐ ϭϵϲ
dŝŵĞĨŽƌĂĐƟŽŶʹƐĞƫŶŐƵƉƚǁŽĂĚĚŝƟŽŶĂůĐĂŵĞƌĂƐŝŶƚŚĞƐĐĞŶĞ ϭϵϲ
ƩĂĐŚŝŶŐƐĐƌŝƉƚƐƚŽƚŚĞŶĞǁĐĂŵĞƌĂƐ ϭϵϵ
dŝŵĞĨŽƌĂĐƟŽŶŝŶŐʹĂƩĂĐŚƚŚĞ>ŽŽŬƚWůĂLJĞƌĐĂŵĞƌĂƐĐƌŝƉƚ ϭϵϵ
dŝŵĞĨŽƌĂĐƟŽŶʹĂƩĂĐŚŝŶŐƚŚĞ&ŽůůŽǁŝŶŐWůĂLJĞƌĐĂŵĞƌĂƐĐƌŝƉƚ ϮϬϬ
DŽǀŝŶŐƚŚĞWůĂLJĞƌƵƐŝŶŐZŝŐŝĚďŽĚLJƉŚLJƐŝĐƐ ϮϬϭ
dŝŵĞĨŽƌĂĐƟŽŶʹĂĚĚŝŶŐĂZŝŐŝĚďŽĚLJƚŽƚŚĞWůĂLJĞƌ ϮϬϮ
<ĞĞƉŝŶŐƐĐŽƌĞĚƵƌŝŶŐƚŚĞŐĂŵĞ ϮϬϰ
/ŶŝƟĂůŝnjŝŶŐƚŚĞƐĐŽƌŝŶŐƐLJƐƚĞŵ ϮϬϱ
<ĞĞƉŝŶŐƐĐŽƌĞŝŶƚŚĞ^ĐĞŶĞϭƉůĂLJ^ƚĂƚĞ ϮϬϳ
>ŽƐŝŶŐƚŚĞŐĂŵĞŝŶ^ĐĞŶĞϭ ϮϬϳ
tŝŶŶŝŶŐƚŚĞůĞǀĞůŝŶ^ĐĞŶĞϭ ϮϬϴ
ĞƚĞƌŵŝŶŝŶŐŚŽǁƚŽǁŝŶŽƌůŽƐĞ ϮϭϬ
dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƟŶŐĂŐŽŽĚĂŶĚďĂĚƉƌĞĨĂď ϮϭϬ
^ĐŽƌŝŶŐĨŽƌƚŚĞǁŝŶ ϮϭϬ
>ŽƐŝŶŐǁŚĞŶWůĂLJĞƌĐƌĂƐŚĞƐ Ϯϭϭ
^ŚŽŽƟŶŐƉƌŽũĞĐƟůĞƐĂƚƚŚĞŽƌďƐ ϮϭϮ
dŝŵĞĨŽƌĂĐƟŽŶʹĐƌĞĂƟŶŐƚŚĞŶĞƌŐLJWƵůƐĞƉƌĞĨĂď ϮϭϮ
^ŚŽŽƟŶŐĂƐŝŶŐůĞͲƐŚŽƚŶĞƌŐLJWƵůƐĞ Ϯϭϰ
^ŚŽŽƟŶŐƌĂƉŝĚͲĮƌĞŶĞƌŐLJWƵůƐĞƐ Ϯϭϰ
dŚĞŶĞƌŐLJWƵůƐĞŝƐĮƌĞĚ Ϯϭϱ
ŽŶƚƌŽůůŝŶŐŶĞƌŐLJWƵůƐĞŽďũĞĐƚƐ Ϯϭϲ
^ƵŵŵĂƌLJ Ϯϭϵ
ŚĂƉƚĞƌϭϭ͗^ƵŵŵĂƌŝnjŝŶŐzŽƵƌEĞǁŽĚŝŶŐ^ŬŝůůƐ ϮϮϭ
ŽĚŝŶŐĂhŶŝƚLJWƌŽũĞĐƚ ϮϮϮ
tŽƌŬŝŶŐǁŝƚŚŽďũĞĐƚƐ ϮϮϮ
^ĐƌĂƚĐŚŝŶŐƚŚĞƐƵƌĨĂĐĞŽĨηƉƌŽŐƌĂŵŵŝŶŐ ϮϮϯ
Ú ® ® Û ² « ³ É ¬ µ ¸ µ « Ê ® ­ µ × Ü Ý µ É ¬ ° ­ µ Ï Ì Ì Ð

>ŽŽŬŝŶŐĂƚĞǀĞŶŵŽƌĞhŶŝƚLJĨĞĂƚƵƌĞƐ ϮϮϰ
ŽŶƚƌŽůůŝŶŐƚŚĞŐĂŵĞǁŝƚŚĂ^ƚĂƚĞDĂĐŚŝŶĞ ϮϮϰ
hƐŝŶŐĂ^ƚĂƚĞDĂĐŚŝŶĞŝƐĂĚĞƐŝŐŶƉĂƩĞƌŶĐŚŽŝĐĞ ϮϮϱ
Í Ï ² « ³ ¬ ´ µ Ù ¬ É ¬ µ ¶ É ± ´ ² « µ É ¬ ¬ ´ µ Ô É Ê µ Õ Ë Ö µ ± ¬ ¹ µ ¸ µ ¹ Ì Ì ¼

WƵůůŝŶŐĂůůƚŚĞůŝƩůĞηƉŝĞĐĞƐƚŽŐĞƚŚĞƌ ϮϮϲ
>ĞĂƌŶŝŶŐŵŽƌĞĂŌĞƌƚŚŝƐŬ ϮϮϲ
sŝƐŝƚŵLJĨĂǀŽƌŝƚĞǁĞďƐŝƚĞĨŽƌη ϮϮϳ
sŝƐŝƚŵLJĨĂǀŽƌŝƚĞǁĞďƐŝƚĞƐĨŽƌhŶŝƚLJĐŽĚŝŶŐ͗ ϮϮϳ
^ƵŵŵĂƌLJ ϮϮϳ

[ vi ]
½ ¾ ¿ À Á Â Ã Ä Â Å Æ Á Å Æ Ç

ƉƉĞŶĚŝdž͗/ŶŝƟĂů^ƚĂƚĞDĂĐŚŝŶĞĮůĞƐ ϮϮϵ
ĞŐŝŶ^ƚĂƚĞ ϮϯϬ
^ĞƚƵƉ^ƚĂƚĞ ϮϯϬ
WůĂLJ^ƚĂƚĞ^ĐĞŶĞϭͺϭ͗;ϭŽĨϮĂǀĂŝůĂďůĞ^ƚĂƚĞƐŝŶ^ĐĞŶĞϭͿ Ϯϯϭ
WůĂLJ^ƚĂƚĞ^ĐĞŶĞϭͺϮ͗;ϮŽĨϮĂǀĂŝůĂďůĞ^ƚĂƚĞƐŝŶ^ĐĞŶĞϭͿ ϮϯϮ
tŽŶ^ƚĂƚĞ^ĐĞŶĞϭ Ϯϯϯ
>ŽƐƚ^ƚĂƚĞ^ĐĞŶĞϭ Ϯϯϰ
WůĂLJ^ƚĂƚĞ^ĐĞŶĞϮ Ϯϯϱ
tŽŶ^ƚĂƚĞ^ĐĞŶĞϮ Ϯϯϲ
>ŽƐƚ^ƚĂƚĞ^ĐĞŶĞϮ Ϯϯϲ
^ƚĂƚĞDĂŶĂŐĞƌ Ϯϯϳ
/^ƚĂƚĞĂƐĞ Ϯϯϵ
ƉƉĞŶĚŝdž͗ŽŵƉůĞƚĞĚĐŽĚĞĮůĞƐĨŽƌŚĂƉƚĞƌƐϵĂŶĚϭϬ Ϯϰϭ
ĞŐŝŶ^ƚĂƚĞ Ϯϰϭ
^ĞƚƵƉ^ƚĂƚĞ ϮϰϮ
WůĂLJ^ƚĂƚĞ^ĐĞŶĞϭͺϭ͗;ϭŽĨϮĂǀĂŝůĂďůĞ^ƚĂƚĞƐŝŶ^ĐĞŶĞϭͿ Ϯϰϰ
WůĂLJ^ƚĂƚĞ^ĐĞŶĞϭͺϮ͗;ϮŽĨϮĂǀĂŝůĂďůĞ^ƚĂƚĞƐŝŶ^ĐĞŶĞϭͿ Ϯϰϲ
tŽŶ^ƚĂƚĞ^ĐĞŶĞϭ Ϯϰϳ
>ŽƐƚ^ƚĂƚĞ^ĐĞŶĞϭ Ϯϰϴ
WůĂLJ^ƚĂƚĞ^ĐĞŶĞϮ Ϯϰϵ
tŽŶ^ƚĂƚĞ^ĐĞŶĞϮ Ϯϱϭ
>ŽƐƚ^ƚĂƚĞ^ĐĞŶĞϮ ϮϱϮ
^ƚĂƚĞDĂŶĂŐĞƌ Ϯϱϯ
WůĂLJĞƌŽŶƚƌŽů Ϯϱϰ
'ĂŵĞĂƚĂ Ϯϱϲ
>ŽŽŬƚWůĂLJĞƌ Ϯϱϳ
&ŽůůŽǁŝŶŐWůĂLJĞƌ Ϯϱϴ
ŶĞƌŐLJWƵůƐĞWŽǁĞƌ Ϯϱϴ
/^ƚĂƚĞĂƐĞ Ϯϱϵ
ƉƉĞŶĚŝdž͗WŽƉYƵŝnjŶƐǁĞƌƐ Ϯϲϭ
/ŶĚĞdž Ϯϲϳ

[ vii ]
3UHIDFH
@ / 2 - 1 9 ? = A : + F A + @ A + E 2 1 A F + ? 2 , + , < > 9 . 0 9 F A A @ 0 / @ A ? E + . C A B A > + , A . ? G E . + F 2 1 A 9 F 9 2 A < .
)

ŚŽďďLJŝƐƚƚŽƚŚĞƉƌŽĨĞƐƐŝŽŶĂůǁŽƌŬŝŶŐŝŶĂůĂƌŐĞƐƚƵĚŝŽ͘hŶŝƚLJƵƐĞĚƚŽďĞĐŽŶƐŝĚĞƌĞĚĂϯƚŽŽů͕
ďƵƚǁŝƚŚƚŚĞƌĞůĞĂƐĞŽĨhŶŝƚLJϰ͘ϯ͕ŝƚŶŽǁŚĂƐĚĞĚŝĐĂƚĞĚϮƚŽŽůƐ͘dŚŝƐǁŝůůĞdžƉĂŶĚhŶŝƚLJΖƐƵƐĞ
A B A @ F + . A D

ĞǀĞůŽƉĞƌƐůŽǀĞŝƚƐŽďũĞĐƚͲŽƌŝĞŶƚĞĚĚƌĂŐͲĂŶĚͲĚƌŽƉƵƐĞƌŝŶƚĞƌĨĂĐĞǁŚŝĐŚŵĂŬĞƐĐƌĞĂƟŶŐĂ
ŐĂŵĞŽƌŝŶƚĞƌĂĐƟǀĞƉƌŽĚƵĐƚƐŽĞĂƐLJ͘ĞƐƉŝƚĞƚŚĞǀŝƐƵĂůĞĂƐĞŽĨǁŽƌŬŝŶŐŝŶhŶŝƚLJ͕ƚŚĞƌĞŝƐĂ
ŶĞĞĚƚŽƵŶĚĞƌƐƚĂŶĚƐŽŵĞďĂƐŝĐƉƌŽŐƌĂŵŵŝŶŐƚŽďĞĂďůĞƚŽǁƌŝƚĞƐĐƌŝƉƚƐĨŽƌ'ĂŵĞKďũĞĐƚƐ͘
&ŽƌŐĂŵĞĚĞǀĞůŽƉĞƌƐƚŚĂƚŚĂǀĞĂŶLJƉƌŽŐƌĂŵŵŝŶŐŬŶŽǁůĞĚŐĞ͕ůĞĂƌŶŝŶŐŚŽǁƚŽǁƌŝƚĞƐĐƌŝƉƚƐ
ŝƐƋƵŝƚĞĞĂƐLJ͘&ŽƌƚŚĞƚŚĞĂƌƟƐƚĐŽŵŝŶŐƚŽhŶŝƚLJ͕ĐƌĞĂƟŶŐƚŚĞǀŝƐƵĂůĂƐƉĞĐƚƐŽĨĂŐĂŵĞŝƐĂ
ďƌĞĞnjĞ͕ďƵƚǁƌŝƟŶŐƐĐƌŝƉƚƐŵĂLJĂƉƉĞĂƌƚŽďĞĂŐŝĂŶƚƌŽĂĚďůŽĐŬ͘

dŚŝƐŬŝƐĨŽƌƚŚŽƐĞǁŝƚŚŶŽĐŽŶĐĞƉƚŽĨƉƌŽŐƌĂŵŵŝŶŐ͘/ŝŶƚƌŽĚƵĐĞƚŚĞďƵŝůĚŝŶŐďůŽĐŬƐ͕ƚŚĂƚ
ŝƐ͕ďĂƐŝĐĐŽŶĐĞƉƚƐŽĨƉƌŽŐƌĂŵŵŝŶŐƵƐŝŶŐĞǀĞƌLJĚĂLJĞdžĂŵƉůĞƐLJŽƵĂƌĞĨĂŵŝůŝĂƌǁŝƚŚ͘ůƐŽ͕ŵLJ
ĂƉƉƌŽĂĐŚƚŽƚĞĂĐŚŝŶŐŝƐŶŽƚǁŚĂƚLJŽƵǁŝůůĮŶĚŝŶƚŚĞƚLJƉŝĐĂůƉƌŽŐƌĂŵŵŝŶŐŬ͘/ŶƚŚĞĞŶĚ͕
LJŽƵǁŝůůůĞĂƌŶƚŚĞďĂƐŝĐƐŽĨη͕ďƵƚ/ǁŝůůƐƉŽŽŶͲĨĞĞĚLJŽƵƚŚĞĚĞƚĂŝůƐĂƐƚŚĞLJĂƌĞŶĞĞĚĞĚ͘

/ǁŝůůƚĂŬĞLJŽƵƚŚƌŽƵŐŚƚŚĞƐƚĞƉƐŶĞĞĚĞĚƚŽĐƌĞĂƚĞĂƐŝŵƉůĞŐĂŵĞ͕ǁŝƚŚƚŚĞĨŽĐƵƐŶŽƚďĞŝŶŐ
ƚŚĞŐĂŵĞŝƚƐĞůĨďƵƚŽŶŚŽǁƚŚĞŵĂŶLJƐĞƉĂƌĂƚĞƐĞĐƟŽŶƐŽĨĐŽĚĞĐŽŵĞƚŽŐĞƚŚĞƌƚŽŵĂŬĞĂ
ǁŽƌŬŝŶŐŐĂŵĞ͘/ǁŝůůĂůƐŽŝŶƚƌŽĚƵĐĞƚŚĞĐŽŶĐĞƉƚŽĨĂ^ƚĂƚĞDĂĐŚŝŶĞƚŽŽƌŐĂŶŝnjĞĐŽĚĞŝŶƚŽ
ƐŝŵƉůĞ͕ŐĂŵĞĐŽŶƚƌŽůůŝŶŐďůŽĐŬƐ͘ƚƚŚĞĞŶĚ͕LJŽƵǁŝůůďĞƐĂLJŝŶŐΗtŽǁ͊/ĐĂŶΖƚďĞůŝĞǀĞŚŽǁ
ĞĂƐLJƚŚĂƚǁĂƐ͊Η

What this book covers


ŝƐĐŽǀĞƌŝŶŐzŽƵƌ,ŝĚĚĞŶ^ĐƌŝƉƟŶŐ^ŬŝůůƐ͕ĞdžƉůĂŝŶƐƚŚĂƚƚŚĞǀĞƌLJĮƌƐƚƚŚŝŶŐLJŽƵ
Þ ß à G

— ’ á – â

ŶĞĞĚƚŽĚŽŝƐŽǀĞƌĐŽŵĞLJŽƵƌƉĞƌĐĞŝǀĞĚĨĞĂƌŽĨǁƌŝƟŶŐƐĐƌŝƉƚƐ͘zŽƵΖůůƐĞĞƚŚĂƚǁƌŝƟŶŐƐĐƌŝƉƚƐ
ŝƐǀĞƌLJƐŝŵŝůĂƌƚŽŵĂŶLJŽĨLJŽƵƌĚĂŝůLJƌŽƵƟŶĞƐ͘tĞĂůƐŽŚĂǀĞĂĮƌƐƚůŽŽŬĂƚhŶŝƚLJΖƐƐĐƌŝƉƟŶŐ
ĚŽĐƵŵĞŶƚĂƟŽŶ͘&ŝŶĂůůLJ͕ǁĞƐĞĞŚŽǁƚŽĐƌĞĂƚĞĂηƐĐƌŝƉƚĮůĞŝŶhŶŝƚLJ͘
ã ä Á Ã ¾ å Á

/ŶƚƌŽĚƵĐŝŶŐƚŚĞƵŝůĚŝŶŐůŽĐŬƐĨŽƌhŶŝƚLJ^ĐƌŝƉƚƐ͕ĞdžƉůĂŝŶƐƚŚĂƚƚŚĞƌĞĂƌĞƚǁŽ
Þ ß à 4 G

— ’ á –

ƉƌŝŵĂƌLJďƵŝůĚŝŶŐďůŽĐŬƐĨŽƌǁƌŝƟŶŐĐŽĚĞ͕ǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͘dŚŝƐĐŚĂƉƚĞƌŝŶƚƌŽĚƵĐĞƐ
ƚŚĞĐŽŶĐĞƉƚƐŽĨĂǀĂƌŝĂďůĞĂŶĚĂŵĞƚŚŽĚ͘tŝƚŚƚŚĞƐĞƚǁŽďƵŝůĚŝŶŐďůŽĐŬƐ͕ǁĞůŽŽŬŝŶƚŽƚŚĞ
ĐŽŶĐĞƉƚŽĨĂΗĐůĂƐƐ͕ΗĂĐŽŶƚĂŝŶĞƌŽĨǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐƵƐĞĚƚŽĐƌĞĂƚĞhŶŝƚLJŽŵƉŽŶĞŶƚƐ͘
&ŝŶĂůůLJ͕ĐŽŵŵƵŶŝĐĂƟŽŶďĞƚǁĞĞŶ'ĂŵĞKďũĞĐƚƐŝƐĚŝƐĐƵƐƐĞĚďLJŝŶƚƌŽĚƵĐŝŶŐŽƚ^LJŶƚĂdž͘

'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨsĂƌŝĂďůĞƐ͕ĞdžƉůĂŝŶƐƵƐŝŶŐǀĂƌŝĂďůĞƐŝŶĚĞƚĂŝů͘tĞƐĞĞŚŽǁ
Þ ß à G

— ’ á – é

ƚŚĞLJΖƌĞƵƐĞĚĨŽƌƐƚŽƌŝŶŐĚĂƚĂ͕ĂŶĚŚŽǁƚŚĞŵĂŐŝĐǁŽƌŬƐƚŽƚƵƌŶǀĂƌŝĂďůĞƐŝŶƚŽŽŵƉŽŶĞŶƚ
ƉƌŽƉĞƌƟĞƐǁŚŝĐŚĂƉƉĞĂƌŝŶƚŚĞhŶŝƚLJ/ŶƐƉĞĐƚŽƌƉĂŶĞů͘

'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ͕ĞdžƉůĂŝŶƐŚŽǁŵĞƚŚŽĚƐƉĞƌĨŽƌŵƚŚĞĂĐƟŽŶƐƚŚĂƚ
Þ ß à G

— ’ á – ê

ƚĂŬĞƉůĂĐĞŽŶ'ĂŵĞKďũĞĐƚƐ͘tĞƐĞĞŚŽǁƚŽĐƌĞĂƚĞĂŶĚƵƐĞŵĞƚŚŽĚƐŝŶĚĞƚĂŝů͘tĞĂůƐŽůŽŽŬŝŶƚŽ
ƚǁŽŽĨhŶŝƚLJΖƐŵŽƐƚŽŌĞŶƵƐĞĚŵĞƚŚŽĚƐ͕ƚŚĞ^ƚĂƌƚ;ͿŵĞƚŚŽĚĂŶĚƚŚĞhƉĚĂƚĞ;ͿŵĞƚŚŽĚ͘

DĂŬŝŶŐĞĐŝƐŝŽŶƐŝŶŽĚĞ͕
Þ ß à G A ì , > 9 / @ ? 2 1 9 2 C < . / @ 0 0 9 F A , > 9 - G C A : / ? / + @ ? 1 9 B A 2 + = A

— ’ á – ë

ŵĂĚĞĂďŽƵƚŵĂŶLJƚŚŝŶŐƐ͕ũƵƐƚůŝŬĞLJŽƵĚŽŝŶLJŽƵƌĚĂŝůLJůŝĨĞ͘tĞůŽŽŬĂƚŵĂŶLJŽĨƚŚĞǁĂLJƐ
ĐŚŽŝĐĞƐĂƌĞŵĂĚĞĂŶĚƐŽŵĞŽĨƚŚĞĐŽŵŵŽŶƌĞĂƐŽŶƐĨŽƌǁŚŝĐŚĚĞĐŝƐŝŽŶƐĂƌĞƌĞƋƵŝƌĞĚ͘

hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ͕ƐŚŽǁƐƵƐǁŚĂƚŽƚ^LJŶƚĂdžĂĐƚƵĂůůLJŝƐ͕
Þ ß à G

— ’ á – í

ĂƐŝŵƉůĞĂĚĚƌĞƐƐĨŽƌŵĂƚƚŽƌĞƚƌŝĞǀĞŝŶĨŽƌŵĂƟŽŶŽƌƐĞŶĚŝŶĨŽƌŵĂƟŽŶƚŽŽƚŚĞƌŽŵƉŽŶĞŶƚƐ͘

ƌĞĂƟŶŐƚŚĞ'ĂŵĞƉůĂLJŝƐ:ƵƐƚĂWĂƌƚŽĨƚŚĞ'ĂŵĞ͕ƐŚŽǁƐƚŚĂƚĚĞǀĞůŽƉŝŶŐƚŚĞ
Þ ß à G

— ’ á – î

ŐĂŵĞƉůĂLJŝƐĨƵŶ͕ďƵƚƚŚĞƌĞĂƌĞŽƚŚĞƌƉĂƌƚƐŶĞĞĚĞĚƚŽŵĂŬĞĂĨƵůůLJĨƵŶĐƟŽŶĂůŐĂŵĞ͘tĞůŽŽŬ
ŝŶƚŽƐŽŵĞŽĨƚŚĞƉŽƐƐŝďůĞƉĂƌƚƐŶĞĞĚĞĚĂŶĚŚŽǁƚŽŽƌŐĂŶŝnjĞĂůůƚŚĞƉĂƌƚƐďLJŝŶƚƌŽĚƵĐŝŶŐƚŚĞ
< ? A + E 9 J 2 9 2 A 9 : 1 / @ A D
#

ĞǀĞůŽƉŝŶŐƚŚĞ^ƚĂƚĞDĂĐŚŝŶĞ͕ĐƌĞĂƚĞƐĂƐŝŵƉůĞ^ƚĂƚĞDĂĐŚŝŶĞƚŽƐŚŽǁŚŽǁŝƚ
Þ ß à G

— ’ á – ï

ǁŽƌŬƐ͕ĂŶĚƐĞĞƚŚĞƐŝŵƉůŝĐŝƚLJŝƚďƌŝŶŐƐĨŽƌĐŽŶƚƌŽůůŝŶŐĂŐĂŵĞ͘tĞƐŚŽǁŚŽǁƚŽĐŚĂŶŐĞ^ĐĞŶĞƐ
ĨŽƌĂŵƵůƟͲůĞǀĞůŐĂŵĞĂŶĚŚŽǁƚŽĚĞĂůǁŝƚŚ'ĂŵĞKďũĞĐƚƐǁŚĞŶĐŚĂŶŐŝŶŐƚŽĂŶŽƚŚĞƌƐĐĞŶĞ͘

^ƚĂƌƚƵŝůĚŝŶŐĂ'ĂŵĞĂŶĚ'ĞƚƚŚĞĂƐŝĐ^ƚƌƵĐƚƵƌĞZƵŶŶŝŶŐ͕ƚĞĂĐŚĞƐƵƐŚŽǁƚŽ
Þ ß à G

— ’ á – ð

ĂĐĐĞƐƐĂŶĚƵƐĞhŶŝƚLJΖƐ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞĂŶĚƚŚĞZĞĨĞƌĞŶĐĞDĂŶƵĂůĨŽƌƚŚĞĨĞĂƚƵƌĞƐǁĞ
ǁĂŶƚ͘dŚĞŶǁĞďĞŐŝŶĐƌĞĂƟŶŐĂŵƵůƟͲůĞǀĞůŐĂŵĞƵƐŝŶŐƚŚĞƐƚĂƚĞŵĂĐŚŝŶĞĂŶĚƚŚƌĞĞƐĐĞŶĞƐ͘
WůĂLJĞƌ'ĂŵĞKďũĞĐƚŝƐĂĚĚĞĚĂŶĚǁĞůĞĂƌŶŚŽǁƚŽĐŽŶƚƌŽůŝƚ͘

DŽǀŝŶŐƌŽƵŶĚ͕ŽůůŝƐŝŽŶƐ͕ĂŶĚ<ĞĞƉŝŶŐ^ĐŽƌĞ͕ƐŚŽǁƐŚŽǁƚŽŵŽǀĞƚŚĞWůĂLJĞƌ
Þ ß à G

— ’ á – â ñ

ĂƌŽƵŶĚƵƐŝŶŐhŶŝƚLJΖƐƉŚLJƐŝĐƐƐLJƐƚĞŵ͕ĂŶĚŚĂǀĞĐĂŵĞƌĂƐĨŽůůŽǁƚŚĞWůĂLJĞƌΖƐŵŽǀĞŵĞŶƚƐ͘tĞ
ĚĞǀĞůŽƉĂ'h/ƐĐŽƌŝŶŐƐLJƐƚĞŵ͕ƐƚĂƌƚƐŚŽŽƟŶŐƉƌŽũĞĐƟůĞƐĂƚĞŶĞŵLJŽďũĞĐƚƐ͕ĂŶĚƐĞĞŚŽǁƚŽ
ǁŝŶŽƌůŽƐĞƚŚĞŐĂŵĞ͘hůƟŵĂƚĞůLJ͕ǁĞƐĞĞŚŽǁĂůůƚŚĞƐĞƉĂƌĂƚĞƉŝĞĐĞƐŽĨĐŽĚĞĐŽŵĞƚŽŐĞƚŚĞƌ
ĂŶĚǁŽƌŬƚŽŐĞƚŚĞƌ͘

^ƵŵŵĂƌŝnjŝŶŐzŽƵƌEĞǁŽĚŝŶŐ^ŬŝůůƐ͕ƌĞǀŝĞǁƐƚŚĞŵĂŝŶƉŽŝŶƚƐLJŽƵůĞĂƌŶĞĚĂďŽƵƚ
Þ ß à G

— ’ á – â â

ƉƌŽŐƌĂŵŵŝŶŐǁŝƚŚηĂŶĚǁŽƌŬŝŶŐǁŝƚŚŽďũĞĐƚƐ͘/ƚĞůůLJŽƵĂďŽƵƚƐŽŵĞŽĨƚŚĞηĂŶĚhŶŝƚLJ
ĨĞĂƚƵƌĞƐLJŽƵŵĂLJǁĂŶƚƚŽůĞĂƌŶŶŽǁƚŚĂƚLJŽƵƵŶĚĞƌƐƚĂŶĚƚŚĞďĂƐŝĐƐŽĨη͘/ǁŝůůŚŝŐŚůŝŐŚƚ
ƚŚĞďĞŶĞĮƚƐŽĨŝŶĐŽƌƉŽƌĂƟŶŐĂƐƚĂƚĞŵĂĐŚŝŶĞŝŶƚŽLJŽƵƌhŶŝƚLJƉƌŽũĞĐƚƐ͘&ŝŶĂůůLJ͕/ƉƌĞƐĞŶƚŵLJ
E 9 B + . / 2 A ? + < . : A ? E + . E < . 2 1 A . > A 9 . @ / @ 0 D

æ ç è
ã ä Á Ã ¾ å Á

ƉƉĞŶĚŝdž /ŶŝƟĂů^ƚĂƚĞŵĂĐŚŝŶĞĮůĞƐ͕ƐŚŽǁƐƚŚĞŝŶŝƟĂůĐŽĚĞĨŽƌƚŚĞĐůĂƐƐĞƐŶĞĞĚĞĚ
G

ĨŽƌĐŚĂŶŐŝŶŐ^ƚĂƚĞƐŝŶŽƵƌŐĂŵĞ͘dŚĞƐĞ^ƚĂƚĞDĂĐŚŝŶĞĐůĂƐƐĞƐĂƌĞƚŚĞƐƚĂƌƟŶŐƉŽŝŶƚĨŽƌ
ŽƌŐĂŶŝnjŝŶŐĂŶĚĂĚĚŝŶŐŐĂŵĞĐŽĚĞ͘

ƉƉĞŶĚŝdž ŽŵƉůĞƚĞĚĐŽĚĞĮůĞƐĨŽƌŚĂƉƚĞƌƐϵĂŶĚϭϬ͕ƐŚŽǁƐĂůůƚŚĞĐůĂƐƐĂŶĚƐĐƌŝƉƚĮůĞƐ
G

< ? A C E + . , > 9 - / @ 0 + < . : + F , > A 2 A C 0 9 F A D

:KDW\RXQHHGIRUWKLVERRN
zŽƵŶĞĞĚƚŚĞĨƌĞĞǀĞƌƐŝŽŶŽĨhŶŝƚLJůŽĐĂƚĞĚĂƚhttp://unity3d.com/unity/download/
D

dŚĞDŽŶŽĞǀĞůŽƉĐŽĚĞĞĚŝƚŽƌŝƐŝŶĐůƵĚĞĚŝŶƚŚĞhŶŝƚLJŝŶƐƚĂůůĂƟŽŶ͘

zŽƵƌĐŽŵƉƵƚĞƌǁŝůůŶĞĞĚƚŽŵĞĞƚƚŚĞŵŝŶŝŵƵŵƌĞƋƵŝƌĞŵĞŶƚƐĨŽƌhŶŝƚLJĂƐƐƉĞĐŝĮĞĚĂƚ
http://unity3d.com/unity/system-requirements.html
D

tŝŶĚŽǁƐ͗yW^WϮŽƌůĂƚĞƌ͖DĂĐK^yΗ^ŶŽǁ>ĞŽƉĂƌĚΗϭϬ͘ϲŽƌůĂƚĞƌ͘EŽƚĞƚŚĂƚhŶŝƚLJǁĂƐŶŽƚ
ƚĞƐƚĞĚŽŶƐĞƌǀĞƌǀĞƌƐŝŽŶƐŽĨtŝŶĚŽǁƐĂŶĚK^y͘

'ƌĂƉŚŝĐƐĐĂƌĚǁŝƚŚŝƌĞĐƚyϵůĞǀĞů;ƐŚĂĚĞƌŵŽĚĞůϮ͘ϬͿĐĂƉĂďŝůŝƟĞƐ͘ŶLJĐĂƌĚŵĂĚĞƐŝŶĐĞϮϬϬϰ
ƐŚŽƵůĚǁŽƌŬ͘

:KRWKLVERRNLVIRU
/ĨLJŽƵĚŽŶΖƚŬŶŽǁĂŶLJƚŚŝŶŐĂďŽƵƚƉƌŽŐƌĂŵŵŝŶŐŝŶŐĞŶĞƌĂů͕ǁƌŝƟŶŐĐŽĚĞ͕ǁƌŝƟŶŐƐĐƌŝƉƚƐ͕Žƌ
ŚĂǀĞŶŽŝĚĞĂǁŚĞƌĞƚŽĞǀĞŶďĞŐŝŶ͕ƚŚĞŶƚŚŝƐŬŝƐƉĞƌĨĞĐƚĨŽƌLJŽƵ͘/ĨLJŽƵǁĂŶƚƚŽŵĂŬĞ
ŐĂŵĞƐĂŶĚŶĞĞĚƚŽůĞĂƌŶŚŽǁƚŽǁƌŝƚĞηƐĐƌŝƉƚƐŽƌĐŽĚĞ͕ƚŚĞŶƚŚŝƐŬŝƐŝĚĞĂůĨŽƌLJŽƵ͘

Conventions
/ŶƚŚŝƐŬ͕LJŽƵǁŝůůĮŶĚƐĞǀĞƌĂůŚĞĂĚŝŶŐƐĂƉƉĞĂƌŝŶŐĨƌĞƋƵĞŶƚůLJ͘

dŽŐŝǀĞĐůĞĂƌŝŶƐƚƌƵĐƟŽŶƐŽĨŚŽǁƚŽĐŽŵƉůĞƚĞĂƉƌŽĐĞĚƵƌĞŽƌƚĂƐŬ͕ǁĞƵƐĞ͗

7LPHIRUDFWLRQ²KHDGLQJ
ĐƟŽŶϭ
ó ô

ĐƟŽŶϮ
õ ô

ĐƟŽŶϯ
ö ô

æ ò è
ã ä Á Ã ¾ å Á

/ŶƐƚƌƵĐƟŽŶƐŽŌĞŶŶĞĞĚƐŽŵĞĞdžƚƌĂĞdžƉůĂŶĂƟŽŶƐŽƚŚĂƚƚŚĞLJŵĂŬĞƐĞŶƐĞ͕ƐŽƚŚĞLJĂƌĞ
ĨŽůůŽǁĞĚǁŝƚŚ͗

What just happened?


dŚŝƐŚĞĂĚŝŶŐĞdžƉůĂŝŶƐƚŚĞǁŽƌŬŝŶŐŽĨƚĂƐŬƐŽƌŝŶƐƚƌƵĐƟŽŶƐƚŚĂƚLJŽƵŚĂǀĞũƵƐƚĐŽŵƉůĞƚĞĚ͘

zŽƵǁŝůůĂůƐŽĮŶĚƐŽŵĞŽƚŚĞƌůĞĂƌŶŝŶŐĂŝĚƐŝŶƚŚĞŬ͕ŝŶĐůƵĚŝŶŐ͗

3RSTXL]²KHDGLQJ
dŚĞƐĞĂƌĞƐŚŽƌƚŵƵůƟƉůĞͲĐŚŽŝĐĞƋƵĞƐƟŽŶƐŝŶƚĞŶĚĞĚƚŽŚĞůƉLJŽƵƚĞƐƚLJŽƵƌŽǁŶƵŶĚĞƌƐƚĂŶĚŝŶŐ͘

+DYHDJRKHUR²KHDGLQJ
dŚĞƐĞƉƌĂĐƟĐĂůĐŚĂůůĞŶŐĞƐŐŝǀĞLJŽƵŝĚĞĂƐĨŽƌĞdžƉĞƌŝŵĞŶƟŶŐǁŝƚŚǁŚĂƚLJŽƵŚĂǀĞůĞĂƌŶĞĚ͘

zŽƵǁŝůůĂůƐŽĮŶĚĂŶƵŵďĞƌŽĨƐƚLJůĞƐŽĨƚĞdžƚƚŚĂƚĚŝƐƟŶŐƵŝƐŚďĞƚǁĞĞŶĚŝīĞƌĞŶƚŬŝŶĚƐŽĨ
ŝŶĨŽƌŵĂƟŽŶ͘,ĞƌĞĂƌĞƐŽŵĞĞdžĂŵƉůĞƐŽĨƚŚĞƐĞƐƚLJůĞƐ͕ĂŶĚĂŶĞdžƉůĂŶĂƟŽŶŽĨƚŚĞŝƌŵĞĂŶŝŶŐ͘

ŽĚĞǁŽƌĚƐŝŶƚĞdžƚ͕ĚĂƚĂďĂƐĞƚĂďůĞŶĂŵĞƐ͕ĨŽůĚĞƌŶĂŵĞƐ͕ĮůĞŶĂŵĞƐ͕ĮůĞĞdžƚĞŶƐŝŽŶƐ͕
ƉĂƚŚŶĂŵĞƐ͕ĚƵŵŵLJhZ>Ɛ͕ƵƐĞƌŝŶƉƵƚ͕ĂŶĚdǁŝƩĞƌŚĂŶĚůĞƐĂƌĞƐŚŽǁŶĂƐĨŽůůŽǁƐ͗ΗtĞ
ĐĂŶŝŶĐůƵĚĞŽƚŚĞƌĐŽŶƚĞdžƚƐƚŚƌŽƵŐŚƚŚĞƵƐĞŽĨƚŚĞŝŶĐůƵĚĞĚŝƌĞĐƟǀĞ͘Η

ďůŽĐŬŽĨĐŽĚĞŝƐƐĞƚĂƐĨŽůůŽǁƐ͗
public BeginState (StateManager managerRef)
{
manager = managerRef;
if(Application.loadedLevelName != "Scene0")
Application.LoadLevel("Scene0");
}

tŚĞŶǁĞǁŝƐŚƚŽĚƌĂǁLJŽƵƌĂƩĞŶƟŽŶƚŽĂƉĂƌƟĐƵůĂƌƉĂƌƚŽĨĂĐŽĚĞďůŽĐŬ͕ƚŚĞƌĞůĞǀĂŶƚůŝŶĞƐ
+ . / 2 A F ? 9 . A ? A 2 / @ = + > C I

if(instanceRef == null)
{
instanceRef = this;
DontDestroyOnLoad(gameObject);
}

ŶLJĐŽŵŵĂŶĚͲůŝŶĞŝŶƉƵƚŽƌŽƵƚƉƵƚŝƐǁƌŝƩĞŶĂƐĨŽůůŽǁƐ͗
# cp /usr/src/asterisk-addons/configs/cdr_mysql.conf.sample
/etc/asterisk/cdr_mysql.conf

æ ÷ è
ã ä Á Ã ¾ å Á

ŽǁŶůŽĂĚŝŶŐƚŚĞĞdžĂŵƉůĞĐŽĚĞ
zŽƵĐĂŶĚŽǁŶůŽĂĚƚŚĞĞdžĂŵƉůĞĐŽĚĞĮůĞƐĨŽƌĂůůWĂĐŬƚŬƐLJŽƵŚĂǀĞƉƵƌĐŚĂƐĞĚ
ĨƌŽŵLJŽƵƌĂĐĐŽƵŶƚĂƚŚƩƉ͗ͬͬǁǁǁ͘ƉĂĐŬƚƉƵď͘ĐŽŵ͘/ĨLJŽƵƉƵƌĐŚĂƐĞĚƚŚŝƐŬ
ĞůƐĞǁŚĞƌĞ͕LJŽƵĐĂŶǀŝƐŝƚŚƩƉ͗ͬͬǁǁǁ͘ƉĂĐŬƚƉƵď͘ĐŽŵͬƐƵƉƉŽƌƚĂŶĚƌĞŐŝƐƚĞƌƚŽŚĂǀĞ
ƚŚĞĮůĞƐ͘ĞͲŵĂŝůĞĚĚŝƌĞĐƚůLJƚŽLJŽƵ͘

EĞǁƚĞƌŵƐ ŝŵƉŽƌƚĂŶƚǁŽƌĚƐĂƌĞƐŚŽǁŶŝŶďŽůĚ͘tŽƌĚƐƚŚĂƚLJŽƵƐĞĞŽŶƚŚĞƐĐƌĞĞŶ͕ŝŶ
9 @ C

ŵĞŶƵƐŽƌĚŝĂůŽŐďŽdžĞƐĨŽƌĞdžĂŵƉůĞ͕ĂƉƉĞĂƌŝŶƚŚĞƚĞdžƚůŝŬĞƚŚŝƐ͗ΗĐůŝĐŬŝŶŐƚŚĞEĞdžƚďƵƩŽŶ
ŵŽǀĞƐLJŽƵƚŽƚŚĞŶĞdžƚƐĐƌĞĞŶΗ͘

ù ú û ü ý ü þ ÿ û ý   û  ú ü  ü   ÿ ú    ú û ý ü ú    ý    ý ÿ

ý  ÿ ú ü  û ý  ÿ ú    ú û  ý    ý ÿ

5HDGHUIHHGEDFN
&ĞĞĚďĂĐŬĨƌŽŵŽƵƌƌĞĂĚĞƌƐŝƐĂůǁĂLJƐǁĞůĐŽŵĞ͘>ĞƚƵƐŬŶŽǁǁŚĂƚLJŽƵƚŚŝŶŬĂďŽƵƚƚŚŝƐ
ŬͶǁŚĂƚLJŽƵůŝŬĞĚŽƌŵĂLJŚĂǀĞĚŝƐůŝŬĞĚ͘ZĞĂĚĞƌĨĞĞĚďĂĐŬŝƐŝŵƉŽƌƚĂŶƚĨŽƌƵƐƚŽ
ĚĞǀĞůŽƉƟƚůĞƐƚŚĂƚLJŽƵƌĞĂůůLJŐĞƚƚŚĞŵŽƐƚŽƵƚŽĨ͘

feedback@packtpub.com
+ ? A @ C < ? 0 A @ A . 9 > E A A C = 9 : ; G ? / F , > - ? A @ C 9 @ A F 9 / > 2 + G
 (

ĂŶĚŵĞŶƟŽŶƚŚĞŬƟƚůĞǀŝĂƚŚĞƐƵďũĞĐƚŽĨLJŽƵƌŵĞƐƐĂŐĞ͘

/ĨƚŚĞƌĞŝƐĂƚŽƉŝĐƚŚĂƚLJŽƵŚĂǀĞĞdžƉĞƌƟƐĞŝŶĂŶĚLJŽƵĂƌĞŝŶƚĞƌĞƐƚĞĚŝŶĞŝƚŚĞƌǁƌŝƟŶŐŽƌ
ĐŽŶƚƌŝďƵƟŶŐƚŽĂŬ͕ƐĞĞŽƵƌĂƵƚŚŽƌŐƵŝĚĞŽŶwww.packtpub.com/authors
D

Customer support
EŽǁƚŚĂƚLJŽƵĂƌĞƚŚĞƉƌŽƵĚŽǁŶĞƌŽĨĂWĂĐŬƚŬ͕ǁĞŚĂǀĞĂŶƵŵďĞƌŽĨƚŚŝŶŐƐƚŽŚĞůƉLJŽƵ
2 + 0 A 2 2 1 A F + ? 2 E . + F - + < . , < . : 1 9 ? A D

Downloading the example code


zŽƵĐĂŶĚŽǁŶůŽĂĚƚŚĞĞdžĂŵƉůĞĐŽĚĞĮůĞƐĨŽƌĂůůWĂĐŬƚŬƐLJŽƵŚĂǀĞƉƵƌĐŚĂƐĞĚĨƌŽŵLJŽƵƌ
http://www.packtpub.com͘/ĨLJŽƵƉƵƌĐŚĂƐĞĚƚŚŝƐŬĞůƐĞǁŚĞƌĞ͕LJŽƵĐĂŶ
9 : : + < @ 2 9 2

http://www.packtpub.com/supportĂŶĚƌĞŐŝƐƚĞƌƚŽŚĂǀĞƚŚĞĮůĞƐĞͲŵĂŝůĞĚĚŝƌĞĐƚůLJ
B / ? / 2

2 + - + < D

æ ø è
ã ä Á Ã ¾ å Á

Errata
ůƚŚŽƵŐŚǁĞŚĂǀĞƚĂŬĞŶĞǀĞƌLJĐĂƌĞƚŽĞŶƐƵƌĞƚŚĞĂĐĐƵƌĂĐLJŽĨŽƵƌĐŽŶƚĞŶƚ͕ŵŝƐƚĂŬĞƐĚŽ
ŚĂƉƉĞŶ͘/ĨLJŽƵĮŶĚĂŵŝƐƚĂŬĞŝŶŽŶĞŽĨŽƵƌŬƐͶŵĂLJďĞĂŵŝƐƚĂŬĞŝŶƚŚĞƚĞdžƚŽƌƚŚĞ
ĐŽĚĞͶǁĞǁŽƵůĚďĞŐƌĂƚĞĨƵůŝĨLJŽƵǁŽƵůĚƌĞƉŽƌƚƚŚŝƐƚŽƵƐ͘LJĚŽŝŶŐƐŽ͕LJŽƵĐĂŶƐĂǀĞŽƚŚĞƌ
ƌĞĂĚĞƌƐĨƌŽŵĨƌƵƐƚƌĂƟŽŶĂŶĚŚĞůƉƵƐŝŵƉƌŽǀĞƐƵďƐĞƋƵĞŶƚǀĞƌƐŝŽŶƐŽĨƚŚŝƐŬ͘/ĨLJŽƵĮŶĚ
ĂŶLJĞƌƌĂƚĂ͕ƉůĞĂƐĞƌĞƉŽƌƚƚŚĞŵďLJǀŝƐŝƟŶŐhttp://www.packtpub.com/submit-errata
G

ƐĞůĞĐƟŶŐLJŽƵƌŬ͕ĐůŝĐŬŝŶŐŽŶƚŚĞ ƐƵďŵŝƐƐŝŽŶ ĨŽƌŵ


> / @ ; G 9 @ C A @ 2 A . / @ 0 2 1 A C A 2 9 / > ? + E

     

LJŽƵƌĞƌƌĂƚĂ͘KŶĐĞLJŽƵƌĞƌƌĂƚĂĂƌĞǀĞƌŝĮĞĚ͕LJŽƵƌƐƵďŵŝƐƐŝŽŶǁŝůůďĞĂĐĐĞƉƚĞĚĂŶĚƚŚĞĞƌƌĂƚĂ
ǁŝůůďĞƵƉůŽĂĚĞĚŽŶŽƵƌǁĞďƐŝƚĞ͕ŽƌĂĚĚĞĚƚŽĂŶLJůŝƐƚŽĨĞdžŝƐƟŶŐĞƌƌĂƚĂ͕ƵŶĚĞƌƚŚĞƌƌĂƚĂ
ƐĞĐƟŽŶŽĨƚŚĂƚƟƚůĞ͘ŶLJĞdžŝƐƟŶŐĞƌƌĂƚĂĐĂŶďĞǀŝĞǁĞĚďLJƐĞůĞĐƟŶŐLJŽƵƌƟƚůĞĨƌŽŵ
http://www.packtpub.com/support
D

Piracy
8 / . 9 : - + E : + , - . / 0 1 2 F 9 2 A . / 9 > + @ 2 1 A @ 2 A . @ A 2 / ? 9 @ + @ 0 + / @ 0 , . + = > A F 9 : . + ? ? 9 > > F A C / 9 D 2 8 9 : ; 2 G
! '

ǁĞƚĂŬĞƚŚĞƉƌŽƚĞĐƟŽŶŽĨŽƵƌĐŽƉLJƌŝŐŚƚĂŶĚůŝĐĞŶƐĞƐǀĞƌLJƐĞƌŝŽƵƐůLJ͘/ĨLJŽƵĐŽŵĞĂĐƌŽƐƐĂŶLJ
ŝůůĞŐĂůĐŽƉŝĞƐŽĨŽƵƌǁŽƌŬƐ͕ŝŶĂŶLJĨŽƌŵ͕ŽŶƚŚĞ/ŶƚĞƌŶĞƚ͕ƉůĞĂƐĞƉƌŽǀŝĚĞƵƐǁŝƚŚƚŚĞůŽĐĂƟŽŶ
ĂĚĚƌĞƐƐŽƌǁĞďƐŝƚĞŶĂŵĞŝŵŵĞĚŝĂƚĞůLJƐŽƚŚĂƚǁĞĐĂŶƉƵƌƐƵĞĂƌĞŵĞĚLJ͘

copyright@packtpub.comǁŝƚŚĂůŝŶŬƚŽƚŚĞƐƵƐƉĞĐƚĞĚ
8 > A 9 ? A : + @ 2 9 : 2 < ? 9 2

, / . 9 2 A C F 9 2 A . / 9 > D

tĞĂƉƉƌĞĐŝĂƚĞLJŽƵƌŚĞůƉŝŶƉƌŽƚĞĐƟŶŐŽƵƌĂƵƚŚŽƌƐ͕ĂŶĚŽƵƌĂďŝůŝƚLJƚŽďƌŝŶŐLJŽƵ
B 9 > < 9 = > A : + @ 2 A @ 2 D

Questions
zŽƵĐĂŶĐŽŶƚĂĐƚƵƐĂƚquestions@packtpub.comŝĨLJŽƵĂƌĞŚĂǀŝŶŐĂƉƌŽďůĞŵǁŝƚŚĂŶLJ
ĂƐƉĞĐƚŽĨƚŚĞŬ͕ĂŶĚǁĞǁŝůůĚŽŽƵƌďĞƐƚƚŽĂĚĚƌĞƐƐŝƚ͘

æ  è
Discovering Your Hidden
1
Scripting Skills
ŽŵƉƵƚĞƌƉƌŽŐƌĂŵŵŝŶŐŝƐǀŝĞǁĞĚďLJƚŚĞĂǀĞƌĂŐĞƉĞƌƐŽŶĂƐƌĞƋƵŝƌŝŶŐůŽŶŐ
ƉĞƌŝŽĚƐŽĨƚƌĂŝŶŝŶŐƚŽůĞĂƌŶƐŬŝůůƐƚŚĂƚĂƌĞƚŽƚĂůůLJĨŽƌĞŝŐŶ͕ĂŶĚĚĂƌŶŶĞĂƌ
ŝŵƉŽƐƐŝďůĞƚŽƵŶĚĞƌƐƚĂŶĚ͘dŚĞǁŽƌĚŐĞĞŬŝƐŽĨƚĞŶƵƐĞĚƚŽĚĞƐĐƌŝďĞĂƉĞƌƐŽŶ
ƚŚĂƚĐĂŶǁƌŝƚĞĐŽŵƉƵƚĞƌĐŽĚĞ͘dŚĞƉĞƌĐĞƉƚŝŽŶŝƐƚŚĂƚůĞĂƌŶŝŶŐƚŽǁƌŝƚĞĐŽĚĞ
ƚĂŬĞƐŐƌĞĂƚƚĞĐŚŶŝĐĂůƐŬŝůůƚŚĂƚŝƐũƵƐƚƐŽŚĂƌĚƚŽůĞĂƌŶ͘dŚŝƐƉĞƌĐĞƉƚŝŽŶŝƐƚŽƚĂůůLJ
ƵŶǁĂƌƌĂŶƚĞĚ͘zŽƵĂůƌĞĂĚLJŚĂǀĞƚŚĞƐŬŝůůƐŶĞĞĚĞĚďƵƚĚŽŶΖƚƌĞĂůŝnjĞŝƚ͘dŽŐĞƚŚĞƌ
ǁĞǁŝůůĐƌƵƐŚƚŚŝƐĨĂůƐĞƉĞƌĐĞƉƚŝŽŶLJŽƵŵĂLJŚĂǀĞŽĨLJŽƵƌƐĞůĨďLJƌĞĨŽĐƵƐŝŶŐ͕ŽŶĞ
ƐƚĞƉĂƚĂƚŝŵĞ͕ƚŚĞŬŶŽǁůĞĚŐĞLJŽƵĂůƌĞĂĚLJƉŽƐƐĞƐƐƚŽǁƌŝƚĞhŶŝƚLJƐĐƌŝƉƚƐ͘

/ŶƚŚŝƐĐŚĂƉƚĞƌǁĞƐŚĂůů͗

‹ ĞĂůǁŝƚŚƉƌĞĐŽŶĐĞŝǀĞĚĨĞĂƌƐĂŶĚĐŽŶĐĞƉƚƐĂďŽƵƚƐĐƌŝƉƚƐ
‹ ^ĞĞǁŚLJǁĞƐŚŽƵůĚƵƐĞηŝŶƐƚĞĂĚŽĨhŶŝƚLJ^ĐƌŝƉƚ
‹ /ŶƚƌŽĚƵĐĞhŶŝƚLJΖƐĚŽĐƵŵĞŶƚĂƟŽŶĨŽƌƐĐƌŝƉƟŶŐ
‹ >ĞĂƌŶŚŽǁhŶŝƚLJĂŶĚƚŚĞDŽŶŽĞǀĞůŽƉĞĚŝƚŽƌǁŽƌŬƚŽŐĞƚŚĞƌ

>ĞƚΖƐďĞŐŝŶŽƵƌũŽƵƌŶĞLJďLJĞůŝŵŝŶĂƟŶŐĂŶLJĂŶdžŝĞƚLJĂďŽƵƚǁƌŝƟŶŐƐĐƌŝƉƚƐĨŽƌhŶŝƚLJ͕
ĂŶĚďĞĐŽŵĞĨĂŵŝůŝĂƌǁŝƚŚŽƵƌƐĐƌŝƉƟŶŐĞŶǀŝƌŽŶŵĞŶƚ͘
ŝƐĐŽǀĞƌŝŶŐzŽƵƌ,ŝĚĚĞŶ^ĐƌŝƉƟŶŐ^ŬŝůůƐ

3UHUHTXLVLWHNQRZOHGJHIRUXVLQJWKLVERRN
'ƌĞĂƚŶĞǁƐŝĨLJŽƵĂƌĞĂƐĐƌŝƉƟŶŐďĞŐŝŶŶĞƌ͊dŚŝƐŬŝƐĨŽƌƚŚŽƐĞǁŝƚŚĂďƐŽůƵƚĞůLJŶŽ
ŬŶŽǁůĞĚŐĞŽĨƉƌŽŐƌĂŵŵŝŶŐ͘/ƚŝƐĚĞǀŽƚĞĚƚŽƚĞĂĐŚŝŶŐƚŚĞďĂƐŝĐƐŽĨηǁŝƚŚhŶŝƚLJ͘

,ŽǁĞǀĞƌ͕ƐŽŵĞŬŶŽǁůĞĚŐĞŽĨhŶŝƚLJΖƐŽƉĞƌĂƟŽŶŝƐƌĞƋƵŝƌĞĚ͘/ǁŝůůŽŶůLJďĞĐŽǀĞƌŝŶŐƚŚĞƉĂƌƚƐ
ŽĨƚŚĞhŶŝƚLJŝŶƚĞƌĨĂĐĞƚŚĂƚĂƌĞƌĞůĂƚĞĚƚŽǁƌŝƟŶŐηĐŽĚĞ͘/ĂŵĂƐƐƵŵŝŶŐƚŚĂƚLJŽƵŬŶŽǁLJŽƵƌ
ǁĂLJĂƌŽƵŶĚhŶŝƚLJΖƐŝŶƚĞƌĨĂĐĞ͕ŚŽǁƚŽǁŽƌŬǁŝƚŚ'ĂŵĞKďũĞĐƚƐŝŶLJŽƵƌ^ĐĞŶĞ͕ĂŶĚŚŽǁƚŽ
ŽŵƉŽŶĞŶƚƐĂŶĚǀŝĞǁƚŚĞŝƌWƌŽƉĞƌƟĞƐ
> + : 9 2 A / @ 2 1 A     D

    

Dealing with scriptphobia


zŽƵΖǀĞŐŽƚhŶŝƚLJƵƉĂŶĚƌƵŶŶŝŶŐ͕ƐƚƵĚŝĞĚƚŚĞŝŶƚĞƌĨĂĐĞ͕ĂĚĚĞĚƐŽŵĞ'ĂŵĞKďũĞĐƚƐƚŽƚŚĞ
^ĐĞŶĞ͘EŽǁLJŽƵΖƌĞƌĞĂĚLJƚŽŚĂǀĞƚŚŽƐĞ'ĂŵĞKďũĞĐƚƐŵŽǀĞĂƌŽƵŶĚ͕ůŝƐƚĞŶ͕ƐƉĞĂŬ͕ƉŝĐŬƵƉ
+ 2 1 A . + =  A : 2 ? G ? 1 + + 2 2 1 A = 9 C 0 < - ? G + . 9 @ - 2 1 / @ 0 A > ? A - + < : 9 @ C . A 9 F + E D J + - + < : > / : ; + @ 8 > 9 - G

ĂŶĚŶŽƚŚŝŶŐŚĂƉƉĞŶƐ͘tĞůůĚĂƌŶŝƚĂůůĂŶLJǁĂLJ͘

zŽƵũƵƐƚůĞĂƌŶĞĚĂďŝŐůĞƐƐŽŶ͕ĂůůƚŚŽƐĞĨĂŶƚĂƐƟĐ͕ŚŝŐŚůLJĚĞƚĂŝůĞĚ'ĂŵĞKďũĞĐƚƐĂƌĞĚƵŵďĞƌ
ƚŚĂŶĂŚĂŵŵĞƌ͘dŚĞLJĚŽŶΖƚŬŶŽǁĂŶLJƚŚŝŶŐ͕ĂŶĚƚŚĞLJƐƵƌĞĚŽŶΖƚŬŶŽǁŚŽǁƚŽĚŽĂŶLJƚŚŝŶŐ͘

^ŽLJŽƵƉƌŽĐĞĞĚƚŽƌĞĂĚƚŚĞhŶŝƚLJĨŽƌƵŵƐ͕ƐƚƵĚLJƐŽŵĞƐĐƌŝƉƟŶŐƚƵƚŽƌŝĂůƐ͕ŵĂLJďĞĞǀĞŶĐŽƉLJ
ĂŶĚƉĂƐƚĞƐŽŵĞƐĐƌŝƉƚƐƚŽŐĞƚƐŽŵĞĂĐƟŽŶŐŽŝŶŐǁŚĞŶLJŽƵƉƌĞƐƐWůĂLJ͘dŚĂƚΖƐŐƌĞĂƚ͕ďƵƚƚŚĞŶ
LJŽƵƌĞĂůŝnjĞLJŽƵĚŽŶΖƚƵŶĚĞƌƐƚĂŶĚĂŶLJƚŚŝŶŐŝŶƚŚĞƐĐƌŝƉƚƐLJŽƵΖǀĞĐŽƉŝĞĚ͘^ƵƌĞ͕LJŽƵƉƌŽďĂďůLJ
ƌĞĐŽŐŶŝnjĞƚŚĞǁŽƌĚƐ͕ďƵƚLJŽƵĨĂŝůƚŽƵŶĚĞƌƐƚĂŶĚǁŚĂƚƚŚŽƐĞǁŽƌĚƐĚŽŽƌŵĞĂŶŝŶĂƐĐƌŝƉƚ͘/ƚ
E A A > ? > / ; A 0 / = = A . / ? 1 D

zŽƵůŽŽŬĂƚƚŚĞĐŽĚĞ͕LJŽƵƌƉĂůŵƐŐĞƚƐǁĞĂƚLJ͕ĂŶĚLJŽƵƚŚŝŶŬƚŽLJŽƵƌƐĞůĨ͕Η'ĞĞnj͕/ΖůůŶĞǀĞƌďĞ
ĂďůĞƚŽǁƌŝƚĞƐĐƌŝƉƚƐ͊ΗWĞƌŚĂƉƐLJŽƵŚĂǀĞƐĐƌŝƉƚƉŚŽďŝĂ͗ƚŚĞĨĞĂƌŽĨŶŽƚďĞŝŶŐĂďůĞƚŽǁƌŝƚĞ
ŝŶƐƚƌƵĐƟŽŶƐ;/ŵĂĚĞƚŚĂƚƵƉͿ͘/ƐƚŚĂƚǁŚĂƚLJŽƵŚĂǀĞ͍

dŚĞĨĞĂƌƚŚĂƚLJŽƵĐĂŶŶŽƚǁƌŝƚĞĚŽǁŶŝŶƐƚƌƵĐƟŽŶƐŝŶĂĐŽŚĞƌĞŶƚŵĂŶŶĞƌ͍zŽƵŵĂLJďĞůŝĞǀĞ
LJŽƵŚĂǀĞƚŚŝƐĂŋŝĐƟŽŶ͕ďƵƚLJŽƵĚŽŶΖƚ͘zŽƵŽŶůLJƚŚŝŶŬLJŽƵĚŽ͘

dŚĞďĂƐŝĐƐŽĨǁƌŝƟŶŐĐŽĚĞĂƌĞƋƵŝƚĞƐŝŵƉůĞ͘/ŶĨĂĐƚ͕LJŽƵĚŽƚŚŝŶŐƐĞǀĞƌLJĚĂLJƚŚĂƚĂƌĞũƵƐƚůŝŬĞ
ƚŚĞƐƚĞƉƐĞdžĞĐƵƚĞĚŝŶĂƐĐƌŝƉƚ͘&ŽƌĞdžĂŵƉůĞ͕ĚŽLJŽƵŬŶŽǁŚŽǁƚŽŝŶƚĞƌĂĐƚǁŝƚŚŽƚŚĞƌƉĞŽƉůĞ͍
,ŽǁƚŽŽƉĞƌĂƚĞĂĐŽŵƉƵƚĞƌ͍ŽLJŽƵĨƌĞƚƐŽŵƵĐŚĂďŽƵƚŵĂŬŝŶŐĂďĂůŽŶĞLJƐĂŶĚǁŝĐŚƚŚĂƚ
LJŽƵŚĂǀĞƚŽŐŽƚŽĂŶŽŶůŝŶĞĨŽƌƵŵĂŶĚĂƐŬŚŽǁƚŽĚŽŝƚ͍

KĨĐŽƵƌƐĞLJŽƵĚŽŶΖƚ͘/ŶĨĂĐƚ͕LJŽƵŬŶŽǁƚŚĞƐĞƚŚŝŶŐƐĂƐΗĞǀĞƌLJĚĂLJƌŽƵƟŶĞƐΗ͕ŽƌŵĂLJďĞĂƐ
ŚĂďŝƚƐ͘dŚŝŶŬĨŽƌĂŵŽŵĞŶƚ͕ĚŽLJŽƵŚĂǀĞƚŽĐŽŶƐĐŝŽƵƐůLJƚŚŝŶŬĂďŽƵƚƚŚĞƐĞƌŽƵƟŶĞƐLJŽƵ
ĚŽĞǀĞƌLJĚĂLJ͍WƌŽďĂďůLJŶŽƚ͘ŌĞƌLJŽƵĚŽƚŚĞŵŽǀĞƌĂŶĚŽǀĞƌ͕ƚŚĞLJďĞĐŽŵĞĂƵƚŽŵĂƟĐ͘

[8]
Ä  ¾  Æ Á ä 

dŚĞƉŽŝŶƚŝƐ͕LJŽƵĚŽƚŚŝŶŐƐĞǀĞƌLJĚĂLJĨŽůůŽǁŝŶŐƐĞƋƵĞŶĐĞƐŽĨƐƚĞƉƐ͘tŚŽĐƌĞĂƚĞĚƚŚĞƐĞƐƚĞƉƐ
LJŽƵĨŽůůŽǁ͍DŽƌĞƚŚĂŶůŝŬĞůLJLJŽƵĚŝĚ͕ǁŚŝĐŚŵĞĂŶƐLJŽƵΖǀĞďĞĞŶƐĐƌŝƉƟŶŐLJŽƵƌǁŚŽůĞůŝĨĞ͘
zŽƵũƵƐƚŶĞǀĞƌŚĂĚƚŽǁƌŝƚĞĚŽǁŶƚŚĞƐƚĞƉƐ͕ĨŽƌLJŽƵƌĚĂŝůLJƌŽƵƟŶĞƐ͕ŽŶĂƉŝĞĐĞŽĨƉĂƉĞƌ
ďĞĨŽƌĞĚŽŝŶŐƚŚĞŵ͘zŽƵĐŽƵůĚǁƌŝƚĞƚŚĞƐƚĞƉƐĚŽǁŶŝĨLJŽƵƌĞĂůůLJǁĂŶƚĞĚƚŽ͕ďƵƚŝƚƚĂŬĞƐ
ƚŽŽŵƵĐŚƟŵĞĂŶĚƚŚĞƌĞΖƐŶŽŶĞĞĚ͘ƵƚLJŽƵĚŽ͕ŝŶĨĂĐƚ͕ŬŶŽǁŚŽǁƚŽ͘tĞůů͕ŐƵĞƐƐǁŚĂƚ͍
dŽǁƌŝƚĞƐĐƌŝƉƚƐ͕LJŽƵŽŶůLJŚĂǀĞƚŽŵĂŬĞŽŶĞƐŵĂůůĐŚĂŶŐĞ͕ƐƚĂƌƚǁƌŝƟŶŐĚŽǁŶƚŚĞƐƚĞƉƐ͘
EŽƚĨŽƌLJŽƵƌƐĞůĨďƵƚĨŽƌƚŚĞǁŽƌůĚLJŽƵΖƌĞĐƌĞĂƟŶŐŝŶhŶŝƚLJ͘

^ŽLJŽƵƐĞĞ͕LJŽƵĂƌĞĂůƌĞĂĚLJĨĂŵŝůŝĂƌǁŝƚŚƚŚĞĐŽŶĐĞƉƚŽĨĚĞĂůŝŶŐǁŝƚŚƐĐƌŝƉƚƐ͘DŽƐƚďĞŐŝŶŶĞƌƐ
ƚŽhŶŝƚLJĞĂƐŝůLJůĞĂƌŶƚŚĞŝƌǁĂLJĂƌŽƵŶĚƚŚĞhŶŝƚLJŝŶƚĞƌĨĂĐĞ͕ŚŽǁƚŽĂĚĚĂƐƐĞƚƐ͕ĂŶĚǁŽƌŬŝŶ
ƚŚĞ^ĐĞŶĞĂŶĚ,ŝĞƌĂƌĐŚLJǁŝŶĚŽǁƐ͘dŚĞŝƌƉƌŝŵĂƌLJĨĞĂƌ͕ĂŶĚƌŽĂĚďůŽĐŬ͕ŝƐƚŚĞŝƌĨĂůƐĞďĞůŝĞĨ
ƚŚĂƚƐĐƌŝƉƟŶŐŝƐƚŽŽŚĂƌĚƚŽůĞĂƌŶ͘

ZĞůĂdž͊zŽƵŶŽǁŚĂǀĞƚŚŝƐŬ͘/ĂŵŐŽŝŶŐƚŽŐĞƚƌĞĂůůLJďĂƐŝĐŝŶƚŚĞďĞŐŝŶŶŝŶŐĐŚĂƉƚĞƌƐ͘
ĂůůƚŚĞŵďĂďLJͲƐƚĞƉƐŝĨLJŽƵǁĂŶƚ͕ďƵƚLJŽƵǁŝůůƐĞĞƚŚĂƚƐĐƌŝƉƟŶŐĨŽƌhŶŝƚLJŝƐƐŝŵŝůĂƌƚŽĚŽŝŶŐ
ĂůƌĞĂĚLJĚŽĞǀĞƌLJĚĂLJ͘/ΖŵƐƵƌĞLJŽƵǁŝůůŚĂǀĞŵĂŶLJΗŚͲ,ĂΗŵŽŵĞŶƚƐĂƐLJŽƵůĞĂƌŶ
2 1 / @ 0 ? - + <

ĂŶĚŽǀĞƌĐŽŵĞLJŽƵƌƵŶũƵƐƟĮĞĚĨĞĂƌƐĂŶĚďĞůŝĞĨƐ͘

Teaching behaviors to GameObjects


zŽƵŚĂǀĞhŶŝƚLJďĞĐĂƵƐĞLJŽƵǁĂŶƚƚŽŵĂŬĞĂŐĂŵĞŽƌƐŽŵĞƚŚŝŶŐŝŶƚĞƌĂĐƟǀĞ͘zŽƵΖǀĞĮůůĞĚLJŽƵƌ
ŐĂŵĞĨƵůůŽĨĚƵŵď'ĂŵĞKďũĞĐƚƐ͘tŚĂƚLJŽƵŚĂǀĞƚŽĚŽŶŽǁŝƐďĞƚŚĞŝƌƚĞĂĐŚĞƌ͘zŽƵŚĂǀĞƚŽ
ƚĞĂĐŚƚŚĞŵĞǀĞƌLJƚŚŝŶŐƚŚĞLJŶĞĞĚƚŽŬŶŽǁƚŽůŝǀĞŝŶƚŚŝƐŵĂŬĞͲďĞůŝĞǀĞǁŽƌůĚ͘dŚŝƐƚŚĞƉĂƌƚ
ǁŚĞƌĞLJŽƵŚĂǀĞƚŽǁƌŝƚĞĚŽǁŶƚŚĞŝŶƐƚƌƵĐƟŽŶƐƐŽƚŚĂƚLJŽƵƌ'ĂŵĞKďũĞĐƚƐĐĂŶďĞƐŵĂƌƚĞƌ͘

,ĞƌĞΖƐĂƋƵŽƚĞĨƌŽŵƚŚĞhŶŝƚLJDĂŶƵĂů͗

dŚĞďĞŚĂǀŝŽƌŽĨ'ĂŵĞKďũĞĐƚƐŝƐĐŽŶƚƌŽůůĞĚďLJƚŚĞŽŵƉŽŶĞŶƚƐƚŚĂƚĂƌĞĂƩĂĐŚĞĚ
ƚŽƚŚĞŵ͘͘͘hŶŝƚLJĂůůŽǁƐLJŽƵƚŽĐƌĞĂƚĞLJŽƵƌŽǁŶŽŵƉŽŶĞŶƚƐƵƐŝŶŐƐĐƌŝƉƚƐ͘

EŽƟĐĞƚŚĂƚǁŽƌĚ͕ďĞŚĂǀŝŽƌ͘/ƚƌĞŵŝŶĚƐŵĞŽĨĂƉĂƌĞŶƚƚĞĂĐŚŝŶŐĂĐŚŝůĚƉƌŽƉĞƌďĞŚĂǀŝŽƌ͘
dŚŝƐŝƐĞdžĂĐƚůLJǁŚĂƚǁĞĂƌĞŐŽŝŶŐƚŽĚŽǁŚĞŶǁĞǁƌŝƚĞƐĐƌŝƉƚƐĨŽƌŽƵƌ'ĂŵĞKďũĞĐƚƐ͕ǁĞΖƌĞ
ƚĞĂĐŚŝŶŐƚŚĞŵƚŚĞďĞŚĂǀŝŽƌƐǁĞǁĂŶƚƚŚĞŵƚŽŚĂǀĞ͘dŚĞďĞƐƚƉĂƌƚŝƐ͕hŶŝƚLJŚĂƐƉƌŽǀŝĚĞĚ
ĂďŝŐůŝƐƚŽĨĂůůƚŚĞďĞŚĂǀŝŽƌƐǁĞĐĂŶŐŝǀĞƚŽŽƵƌ'ĂŵĞKďũĞĐƚƐ͘dŚŝƐůŝƐƚŽĨďĞŚĂǀŝŽƌƐŝƐ
ĚŽĐƵŵĞŶƚĞĚŝŶƚŚĞ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ͘

dŚŝƐŵĞĂŶƐǁĞĐĂŶƉŝĐŬĂŶĚĐŚŽƐĞ͕ĨƌŽŵƚŚŝƐůŝƐƚŽĨďĞŚĂǀŝŽƌƐĂŶLJƚŚŝŶŐǁĞǁĂŶƚĂ
'ĂŵĞKďũĞĐƚƚŽĚŽ͘hŶŝƚLJŚĂƐĚŽŶĞĂůůƚŚĞŚĂƌĚǁŽƌŬŽĨƉƌŽŐƌĂŵŵŝŶŐĂůůƚŚĞƐĞďĞŚĂǀŝŽƌƐ
ĨŽƌLJŽƵ͘ůůǁĞŶĞĞĚƚŽĚŽŝƐƵƐĞĂůŝƩůĞĐŽĚĞƚŽƟĞŝŶƚŽƚŚĞƐĞďĞŚĂǀŝŽƌƐ͘ŝĚLJŽƵĐĂƚĐŚƚŚĂƚ͍
hŶŝƚLJŚĂƐĂůƌĞĂĚLJĐƌĞĂƚĞĚƚŚĞďĞŚĂǀŝŽƌƐ͕ĂůůǁĞŚĂǀĞƚŽĚŽŝƐƐƵƉƉůLJĂůŝƩůĞďŝƚŽĨηĐŽĚĞƚŽ
ĂƉƉůLJƚŚĞƐĞďĞŚĂǀŝŽƌƐƚŽŽƵƌ'ĂŵĞKďũĞĐƚƐ͘EŽǁƌĞĂůůLJ͕ŚŽǁĚŝĸĐƵůƚĐĂŶŝƚďĞƐŝŶĐĞhŶŝƚLJŚĂƐ
ĂůƌĞĂĚLJĚŽŶĞŵŽƐƚŽĨƚŚĞƉƌŽŐƌĂŵŵŝŶŐ͍

[9]
ŝƐĐŽǀĞƌŝŶŐzŽƵƌ,ŝĚĚĞŶ^ĐƌŝƉƟŶŐ^ŬŝůůƐ

&KRRVLQJWRXVH&LQVWHDGRI8QLW\6FULSW
^ŽǁŚLJĐŚŽŽƐĞηƚŽĐƌĞĂƚĞƚŚŝƐĐŽĚĞ͍dŚŝƐŵĂLJďĞĂŌĞƌͲƚŚĞͲĨĂĐƚŝŶĨŽƌŵĂƟŽŶĨŽƌLJŽƵŝĨ
LJŽƵΖǀĞĂůƌĞĂĚLJĂĐƋƵŝƌĞĚƚŚŝƐŬĂŶĚĐŚŽƐĞŶƚŽƵƐĞη͕ďƵƚƚŚĞƐĞĂƌĞǀĂůƵĂďůĞƉŽŝŶƚƐ
ƚŽŬŶŽǁĂŶLJǁĂLJ͗

5HDVRQIRUFKRRVLQJ&²YDVWDPRXQWRIGRFXPHQWDWLRQ
on the Internet
ƚŚĞĨŽůůŽǁŝŶŐďƵůůĞƚůŝƐƚ͕ŝƚǁŝůůŚĞůƉLJŽƵƵŶĚĞƌƐƚĂŶĚƚŚĞƌĞĂƐŽŶ
9 B A 9 > + + ; 9 2
&

E + . : 1 + + ? / @ 0 * ž I

‹ ηŝƐĂǁĞůůŬŶŽǁŶĂŶĚĂŚĞĂǀŝůLJƵƐĞĚƉƌŽŐƌĂŵŵŝŶŐůĂŶŐƵĂŐĞĚĞǀĞůŽƉĞĚďLJ
DŝĐƌŽƐŽŌĨŽƌĐƌĞĂƟŶŐtŝŶĚŽǁƐĂƉƉůŝĐĂƟŽŶĂŶĚǁĞďͲďĂƐĞĚĂƉƉůŝĐĂƟŽŶƐ͘/ĨLJŽƵ
ĞǀĞƌŶĞĞĚƚŽŬŶŽǁĂŶLJƚŚŝŶŐĂďŽƵƚη͕ƐŝŵƉůLJĚŽĂƐĞĂƌĐŚŽŶƚŚĞ/ŶƚĞƌŶĞƚ͘
‹ hŶŝƚLJ^ĐƌŝƉƚŝƐũƵƐƚĂƐĐƌŝƉƟŶŐůĂŶŐƵĂŐĞĚĞƐŝŐŶĞĚƐƉĞĐŝĮĐĂůůLJĨŽƌhŶŝƚLJ͘/ƚΖƐƐŝŵŝůĂƌ
ƚŽ:ĂǀĂ^ĐƌŝƉƚ͕LJĞƚŝƚŝƐŶΖƚ͘zŽƵŵĂLJďĞĂďůĞƚŽƐĞĂƌĐŚĨŽƌ:ĂǀĂ^ĐƌŝƉƚƐŽůƵƟŽŶƐŽŶ
ƚŚĞǁĞď͕ďƵƚƚŚĞĐŽĚĞŵĂLJŽƌŵĂLJŶŽƚǁŽƌŬǁŝƚŚŝŶƚŚĞĐŽŶĮŶĞƐŽĨhŶŝƚLJǁŝƚŚŽƵƚ
ŵŽĚŝĮĐĂƟŽŶ͕ŝĨĂƚĂůů͘
‹ tŚLJƐƚĂƌƚŽīůĞĂƌŶŝŶŐĂůŝŵŝƚĞĚƐĐƌŝƉƟŶŐůĂŶŐƵĂŐĞ͕ƐƉĞĐŝĮĐŽŶůLJƚŽhŶŝƚLJ͕ǁŚĞŶ
LJŽƵĐĂŶƵƐĞη͕ĂƚƌƵĞƉƌŽŐƌĂŵŵŝŶŐůĂŶŐƵĂŐĞ͕ĂŶĚĮŶĚŝŶĨŽƌŵĂƟŽŶĞǀĞƌLJǁŚĞƌĞ͍
‹ tŚŽŬŶŽǁƐ͕ŽŶĐĞLJŽƵƐĞĞŚŽǁĞĂƐLJηŝƐ͕ŵĂLJďĞLJŽƵŵŝŐŚƚĚĞĐŝĚĞƚŽĚĞǀĞůŽƉ
ĨŽƌtŝŶĚŽǁƐŽƌƚŚĞtĞďƐŽŵĞĚĂLJ͘zŽƵΖůůĂůƌĞĂĚLJŚĂǀĞƚŚĞďĂƐŝĐƐŽĨη͘
‹ KŶĐĞLJŽƵůĞĂƌŶη͕LJŽƵΖůůƉƌĞƩLJŵƵĐŚŬŶŽǁhŶŝƚLJ^ĐƌŝƉƚ͕ƚŽŽ͘

5HDVRQIRUFKRRVLQJ&²ÁH[LELOLW\WRXVH8QLW\VFULSWVDQG
UHJXODU&FRGHÀOHV
ŶLJηĮůĞƐ
- + < 1 9 B A / @ - + < . @ / 2 - 8 . +  A : 2 E + > C A . G 2 1 9 2 9 . A @ + 2 @ / 2 - ? : . / , 2 ? G
) )

‹
ĂƌĞĂĐĐĞƐƐŝďůĞǁŝƚŚŽƵƚƚŚĞŶĞĞĚŽĨĂƩĂĐŚƚŚĞŵƚŽ'ĂŵĞKďũĞĐƚƐ͘
‹ dŚĞ^ƚĂƚĞDĂĐŚŝŶĞƉƌŽũĞĐƚǁĞǁŝůůĐƌĞĂƚĞĨŽƌƚŚŝƐŬŵĂŬĞƐƵƐĞŽĨηĐŽĚĞ
ĮůĞƐƚŚĂƚĂƌĞŶŽƚĂƩĂĐŚĞĚƚŽĂŶLJ'ĂŵĞKďũĞĐƚ͘
‹ /ΖŵŶŽƚƐĂLJŝŶŐLJŽƵĐĂŶΖƚĐƌĞĂƚĞĂ^ƚĂƚĞDĂĐŚŝŶĞďLJƵƐŝŶŐhŶŝƚLJ^ĐƌŝƉƚ͘/ƚΖƐũƵƐƚƐŽ
ŵƵĐŚĞĂƐŝĞƌǁŝƚŚη͘ǀĞƌLJhŶŝƚLJ^ĐƌŝƉƚĮůĞŚĂƐƚŽďĞĂƩĂĐŚĞĚƚŽĂ'ĂŵĞKďũĞĐƚ
ƚŽǁŽƌŬĂŶĚďĞĂĐĐĞƐƐŝďůĞƚŽŽƚŚĞƌƐĐƌŝƉƚƐ͘ηŽǀĞƌĐŽŵĞƐƚŚŝƐŶĞĐĞƐƐŝƚLJ͘

[ 10 ]
Ä  ¾  Æ Á ä 

5HDVRQIRUFKRRVLQJ&²FRGLQJUXOHVDUHVSHFLÀF
‹ ηŝƐŬŶŽǁŶĂƐĂƐƚƌŝĐƚůLJͲƚLJƉĞĚůĂŶŐƵĂŐĞ͘tŚĂƚĚŽĞƐƚŚŝƐŵĞĂŶƐƚŽLJŽƵ͍
‹ ƐLJŽƵǁƌŝƚĞĐŽĚĞ͕hŶŝƚLJǁŝůůĐĂƚĐŚĐŽĚŝŶŐĞƌƌŽƌƐŝŵŵĞĚŝĂƚĞůLJ͘>ĞĂƌŶŝŶŐĂƐƵďũĞĐƚ
ŝƐĂůǁĂLJƐĞĂƐŝĞƌǁŚĞŶƚŚĞƌƵůĞƐĂƌĞƐƉĞĐŝĮĐ͕ĂŶĚŶŽƚƐŽŵĞĨƵnjnjLJΗLJŽƵĐĂŶŝĨLJŽƵ
ǁĂŶƚƚŽΗŬŝŶĚŽĨůŽŐŝĐ͘
‹ hŶŝƚLJ^ĐƌŝƉƚŝƐŶŽƚĂƐƚƌŝĐƚůLJͲƚLJƉĞĚůĂŶŐƵĂŐĞ͘zŽƵŚĂǀĞƚŚĞƉŽƚĞŶƟĂůƚŽǁƌŝƚĞĐŽĚĞ
ƚŚĂƚŝƐŶŽƚǀĂůŝĚ͕ďƵƚhŶŝƚLJǁŽŶΖƚĐĂƚĐŚƚŚĞĞƌƌŽƌƐƵŶƟůLJŽƵƉƌĞƐƐWůĂLJ͘
‹ &ŝŶĚŝŶŐŵŝƐƚĂŬĞƐĂƐLJŽƵǁƌŝƚĞƚŚĞĐŽĚĞŝƐƐŽŵƵĐŚĞĂƐŝĞƌƚŚĂŶŚĂǀŝŶŐƚŽĚĞĂů
ǁŝƚŚƚŚĞŵǁŚĞŶĂƵƐĞƌŚĂƐĨŽƵŶĚƚŚĞŵǁŚĞŶƚŚĞLJΖƌĞƉůĂLJŝŶŐƚŚĞŐĂŵĞ͘
‹ WůĞĂƐĞďĞĂǁĂƌĞ͕ŝƚŝƐĞĂƐLJƚŽĨŽƌĐĞhŶŝƚLJ^ĐƌŝƉƚƚŽďĞƐƚƌŝĐƚůLJͲƚLJƉĞĚ͕ďƵƚŝĨLJŽƵΖƌĞ
ĚŽƚŚĂƚ͕ƚŚĞŶLJŽƵŵĂLJĂƐǁĞůůďĞƵƐŝŶŐηĂŶLJǁĂLJ͕ǁŚŝĐŚďƌŝŶŐƐƵƐďĂĐŬ
0 + / @ 0 2 +

2 + A 9 ? + @ 6 D
"

Maneuvering around Unity's documentation


tŚĞŶǁĞďĞŐŝŶǁƌŝƟŶŐƐĐƌŝƉƚƐ͕ǁĞǁŝůůďĞůŽŽŬŝŶŐĂƚhŶŝƚLJΖƐĚŽĐƵŵĞŶƚĂƟŽŶƋƵŝƚĞŽŌĞŶ͕
ƐŽŝƚΖƐďĞŶĞĮĐŝĂůƚŽŬŶŽǁŚŽǁƚŽĂĐĐĞƐƐƚŚĞŝŶĨŽƌŵĂƟŽŶǁĞŶĞĞĚ͘&ŽƌĂŶŽǀĞƌǀŝĞǁŽĨĂ
ƚŽƉŝĐǁĞΖůůƵƐĞƚŚĞZĞĨĞƌĞŶĐĞDĂŶƵĂů͘&ŽƌƐƉĞĐŝĮĐĐŽĚŝŶŐĚĞƚĂŝůƐĂŶĚĞdžĂŵƉůĞƐǁĞΖůůƵƐĞ
^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ
2 1 A D

^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ
ù  ü     ú       ú     ÿ ý ü       û  ú   

ǁŽŶΖƚŵĂŬĞƐĞŶƐĞƚŽLJŽƵ͕ǁŚŝĐŚŝƐĞdžƉĞĐƚĞĚĂƚƚŚŝƐƉŽŝŶƚ͘/ŶƚŚĞďĞŐŝŶŶŝŶŐ
ĐŚĂƉƚĞƌƐ͕ĂƐ/ƚĞĂĐŚLJŽƵƚŚĞďĂƐŝĐƐŽĨƉƌŽŐƌĂŵŵŝŶŐ͕ŝƚǁŝůůďĞŶĞĐĞƐƐĂƌLJĨŽƌŵĞ
ƚŽƵƐĞĂĨĞǁƚŚŝŶŐƐŝŶƚŚĞ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ
ÿ  ú ÿ ý ÿ   ú  ý ü þ ÿ       

ƚŽhŶŝƚLJΖƐŽŶƐŽůĞ͘&ŽƌŶŽǁ͕ũƵƐƚĐŽƉLJƚŚĞĐŽĚĞ/ƵƐĞďĞĐĂƵƐĞLJŽƵǁŝůůďĞ
  ú û ü ý ü þ     ú ý  ý   ú   û

7LPHIRUDFWLRQ²RSHQLQJWKH5HIHUHQFH0DQXDOGRFXPHQWDWLRQ
IRUWKHWUDQVIRUP&RPSRQHQW
ĂĐĐĞƐƐŝŶŐhŶŝƚLJΖƐĚŽĐƵŵĞŶƚĂƟŽŶĨƌŽŵǁŝƚŚŝŶhŶŝƚLJ͕ǁĞΖůůƵƐĞƚŚĞ
+ 0 A 2 9 E A A > E + . 


!  "

ĂŵĞƌĂ dƌĂŶƐĨŽƌŵ
2 + C A F + @ ? 2 . 9 2 A D Œ B A . - 9 F A # =  A : 2 / @ 9 J : A @ A 1 9 ? 9 * + F , + @ A @ 2 G ? +
%

ǁĞΖůůůŽŽŬĂƚƚŚĞĚŽĐƵŵĞŶƚĂƟŽŶĨŽƌdƌĂŶƐĨŽƌŵ ZĞĨĞƌĞŶĐĞDĂŶƵĂů ^ĐƌŝƉƟŶŐ


/ @ 2 1 A 9 @ C 2 1 A

͘'ĞƫŶŐƚŽƚŚĞŝŶĨŽƌŵĂƟŽŶŝƐƉƌĞƩLJĞĂƐLJ͘ůŝĐŬŽŶƚŚĞƟŶLJŬŝĐŽŶǁŝƚŚƚŚĞ

$

 %     

ƋƵĞƐƟŽŶŵĂƌŬ͘

,ŝĞƌĂƌĐŚLJ DĂŝŶĂŵĞƌĂ
& '

@ 2 1 A 2 9 = G ? A > A : 2 2 1 A D
!

[ 11 ]
ŝƐĐŽǀĞƌŝŶŐzŽƵƌ,ŝĚĚĞŶ^ĐƌŝƉƟŶŐ^ŬŝůůƐ

dƌĂŶƐĨŽƌŵ
( '

* > / : ; + @ 2 1 A = + + ; / : + @ E + . 2 1 A D

What just happened?


dŚĞǁĞďďƌŽǁƐĞƌŽƉĞŶĞĚƚŚĞZĞĨĞƌĞŶĐĞDĂŶƵĂůƐŚŽǁŝŶŐŝŶĨŽƌŵĂƟŽŶĂďŽƵƚdƌĂŶƐĨŽƌŵ͘

7LPHIRUDFWLRQ²RSHQLQJWKHVFULSWLQJUHIHUHQFH
GRFXPHQWDWLRQIRUWKHWUDQVIRUPFRPSRQHQW
ZĞĨĞƌĞŶĐĞDĂŶƵĂů͕ǁĞΖůůŶŽǁŽƉĞŶƚŚĞ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞĚŽĐƵŵĞŶƚĂƟŽŶĨŽƌƚŚĞ
. + F 2 1 A
H

dƌĂŶƐĨŽƌŵŽŵƉŽŶĞŶƚ
D

^ǁŝƚĐŚƚŽ^ĐƌŝƉƟŶŐŝŶƚŚĞƵƉƉĞƌƌŝŐŚƚͲŚĂŶĚƐŝĚĞŽĨƚŚĞďƌŽǁƐĞƌǁŝŶĚŽǁ
ó ô

* > / : ; 2 1 A > / @ ;

ĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͗

[ 12 ]
Ä  ¾  Æ Á ä 

What just happened?


dƌĂŶƐĨŽƌŵ ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞŽƉĞŶƐŝŶƚŚĞǁĞďďƌŽǁƐĞƌĂƐƐŚŽǁŶŝŶƚŚĞ
1 A , 9 0 A / @ 2 1 A


ĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͗

$UHZHUHDOO\VXSSRVHGWRNQRZDOOWKDWVWXII"
ĐƚƵĂůůLJ͕ŶŽ͘dŚĞǁŚŽůĞƌĞĂƐŽŶĨŽƌǁŚLJƚŚĞ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞĞdžŝƐƚŝƐƐŽǁĞĐĂŶůŽŽŬĨŽƌ
ŝŶĨŽƌŵĂƟŽŶĂƐǁĞŶĞĞĚŝƚ͘tŚŝĐŚǁŝůůĂĐƚƵĂůůLJŚĂƉƉĞŶƵƐƚŽƌĞŵĞŵďĞƌƚŚĞĐŽĚĞǁĞĚŽ
ŽǀĞƌĂŶĚŽǀĞƌ͕ũƵƐƚůŝŬĞŽƵƌŽƚŚĞƌĚĂŝůLJƌŽƵƟŶĞƐĂŶĚŚĂďŝƚƐ͘

:KDWLVDOOWKDWLQIRUPDWLRQ"
dŚĞƉƌĞǀŝŽƵƐƐĐƌĞĞŶƐŚŽƚƐŚŽǁƐĂĚĞƐĐƌŝƉƟŽŶĂŶĚƐŽŵĞƐĂŵƉůĞĐŽĚĞǁŚŝĐŚƉƌŽďĂďůLJĚŽĞƐŶΖƚ
ŵĞĂŶŵƵĐŚƌŝŐŚƚŶŽǁ͘&ĞĂƌŶŽƚ͊zŽƵΖůůĞǀĞŶƚƵĂůůLJďĞĂďůĞƚŽůŽŽŬĂƚƚŚĂƚĂŶĚƐĂLJ͕Η,ĞLJ͕/ŬŶŽǁ
ǁŚĂƚƚŚĂƚŵĞĂŶƐ͊Η

[ 13 ]
ŝƐĐŽǀĞƌŝŶŐzŽƵƌ,ŝĚĚĞŶ^ĐƌŝƉƟŶŐ^ŬŝůůƐ

:RUNLQJZLWK&VFULSWÀOHV
hŶƟůLJŽƵůĞĂƌŶƐŽŵĞďĂƐŝĐƉƌŽŐƌĂŵŵŝŶŐĐŽŶĐĞƉƚƐ͕ŝƚΖƐƚŽŽĞĂƌůLJƚŽƐƚƵĚLJŚŽǁƐĐƌŝƉƚƐǁŽƌŬ͕
ďƵƚǁĞƐƟůůŶĞĞĚƚŽŬŶŽǁŚŽǁƚŽĐƌĞĂƚĞŽŶĞ͘

dŚĞƌĞĂƌĞƐĞǀĞƌĂůǁĂLJƐƚŽĐƌĞĂƚĞĂƐĐƌŝƉƚĮůĞƵƐŝŶŐhŶŝƚLJ͗

η^ĐƌŝƉƚ
@ 2 1 A F A @ < @ 9 B / 0 9 2 A 2 + )    * + *
!

‹       

# .

η^ĐƌŝƉƚ
@ 2 1 A , 2 9 = @ 9 B / 0 9 2 A 2 + + *
!

‹   -        

# .

η^ĐƌŝƉƚ
@ 2 1 A , 2 9 = . / 0 1 2 : > / : ; G E . + F 2 1 A , + , < , F A @ < @ 9 B / 0 9 2 A 2 + + *
! ( (

‹   -        

&ƌŽŵŶŽǁŽŶ͕ǁŚĞŶ/ƚĞůůLJŽƵƚŽĐƌĞĂƚĞĂηƐĐƌŝƉƚ͕ƉůĞĂƐĞ
ƵƐĞǁŚŝĐŚĞǀĞƌŵĞƚŚŽĚLJŽƵƉƌĞĨĞƌ͘

7LPHIRUDFWLRQ²FUHDWHD&VFULSWÀOH
ƉƌŽũĞĐƚƉƌŽŐƌĞƐƐĞƐ͕ǁĞǁŝůůŚĂǀĞƐĞǀĞƌĂůĨŽůĚĞƌƐƚŽŽƌŐĂŶŝnjĞĂŶĚƐƚŽƌĞĂůůŽĨ
? + < . @ / 2 -
' )

ŽƵƌηĮůĞƐ͘

ƌĞĂƚĞĂŶĞǁhŶŝƚLJƉƌŽũĞĐƚĂŶĚŶĂŵĞŝƚĂƐState Machine
ó ô

õ ô

Code
/ 0 1 2 : > / : ; + @ / @ 2 1 A , 2 9 = 9 @ C : . A 9 2 A 9 E + > C A . @ 9 F A C D
" (

  -   

ö ô

Code Scripts
/ 0 1 2 : > / : ; + @ 2 1 A E + > C A . 9 @ C 9 : . A 9 2 A 9 E + > C A . @ 9 F A C D
" (

ô
.

Scripts C# Script
@ 2 1 A E + > C A . G : . A 9 2 A 9 D
!

ô
/

NewBehaviourScript LearningScript
F F A C / 9 2 A > - . A @ 9 F A 2 + D
!

What just happened?


Scripts͕ƚŚĂƚǁĞǁŝůůďĞƵƐŝŶŐƚŽŽƌŐĂŶŝnjĞ Code
Ž A : . A 9 2 A C + @ A + E 2 1 A ? < = E + > C A . ? G @ 9 F A C

ŽƵƌηĮůĞƐ͘dŚŝƐĨŽůĚĞƌǁŝůůĐŽŶƚĂŝŶĂůůŽĨŽƵƌhŶŝƚLJƐĐƌŝƉƚĮůĞƐ͘>ĂƚĞƌǁĞǁŝůůĐƌĞĂƚĞŽƚŚĞƌη
ĮůĞĨŽůĚĞƌƐ͘

tĞĂůƐŽƵƐĞĚhŶŝƚLJƚŽĐƌĞĂƚĞĂηƐĐƌŝƉƚĮůĞŶĂŵĞĚLearningScript.cs
D

[ 14 ]
Ä  ¾  Æ Á ä 

Introducing the MonoDevelop code editor


@ / 2 - < ? A ? 9 @ A ì 2 A . @ 9 > A C / 2 + . 2 + A C / 2 / 2 ? * ž ? : . / , 2 ? D Œ B A @ 2 1 + < 0 1 @ / 2 - : 9 @ : . A 9 2 A 9 = 9 ? / :
) )

ƐƚĂƌƚĞƌηƐĐƌŝƉƚĨŽƌƵƐ͕ǁĞƐƟůůŚĂǀĞƚŽĞĚŝƚƚŚĞƐĐƌŝƉƚ DŽŶŽĞǀĞůŽƉ
< ? / @ 0 2 1 A : + C A A C / 2 + .

ƚŚĂƚΖƐŝŶĐůƵĚĞĚǁŝƚŚhŶŝƚLJ͘

6\QFLQJ&ÀOHVEHWZHHQ0RQR'HYHORSDQG8QLW\
DŽŶŽĞǀĞůŽƉĂƌĞƐĞƉĂƌĂƚĞĂƉƉůŝĐĂƟŽŶƐ͕hŶŝƚLJǁŝůůŬĞĞƉDŽŶŽĞǀĞůŽƉĂŶĚ
J / @ : A @ / 2 - 9 @ C
)

hŶŝƚLJƐLJŶĐŚƌŽŶŝnjĞĚǁŝƚŚĞĂĐŚŽƚŚĞƌ͘dŚŝƐŵĞĂŶƐƚŚĂƚŝĨLJŽƵĂĚĚ͕ĚĞůĞƚĞ͕ŽƌĐŚĂŶŐĞĂƐĐƌŝƉƚ
ĮůĞŝŶŽŶĞĂƉƉůŝĐĂƟŽŶ͕ƚŚĞŽƚŚĞƌĂƉƉůŝĐĂƟŽŶǁŝůůƐĞĞƚŚĞĐŚĂŶŐĞƐĂƵƚŽŵĂƟĐĂůůLJ͘

7LPHIRUDFWLRQ²RSHQLQJ/HDUQLQJ6FULSWLQ0RQR'HYHORS
hŶŝƚLJǁŝůůƐLJŶĐŚƌŽŶŝnjĞǁŝƚŚDŽŶŽĞǀĞůŽƉƚŚĞĮƌƐƚƟŵĞLJŽƵƚĞůůhŶŝƚLJƚŽŽƉĞŶĂĮůĞĨŽƌĞĚŝƟŶŐ͘
dŚĞƐŝŵƉůĞƐƚǁĂLJƚŽĚŽƚŚŝƐŝƐũƵƐƚĚŽƵďůĞͲĐůŝĐŬŽŶLearningScript Scripts
/ @ 2 1 A E + > C A . D

/ŶhŶŝƚLJΖƐWƌŽũĞĐƚƚĂď͕ĚŽƵďůĞͲĐůŝĐŬŽŶLearningScript
ó ô

What just happened?


DŽŶŽĞǀĞůŽƉƐƚĂƌƚĞĚǁŝƚŚLearningScript
+ , A @ G . A 9 C - 2 + A C / 2 D

[ 15 ]
ŝƐĐŽǀĞƌŝŶŐzŽƵƌ,ŝĚĚĞŶ^ĐƌŝƉƟŶŐ^ŬŝůůƐ

:DWFKLQJIRUDSRVVLEOHJRWFKDZKHQFUHDWLQJVFULSWÀOHV
in Unity
EŽƟĐĞůŝŶĞϰŝŶƚŚĞƉƌĞǀŝŽƵƐƐĐƌĞĞŶƐŚŽƚ͗
public class LearningScript : MonoBehaviour

LearningScriptŝƐƚŚĞƐĂŵĞĂƐƚŚĞĮůĞŶĂŵĞLearningScript.cs
1 A : > 9 ? ? @ 9 F A D 1 / ?
 

ŝƐĂƌĞƋƵŝƌĞŵĞŶƚ͘zŽƵƉƌŽďĂďůLJĚŽŶΖƚŬŶŽǁǁŚĂƚĂĐůĂƐƐŝƐLJĞƚ͕ƚŚĂƚΖƐŽŬ͘:ƵƐƚƌĞŵĞŵďĞƌƚŚĂƚ
ƚŚĞĮůĞŶĂŵĞĂŶĚƚŚĞĐůĂƐƐŶĂŵĞŵƵƐƚďĞƚŚĞƐĂŵĞ͘

tŚĞŶLJŽƵĐƌĞĂƚĞĂηƐĐƌŝƉƚĮůĞŝŶhŶŝƚLJ͕ƚŚĞĮůĞŶĂŵĞ͕ŝŶƚŚĞ
, 2 9 = G / ? / @ ΠC / 2 F + C A G

  -   

. A 9 C - 2 + = A . A @ 9 F A C D 8 > A 9 ? A . A @ 9 F A / 2 . / 0 1 2 2 1 A @ 9 @ C 2 1 A . A D E - + < . A @ 9 F A 2 1 A ? : . / , 2 > 9 2 A . G


!

ƚŚĞĮůĞŶĂŵĞĂŶĚƚŚĞĐůĂƐƐŶĂŵĞǁŽŶΖƚŵĂƚĐŚ͘dŚĞĮůĞŶĂŵĞǁŽƵůĚĐŚĂŶŐĞ͕ďƵƚůŝŶĞϰǁŽƵůĚ
= A 2 1 / ? I

public class NewBehaviourScript : MonoBehaviour

dŚŝƐĐĂŶĞĂƐŝůLJďĞĮdžĞĚŝŶDŽŶŽĞǀĞůŽƉďLJĐŚĂŶŐŝŶŐNewBehaviourScriptŽŶůŝŶĞϰƚŽƚŚĞ
ƐĂŵĞŶĂŵĞĂƐƚŚĞĮůĞŶĂŵĞ͕ďƵƚŝƚΖƐŵƵĐŚƐŝŵƉůĞƌƚŽĚŽƚŚĞƌĞŶĂŵŝŶŐŝŶhŶŝƚLJŝŵŵĞĚŝĂƚĞůLJ͘

)L[LQJV\QFLILWLVQ
WZRUNLQJSURSHUO\
^ŽǁŚĂƚŚĂƉƉĞŶƐǁŚĞŶDƵƌƉŚLJΖƐ>ĂǁƐƚƌŝŬĞƐĂŶĚƐLJŶĐŝŶŐũƵƐƚĚŽĞƐŶΖƚƐĞĞŵƚŽďĞǁŽƌŬŝŶŐ
ĐŽƌƌĞĐƚůLJ͍^ŚŽƵůĚƚŚĞƚǁŽĂƉƉƐƐŽŵĞŚŽǁŐĞƚŽƵƚͲŽĨͲƐLJŶĐĂƐLJŽƵƐǁŝƚĐŚďĂĐŬͲĂŶĚͲĨŽƌƚŚ
ďĞƚǁĞĞŶƚŚĞƚŚĞŵ͕ĨŽƌǁŚĂƚĞǀĞƌƌĞĂƐŽŶ͕ĚŽƚŚŝƐ͗

ZŝŐŚƚͲĐůŝĐŬŽŶhŶŝƚLJΖƐ ǁŝŶĚŽǁĂŶĚƐĞůĞĐƚ^LJŶĐDŽŶŽĞǀĞůŽƉWƌŽũĞĐƚ
, D

‹   -   

DŽŶŽĞǀĞůŽƉǁŝůůƌĞͲƐLJŶĐǁŝƚŚhŶŝƚLJ͘

3RSTXL]²GHDOLQJZLWKVFULSWV
Yϭ͘ƐĂďĞŐŝŶŶĞƌ͕ǁŚĂƚΖƐƚŚĞďŝŐŐĞƐƚŽďƐƚĂĐůĞƚŽďĞŽǀĞƌĐŽŵĞƚŽďĞĂďůĞƚŽǁƌŝƚĞηĐŽĚĞ͍

YϮ͘dŚĞ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞƐƵƉƉůŝĞƐĞdžĂŵƉůĞĐŽĚĞĂŶĚĂƐŚŽƌƚĚĞƐĐƌŝƉƟŽŶŽĨǁŚĂƚƚŚĞĐŽĚĞ
ĚŽĞƐ͘tŚĂƚĚŽLJŽƵƵƐĞƚŽŐĞƚĨƵůůĚĞƚĂŝůĞĚĚĞƐĐƌŝƉƟŽŶƐŽĨhŶŝƚLJΖƐŽŵƉŽŶĞŶƚƐĂŶĚĨĞĂƚƵƌĞƐ͍

Yϯ͘dŚĞ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞŝƐĂůĂƌŐĞĚŽĐƵŵĞŶƚ͘,ŽǁŵƵĐŚŝƚƐŚŽƵůĚLJŽƵŬŶŽǁďĞĨŽƌĞ
ĂƩĞŵƉƟŶŐƚŽǁƌŝƚĞĂŶLJƐĐƌŝƉƚƐ͍

Yϰ͘tŚĞŶĐƌĞĂƟŶŐĂƐĐƌŝƉƚĮůĞŝŶhŶŝƚLJ͕ǁŚĞŶŝƐƚŚĞďĞƐƚƟŵĞƚŽŶĂŵĞƚŚĞƐĐƌŝƉƚĮůĞ͍

[ 16 ]
Ä  ¾  Æ Á ä 

Summary
dŚŝƐĐŚĂƉƚĞƌƚƌŝĞĚƚŽƉƵƚLJŽƵĂƚĞĂƐĞĂďŽƵƚǁƌŝƟŶŐƐĐƌŝƉƚƐĨŽƌhŶŝƚLJ͘zŽƵĚŽŚĂǀĞƚŚĞĂďŝůŝƚLJ
ƚŽǁƌŝƚĞĚŽǁŶŝŶƐƚƌƵĐƟŽŶƐǁŚŝĐŚŝƐĂůůĂƐĐƌŝƉƚŝƐ͕ĂƐĞƋƵĞŶĐĞŽĨŝŶƐƚƌƵĐƟŽŶƐ͘tĞƐĂǁŚŽǁ
ƐŝŵƉůĞŝƚŝƐƚŽĐƌĞĂƚĞĂŶĞǁƐĐƌŝƉƚĮůĞ͘zŽƵƉƌŽďĂďůLJĐƌĞĂƚĞĮůĞƐŽŶLJŽƵƌĐŽŵƉƵƚĞƌĂůůƚŚĞ
ƟŵĞ͘tĞƐĂǁŚŽǁƚŽĞĂƐŝůLJďƌŝŶŐƵƉhŶŝƚLJΖƐĚŽĐƵŵĞŶƚĂƟŽŶ͘&ŝŶĂůůLJǁĞŚĂĚĂůŽŽŬĂƚƚŚĞ
DŽŶŽĞǀĞůŽƉĞĚŝƚŽƌ͘EŽŶĞŽĨƚŚŝƐǁĂƐĐŽŵƉůŝĐĂƚĞĚ͘/ŶĨĂĐƚ͕LJŽƵƉƌŽďĂďůLJƵƐĞĂƉƉƐĂůůƚŚĞ
ƟŵĞƚŚĂƚĚŽƐŝŵŝůĂƌƚŚŝŶŐƐ͘ŽƩŽŵůŝŶĞ͕ƚŚĞƌĞΖƐŶŽƚŚŝŶŐƚŽĨĞĂƌŚĞƌĞ͘

ůƌŝŐŚƚ͕ůĞƚΖƐƐƚĂƌƚŽīŚĂƉƚĞƌϮ͕/ŶƚƌŽĚƵĐŝŶŐƚŚĞƵŝůĚŝŶŐůŽĐŬƐĨŽƌhŶŝƚLJ^ĐƌŝƉƚƐďLJŚĂǀŝŶŐĂŶ
ŝŶƚƌŽĚƵĐƚŽƌLJůŽŽŬĂƚƚŚĞďƵŝůĚŝŶŐďůŽĐŬƐŽĨƉƌŽŐƌĂŵŵŝŶŐǁĞΖůůďĞƵƐŝŶŐ͗ǀĂƌŝĂďůĞƐ͕ŵĞƚŚŽĚƐ͕
Žƚ^LJŶƚĂdž͕ĂŶĚƚŚĞĐůĂƐƐ͘ŽŶΖƚůĞƚƚŚĞƐĞƚĞƌŵƐƐĐĂƌĞLJŽƵ͘dŚĞĐŽŶĐĞƉƚƐďĞŚŝŶĚĞĂĐŚŽŶĞŽĨ
ƚŚĞƐĞĂƌĞƐŝŵŝůĂƌƚŽƚŚŝŶŐƐLJŽƵĚŽŽŌĞŶ͕ƉĞƌŚĂƉƐĞǀĞƌLJĚĂLJ͘

[ 17 ]
Introducing the Building Blocks
2
IRU8QLW\6FULSWV

ƉƌŽŐƌĂŵŵŝŶŐůĂŶŐƵĂŐĞƐƵĐŚĂƐηĐĂŶĂƉƉĞĂƌƚŽďĞǀĞƌLJĐŽŵƉůŝĐĂƚĞĚĂƚ
ĨŝƌƐƚďƵƚŝŶƌĞĂůŝƚLJ͕ƚŚĞƌĞĂƌĞƚǁŽƉĂƌƚƐƚŚĂƚĨŽƌŵŝƚƐĨŽƵŶĚĂƚŝŽŶ͘dŚĞƐĞƉĂƌƚƐ
ĂƌĞǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͘dŚĞƌĞĨŽƌĞ͕ƵŶĚĞƌƐƚĂŶĚŝŶŐƚŚĞƐĞĐƌŝƚŝĐĂůƉĂƌƚƐŝƐĂ
ƉƌĞƌĞƋƵŝƐŝƚĞĨŽƌůĞĂƌŶŝŶŐĂŶLJŽĨƚŚĞŽƚŚĞƌĨĞĂƚƵƌĞƐŽĨη͘ĞŝŶŐĂƐĐƌŝƚŝĐĂůĂƐ
ƚŚĞLJĂƌĞ͕ƚŚĞLJĂƌĞǀĞƌLJƐŝŵƉůĞĐŽŶĐĞƉƚƐƚŽƵŶĚĞƌƐƚĂŶĚ͘hƐŝŶŐƚŚĞƐĞǀĂƌŝĂďůĞĂŶĚ
ŵĞƚŚŽĚĨŽƵŶĚĂƚŝŽŶƉŝĞĐĞƐ͕ǁĞΖůůďĞŝŶƚƌŽĚƵĐĞĚƚŽƚŚĞηďƵŝůĚŝŶŐďůŽĐŬƐƵƐĞĚƚŽ
ĐƌĞĂƚĞhŶŝƚLJƐĐƌŝƉƚƐ͘

&ŽƌƚŚŽƐĞƉĞŽƉůĞǁŚŽŐĞƚƐǁĞĂƚLJƉĂůŵƐũƵƐƚƚŚŝŶŬŝŶŐŽĨƚŚĞǁŽƌĚƐĐƌŝƉƚ͕ǁŝƉĞLJŽƵƌŚĂŶĚƐĂŶĚ
ƌĞůĂdž͘/ŶƚŚŝƐĐŚĂƉƚĞƌ͕/ΖŵŐŽŝŶŐƚŽƵƐĞƚĞƌŵƐƚŚĂƚĂƌĞĂůƌĞĂĚLJĨĂŵŝůŝĂƌƚŽLJŽƵƚŽŝŶƚƌŽĚƵĐĞƚŚĞ
ďƵŝůĚŝŶŐďůŽĐŬƐŽĨƉƌŽŐƌĂŵŵŝŶŐ͘dŚĞĨŽůůŽǁŝŶŐĂƌĞƚŚĞĐŽŶĐĞƉƚƐŝŶƚƌŽĚƵĐĞĚŝŶƚŚŝƐĐŚĂƉƚĞƌ͗
? / @ 0 B 9 . / 9 = > A ? / @ 9 ? : . / , 2
)

‹
? / @ 0 F A 2 1 + C ? / @ 9 ? : . / , 2
)

‹ dŚĞĐůĂƐƐǁŚŝĐŚŝƐĂĐŽŶƚĂŝŶĞƌĨŽƌǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ
< . @ / @ 0 9 ? : . / , 2 / @ 2 + 9 * + F , + @ A @ 2


‹ ŽŵƉŽŶĞŶƚƐĐŽŵŵƵŶŝĐĂƟŶŐƵƐŝŶŐƚŚĞŽƚ^LJŶƚĂdž

>ĞƚΖƐŚĂǀĞĂůŽŽŬĂƚƚŚĞƐĞƉƌŝŵĂƌLJĐŽŶĐĞƉƚƐ͘
0
Å Æ ä Â 1 2 å 3 Å 4 Æ  Á 5 2 3 À 1 3 Å 4 5 À Â å 6 Ç Ã Â ä 7 Å 3 Æ 8 9 å ä 3  Æ Ç

8VLQJWKHWHUPPHWKRGLQVWHDGRIIXQFWLRQ
zŽƵĂƌĞĐŽŶƐƚĂŶƚůLJŐŽŝŶŐƚŽƐĞĞƚŚĞǁŽƌĚƐĨƵŶĐƟŽŶ ŵĞƚŚŽĚƵƐĞĚĞǀĞƌLJǁŚĞƌĞĂƐ
9 @ C

- + < > A 9 . @ @ / 2 - D
)

dŚĞǁŽƌĚƐĨƵŶĐƟŽŶĂŶĚŵĞƚŚŽĚƚƌƵůLJŵĞĂŶƚŚĞƐĂŵĞ
 ý ü þ ý ü : ü ý  
    ÿ ú    ý ü þ

KďũĞĐƚͲKƌŝĞŶƚĞĚWƌŽŐƌĂŵŵŝŶŐ;KKW
N

J / @ : A - + < 9 . A ? 2 < C - / @ 0 * ž G 9 @ C * ž / ? 9 @ > 9 @ 0 < 9 0 A G

/ǁŝůůƵƐĞƚŚĞǁŽƌĚΗŵĞƚŚŽĚΗƚŚƌŽƵŐŚŽƵƚƚŚŝƐŬ͕ũƵƐƚƚŽďĞĐŽŶƐŝƐƚĞŶƚǁŝƚŚηŐƵŝĚĞůŝŶĞƐ͘
2 F 9 ; A ? ? A @ ? A 2 + > A 9 . @ 2 1 A : + . . A : 2 2 A . F / @ + > + 0 - E + . * ž D > ? + G @ / 2 - J : . / , 2 9 @ C + + 9 . A # # 8
! ' )

^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞƉƌŽďĂďůLJƐŚŽƵůĚŚĂǀĞƵƐĞĚƚŚĞǁŽƌĚ
> 9 @ 0 < 9 0 A ? D 1 A 9 < 2 1 + . ? + E 2 1 A


ŵĞƚŚŽĚŝŶƐƚĞĂĚŽĨĨƵŶĐƟŽŶŝŶĂůůĚŽĐƵŵĞŶƚĂƟŽŶ͘

&ƌŽŵŶŽǁŽŶ/ΖŵŐŽŝŶŐƚŽƵƐĞƚŚĞǁŽƌĚƐŵĞƚŚŽĚŽƌŵĞƚŚŽĚƐŝŶƚŚŝƐŬ͘
tŚĞŶ/ƌĞĨĞƌƚŽƚŚĞĨƵŶĐƟŽŶƐƐŚŽǁŶŝŶƚŚĞ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ͕/ΖŵŐŽŝŶŐƚŽ
ƵƐĞƚŚĞǁŽƌĚŵĞƚŚŽĚŝŶƐƚĞĂĚ͕ũƵƐƚƚŽďĞĐŽŶƐŝƐƚĞŶƚƚŚƌŽƵŐŚŽƵƚƚŚŝƐŬ͘

Understanding what a variable does in a script


tŚĂƚŝƐĂǀĂƌŝĂďůĞ͍dĞĐŚŶŝĐĂůůLJ͕ŝƚΖƐĂƟŶLJƐĞĐƟŽŶŽĨLJŽƵƌĐŽŵƉƵƚĞƌΖƐŵĞŵŽƌLJƚŚĂƚǁŝůůŚŽůĚ
ĂŶLJŝŶĨŽƌŵĂƟŽŶLJŽƵƉƵƚƚŚĞƌĞ͘tŚŝůĞĂŐĂŵĞƌƵŶƐ͕ŝƚŬĞĞƉƐƚƌĂĐŬŽĨǁŚĞƌĞƚŚĞŝŶĨŽƌŵĂƟŽŶ
ŝƐƐƚŽƌĞĚ͕ƚŚĞǀĂůƵĞŬĞƉƚƚŚĞƌĞ͕ĂŶĚƚŚĞƚLJƉĞŽĨƚŚĞǀĂůƵĞ͘,ŽǁĞǀĞƌ͕ĨŽƌƚŚŝƐĐŚĂƉƚĞƌ͕ĂůůLJŽƵ
ŶĞĞĚƚŽŬŶŽǁŝƐŚŽǁĂǀĂƌŝĂďůĞǁŽƌŬƐŝŶĂƐĐƌŝƉƚ͘/ƚΖƐǀĞƌLJƐŝŵƉůĞ͘

[ 20 ]
Ä  ¾  Æ Á ä ;

tŚĂƚΖƐƵƐƵĂůůLJŝŶĂŵĂŝůďŽdž͕ďĞƐŝĚĞƐĂŝƌ͍tĞůů͕ƵƐƵĂůůLJƚŚĞƌĞΖƐŶŽƚŚŝŶŐďƵƚŽĐĐĂƐŝŽŶĂůůLJƚŚĞƌĞ
ŝƐƐŽŵĞƚŚŝŶŐŝŶŝƚ͘^ŽŵĞƟŵĞƐƚŚĞƌĞΖƐŵŽŶĞLJ;ĂƉĂLJĐŚĞĐŬͿ͕ďŝůůƐ͕ĂƉŝĐƚƵƌĞĨƌŽŵĂƵŶƚDĂďĞů͕
ĂŶĚƐŽŽŶ͘dŚĞƉŽŝŶƚŝƐǁŚĂƚΖƐŝŶĂŵĂŝůďŽdžĐĂŶǀĂƌLJ͘dŚĞƌĞĨŽƌĞ͕ůĞƚΖƐĐĂůůĞĂĐŚ
9 ? , / C A . G

F 9 / > = + ì 9 B 9 . / 9 = > A / @ ? 2 A 9 C D

Naming a variable
ĐŽƵŶƚƌLJŵĂŝůďŽdžĞƐ͕ŝĨ/ĂƐŬĞĚLJŽƵƚŽƐĞĞǁŚĂƚŝƐŝŶƚŚĞŵĂŝůďŽdž͕ƚŚĞ
? / @ 0 2 1 A , / : 2 < . A + E 2 1 A
)

ĮƌƐƚƚŚŝŶŐLJŽƵΖĚĂƐŬŝƐǁŚŝĐŚŽŶĞ͍/Ĩ/ƐĂŝĚŝŶƚŚĞ^ŵŝƚŚŵĂŝůďŽdž͕ŽƌƚŚĞďƌŽǁŶŵĂŝůďŽdž͕Žƌ
ƚŚĞƌŽƵŶĚŵĂŝůďŽdž͕LJŽƵΖĚŬŶŽǁĞdžĂĐƚůLJǁŚŝĐŚŵĂŝůďŽdžƚŽŽƉĞŶƚŽƌĞƚƌŝĞǀĞǁŚĂƚŝƐŝŶƐŝĚĞ͘
^ŝŵŝůĂƌůLJ͕ŝŶƐĐƌŝƉƚƐ͕LJŽƵŚĂǀĞƚŽŶĂŵĞLJŽƵƌǀĂƌŝĂďůĞƐǁŝƚŚĂƵŶŝƋƵĞŶĂŵĞ͘dŚĞŶ/ĐĂŶĂƐŬ
LJŽƵǁŚĂƚΖƐŝŶƚŚĞǀĂƌŝĂďůĞŶĂŵĞĚmyNumber͕ŽƌǁŚĂƚĞǀĞƌĐŽŽůŶĂŵĞLJŽƵŵŝŐŚƚƵƐĞ͘

$YDULDEOHQDPHLVMXVWDVXEVWLWXWHIRUDYDOXH
ƐLJŽƵǁƌŝƚĞĂƐĐƌŝƉƚĂŶĚŵĂŬĞĂǀĂƌŝĂďůĞ͕LJŽƵĂƌĞƐŝŵƉůLJĐƌĞĂƟŶŐĂƉůĂĐĞŚŽůĚĞƌŽƌĂ
ƐƵďƐƟƚƵƚĞĨŽƌƚŚĞĂĐƚƵĂůŝŶĨŽƌŵĂƟŽŶLJŽƵǁĂŶƚƚŽƵƐĞ͘>ŽŽŬĂƚƚŚĞĨŽůůŽǁŝŶŐƐŝŵƉůĞŵĂƚŚ
ĞƋƵĂƟŽŶ͗Ϯнϵсϭϭ

^ŝŵƉůĞĞŶŽƵŐŚ͘EŽǁƚƌLJƚŚĞĨŽůůŽǁŝŶŐĞƋƵĂƟŽŶ͗ϭϭнmyNumberс͍͍͍

dŚĞƌĞŝƐŶŽĂŶƐǁĞƌƚŽƚŚŝƐLJĞƚ͘zŽƵĐĂŶΖƚĂĚĚĂŶƵŵďĞƌĂŶĚĂǁŽƌĚ͘'ŽŝŶŐďĂĐŬƚŽƚŚĞ
ǁƌŝƚĞƚŚĞŶƵŵďĞƌϵŽŶĂƉŝĞĐĞŽĨƉĂƉĞƌ͘WƵƚŝƚŝŶƚŚĞŵĂŝůďŽdžŶĂŵĞĚ
F 9 / > = + ì 9 @ 9 > + 0 - G

myNumber͘EŽǁLJŽƵĐĂŶƐŽůǀĞƚŚĞĞƋƵĂƟŽŶ͘tŚĂƚΖƐƚŚĞǀĂůƵĞŝŶmyNumber͍dŚĞǀĂůƵĞ
ŝƐϵ͘^ŽŶŽǁƚŚĞĞƋƵĂƟŽŶůŽŽŬƐŶŽƌŵĂů͗ϭϭнϵсϮϬ

myNumber
1 A B 9 . / 9 = > A / ? @ + 2 1 / @ 0 F + . A 2 1 9 @ 9 @ 9 F A C , > 9 : A 1 + > C A . 2 + ? 2 + . A ? + F A C 9 2 9


;ŝŶĨŽƌŵĂƟŽŶͿ͘^ŽĂŶLJǁŚĞƌĞLJŽƵǁŽƵůĚůŝŬĞƚŚĞŶƵŵďĞƌϵƚŽĂƉƉĞĂƌŝŶLJŽƵƌƐĐƌŝƉƚ͕ũƵƐƚ
ǁƌŝƚĞmyNumber͕ĂŶĚƚŚĞŶƵŵďĞƌϵǁŝůůďĞƐƵďƐƟƚƵƚĞĚ͘

ůƚŚŽƵŐŚƚŚŝƐĞdžĂŵƉůĞŵŝŐŚƚƐĞĞŵƐŝůůLJĂƚĮƌƐƚ͕ǀĂƌŝĂďůĞƐĐĂŶƐƚŽƌĞĂůůŬŝŶĚƐŽĨĚĂƚĂƚŚĂƚŝƐ
ŵƵĐŚŵŽƌĞĐŽŵƉůĞdžƚŚĂŶĂƐŝŵƉůĞŶƵŵďĞƌ͘dŚŝƐŝƐũƵƐƚĂƐŝŵƉůĞĞdžĂŵƉůĞƚŽƐŚŽǁLJŽƵŚŽǁ
ĂǀĂƌŝĂďůĞǁŽƌŬƐ͘

[ 21 ]
0
Å Æ ä Â 1 2 å 3 Å 4 Æ  Á 5 2 3 À 1 3 Å 4 5 À Â å 6 Ç Ã Â ä 7 Å 3 Æ 8 9 å ä 3  Æ Ç

7LPHIRUDFWLRQ²FUHDWLQJDYDULDEOHDQGVHHLQJKRZLWZRUNV
>ĞƚΖƐƐĞĞŚŽǁƚŚŝƐĂĐƚƵĂůůLJǁŽƌŬƐŝŶŽƵƌƐĐƌŝƉƚ͘ŽŶΖƚďĞĐŽŶĐĞƌŶĞĚĂďŽƵƚƚŚĞĚĞƚĂŝůƐ
ŽĨŚŽǁƚŽǁƌŝƚĞƚŚŝƐ͕ũƵƐƚŵĂŬĞƐƵƌĞLJŽƵƌƐĐƌŝƉƚŝƐƚŚĞƐĂŵĞĂƐƚŚĞƐĐƌŝƉƚƐŚŽǁŶŝŶƚŚĞ
@ A ì 2 ? : . A A @ ? 1 + 2 D

ó ô

LearningScript
@ 2 1 A @ / 2 - , , 9 @ A > G C + < = > A : > / : ; + @ D
! ) (

  -   

/ŶDŽŶŽĞǀĞůŽƉ͕ǁƌŝƚĞƚŚĞůŝŶĞƐϲ͕ϭϭ͕ĂŶĚϭϯĨƌŽŵƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚ͘
õ ô

^ĂǀĞƚŚĞĮůĞ͘
ö ô

dŽŵĂŬĞƚŚŝƐƐĐƌŝƉƚǁŽƌŬ͕ŝƚŚĂƐƚŽďĞĂƩĂĐŚĞĚƚŽĂ'ĂŵĞKďũĞĐƚ͘ƵƌƌĞŶƚůLJ͕ŝŶŽƵƌ^ƚĂƚĞ
ƉƌŽũĞĐƚǁĞŽŶůLJŚĂǀĞŽŶĞ'ĂŵĞKďũĞĐƚ͕ƚŚĞDĂŝŶĂŵĞƌĂ͘dŚŝƐǁŝůůĚŽŶŝĐĞůLJ


!   < " 

ĚŽĞƐŶΖƚĂīĞĐƚƚŚĞDĂŝŶĂŵĞƌĂŝŶĂŶLJǁĂLJ͘dŚĞƐĐƌŝƉƚƐŝŵƉůLJƌƵŶƐďLJ
? / @ : A 2 1 / ? ? : . / , 2

ǀŝƌƚƵĞŽĨŝƚďĞŝŶŐĂƩĂĐŚĞĚƚŽĂ'ĂŵĞKďũĞĐƚ͘

DĂŝŶĂŵĞƌĂ
ó ô

LearningScript
¤ . 9 0 + @ 2 + 2 1 A D

DĂŝŶĂŵĞƌĂ
õ ô

J A > A : 2 ? + 2 1 9 2 / 2 9 , , A 9 . ? / @ 2 1 A     , 9 @ A > D

    

sĞƌŝĨLJǁŚĞƚŚĞƌLearningScriptŝƐĂƩĂĐŚĞĚ͘
ö ô

ŽŶƐŽůĞƉĂŶĞůƚŽǀŝĞǁƚŚĞŽƵƚƉƵƚŽĨƚŚĞƐĐƌŝƉƚ͘
ô
.

# , A @ 2 1 A @ / 2 -
)

WůĂLJ
ô
/

* > / : ; + @ D

[ 22 ]
Ä  ¾  Æ Á ä ;

dŚĞƉƌĞĐĞĚŝŶŐƐƚĞƉƐĂƌĞƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͗

What just happened?


/ŶƚŚĞĨŽůůŽǁŝŶŐŽŶƐŽůĞƉĂŶĞůŝƐƚŚĞƌĞƐƵůƚŽĨŽƵƌĞƋƵĂƟŽŶƐ͘ƐLJŽƵĐĂŶƐĞĞ͕ƚŚĞĞƋƵĂƟŽŶ
ŽŶůŝŶĞϭϯǁŽƌŬĞĚďLJƐƵďƐƟƚƵƟŶŐƚŚĞŶƵŵďĞƌϵĨŽƌƚŚĞmyNumber
B 9 . / 9 = > A I

7LPHIRUDFWLRQ²FKDQJLQJWKHQXPEHUWRDGLIIHUHQWQXPEHU
myNumberŝƐĂǀĂƌŝĂďůĞ͕ƚŚĞǀĂůƵĞŝƚƐƚŽƌĞƐĐĂŶǀĂƌLJ͘/ĨǁĞĐŚĂŶŐĞǁŚĂƚŝƐƐƚŽƌĞĚŝŶŝƚ͕
J / @ : A

ƚŚĞĂŶƐǁĞƌƚŽƚŚĞĞƋƵĂƟŽŶǁŝůůĐŚĂŶŐĞƚŽŽ͘&ŽůůŽǁƚŚĞĞŶƐƵŝŶŐƐƚĞƉƐ͗

ϵ ϭϵ
ó ô

J 2 + , 2 1 A 0 9 F A 9 @ C : 1 9 @ 0 A 2 + D

EŽƟĐĞƚŚĂƚǁŚĞŶLJŽƵƌĞƐƚĂƌƚƚŚĞŐĂŵĞ͕ƚŚĞĂŶƐǁĞƌǁŝůůďĞϯϬ
õ ô

[ 23 ]
0
Å Æ ä Â 1 2 å 3 Å 4 Æ  Á 5 2 3 À 1 3 Å 4 5 À Â å 6 Ç Ã Â ä 7 Å 3 Æ 8 9 å ä 3  Æ Ç

What just happened?


zŽƵůĞĂƌŶĞĚƚŚĂƚĂǀĂƌŝĂďůĞǁŽƌŬƐďLJƐŝŵƉůĞƉƌŽĐĞƐƐŽĨƐƵďƐƟƚƵƟŽŶ͘dŚĞƌĞΖƐŶŽƚŚŝŶŐŵŽƌĞƚŽ
/ 2 2 1 9 @ 2 1 9 2 D

tĞĚŝĚŶΖƚŐĞƚŝŶƚŽƚŚĞĚĞƚĂŝůƐŽĨƚŚĞǁŽƌĚŝŶŐƵƐĞĚƚŽĐƌĞĂƚĞmyNumber
G + . 2 1 A 2 - , A ? + E

ǀĂƌŝĂďůĞƐLJŽƵĐĂŶĐƌĞĂƚĞ͕ďƵƚƚŚĂƚǁĂƐŶΖƚƚŚĞŝŶƚĞŶƚ͘dŚŝƐǁĂƐũƵƐƚƚŽƐŚŽǁLJŽƵŚŽǁĂǀĂƌŝĂďůĞ
ǁŽƌŬƐ͘/ƚũƵƐƚŚŽůĚƐĚĂƚĂƐŽLJŽƵĐĂŶƵƐĞƚŚĂƚĚĂƚĂĞůƐĞǁŚĞƌĞŝŶLJŽƵƌƐĐƌŝƉƚ͘tĞΖůůŐĞƚŝŶƚŽƚŚĞ
ĮŶĞƌĚĞƚĂŝůƐŽĨǀĂƌŝĂďůĞƐŝŶ sĂƌŝĂďůĞƐŝŶĞƚĂŝů
Þ ß à G D

— ’ á – é

+DYHDJRKHUR²FKDQJLQJWKHYDOXHRIP\1XPEHU
myNumber
@ 2 1 A     , 9 @ A > G 2 . - : 1 9 @ 0 / @ 0 2 1 A B 9 > < A + E 2 + ? + F A + 2 1 A . B 9 > < A G A B A @ 9
!

    

ŶĞŐĂƟǀĞǀĂůƵĞ͘EŽƟĐĞƚŚĞĐŚĂŶŐĞŝŶĂŶƐǁĞƌŝŶƚŚĞŽŶƐŽůĞ
D

Using a method in a script


DĞƚŚŽĚƐĂƌĞǁŚĞƌĞƚŚĞĂĐƟŽŶŝƐĂŶĚǁŚĞƌĞƚŚĞƚĂƐŬƐĂƌĞƉĞƌĨŽƌŵĞĚ͘'ƌĞĂƚ͕ƚŚĂƚΖƐƌĞĂůůLJŶŝĐĞ
ƚŽŬŶŽǁďƵƚǁŚĂƚŝƐĂŵĞƚŚŽĚ͍

What is a method?
tŚĞŶǁĞǁƌŝƚĞĂƐĐƌŝƉƚ͕ǁĞĂƌĞŵĂŬŝŶŐůŝŶĞƐŽĨĐŽĚĞƚŚĂƚƚŚĞĐŽŵƉƵƚĞƌŝƐŐŽŝŶŐƚŽĞdžĞĐƵƚĞ͕
ŽŶĞůŝŶĞĂƚĂƟŵĞ͘ƐǁĞǁƌŝƚĞŽƵƌĐŽĚĞ͕ƚŚĞƌĞǁŝůůďĞƚŚŝŶŐƐǁĞǁĂŶƚŽƵƌŐĂŵĞƚŽĞdžĞĐƵƚĞ
ŵŽƌĞƚŚĂŶŽŶĐĞ͘&ŽƌĞdžĂŵƉůĞ͕ǁĞĐĂŶǁƌŝƚĞĂĐŽĚĞƚŚĂƚĂĚĚƐƚǁŽŶƵŵďĞƌƐ͘^ƵƉƉŽƐĞŽƵƌ
ŐĂŵĞŶĞĞĚƐƚŽĂĚĚƚŚĞƚǁŽŶƵŵďĞƌƐƚŽŐĞƚŚĞƌĂŚƵŶĚƌĞĚĚŝīĞƌĞŶƚƟŵĞƐĚƵƌŝŶŐƚŚĞŐĂŵĞ͘
ΗtŽǁ͕/ŚĂǀĞƚŽǁƌŝƚĞƚŚĞƐĂŵĞĐŽĚĞĂŚƵŶĚƌĞĚƟŵĞƐƚŚĂƚĂĚĚƐƚǁŽŶƵŵďĞƌƐ
J + - + < ? 9 - G

ƚŽŐĞƚŚĞƌ͘dŚĞƌĞŚĂƐƚŽďĞĂďĞƩĞƌǁĂLJ͘Η

>ĞƚĂŵĞƚŚŽĚƚĂŬĞĂǁĂLJLJŽƵƌƚLJƉŝŶŐƉĂŝŶ͘zŽƵũƵƐƚŚĂǀĞƚŽǁƌŝƚĞƚŚĞĐŽĚĞƚŽĂĚĚƚǁŽ
AddTwoNumbers()
@ < F = A . ? + @ : A G 9 @ C 2 1 A @ 0 / B A 2 1 / ? : 1 < @ ; + E : + C A 9 @ 9 F A G ? < : 1 9 ? D

EŽǁ͕ĞǀĞƌLJƟŵĞŽƵƌŐĂŵĞŶĞĞĚƐƚŽĂĚĚƚǁŽŶƵŵďĞƌƐ͕ĚŽŶΖƚǁƌŝƚĞƚŚĞĐŽĚĞŽǀĞƌĂŶĚ
AddTwoNumbers()
+ B A . G  < ? 2 : 9 > > 2 1 A F A 2 1 + C D

7LPHIRUDFWLRQ²OHDUQLQJKRZDPHWKRGZRUNV
tĞΖƌĞŐŽŝŶŐƚŽ LearningScriptĂŐĂŝŶ͘/ŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͕ƚŚĞƌĞĂƌĞĂĨĞǁ
A C / 2

ůŝŶĞƐŽĨĐŽĚĞƚŚĂƚůŽŽŬƐƚƌĂŶŐĞ͘tĞĂƌĞŶŽƚŐŽŝŶŐƚŽŐĞƚŝŶƚŽƚŚĞĚĞƚĂŝůƐŽĨǁŚĂƚƚŚĞLJŵĞĂŶ
ŝŶƚŚŝƐĐŚĂƉƚĞƌ͘tĞǁŝůůĚŝƐĐƵƐƐƚŚĂƚŝŶ 'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ
Þ ß à G D / 0 1 2
"

— ’ á – ê

ŶŽǁ͕/ĂŵũƵƐƚƐŚŽǁŝŶŐLJŽƵĂŵĞƚŚŽĚΖƐďĂƐŝĐƐƚƌƵĐƚƵƌĞĂŶĚŚŽǁŝƚǁŽƌŬƐ͗

LearningScriptĨŽƌĞĚŝƟŶŐ͘
ó ô

@ + @ + ¤ A B A > + , G ? A > A : 2
! #

ĚŝƚƚŚĞĮůĞƐŽƚŚĂƚŝƚůŽŽŬƐĞdžĂĐƚůLJůŝŬĞƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͘
õ ô

[ 24 ]
Ä  ¾  Æ Á ä ;

^ĂǀĞƚŚĞĮůĞ͘
ö ô

:KDW
VLQWKLVVFULSWÀOH"
/ŶƚŚĞƉƌĞǀŝŽƵƐƐĐƌĞĞŶƐŚŽƚ͕ůŝŶĞƐϲĂŶĚϳǁŝůůůŽŽŬĨĂŵŝůŝĂƌƚŽLJŽƵ͖ƚŚĞLJĂƌĞǀĂƌŝĂďůĞƐũƵƐƚĂƐ
ŝŶƚŚĞƉƌĞǀŝŽƵƐƐĞĐƟŽŶ͘dŚĞƌĞĂƌĞƚǁŽŽĨƚŚĞŵƚŚŝƐƟŵĞ͘dŚĞƐĞǀĂƌŝĂďůĞƐƐƚŽƌĞ
- + < > A 9 . @ A C

2 1 A @ < F = A . ? 2 1 9 2 9 . A 0 + / @ 0 2 + = A 9 C C A C D

>ŝŶĞϭϲŵĂLJůŽŽŬǀĞƌLJƐƚƌĂŶŐĞƚŽLJŽƵ͘ŽŶΖƚĐŽŶĐĞƌŶLJŽƵƌƐĞůĨƌŝŐŚƚŶŽǁǁŝƚŚŚŽǁƚŚŝƐǁŽƌŬƐ͘
:ƵƐƚŬŶŽǁƚŚĂƚŝƚΖƐĂůŝŶĞŽĨĐŽĚĞƚŚĂƚůĞƚƐƚŚĞƐĐƌŝƉƚŬŶŽǁǁŚĞŶƚŚĞZĞƚƵƌŶͬ
; A - / ?
=

 ’ á –

ZĞƚƵƌŶͬ ŬĞLJǁŚĞŶLJŽƵǁĂŶƚƚŽĂĚĚƚŚĞƚǁŽŶƵŵďĞƌƐƚŽŐĞƚŚĞƌ͘
, . A ? ? A C D 8 . A ? ? 2 1 A
=

 ’ á –

>ŝŶĞϭϳŝƐǁŚĞƌĞƚŚĞAddTwoNumbers()ŵĞƚŚŽĚŐĞƚƐĐĂůůĞĚŝŶƚŽĂĐƟŽŶ͘/ŶĨĂĐƚ͕ƚŚĂƚΖƐ
ĞdžĂĐƚůLJŚŽǁƚŽĚĞƐĐƌŝďĞŝƚ͘dŚŝƐůŝŶĞŽĨĐŽĚĞĐĂůůƐƚŚĞŵĞƚŚŽĚ͘

AddTwoNumbers()ŵĞƚŚŽĚ͘ŽŶΖƚďĞĐŽŶĐĞƌŶĞĚĂďŽƵƚ
K / @ A ? 4 5 G 4 6 G 4 4 G 9 @ C 4 7 F 9 ; A < , 2 1 A

ƚŚĞĐŽĚĞĚĞƚĂŝůƐLJĞƚ͘/ũƵƐƚǁĂŶƚLJŽƵƚŽƵŶĚĞƌƐƚĂŶĚŚŽǁĐĂůůŝŶŐĂŵĞƚŚŽĚǁŽƌŬƐ͘

Method names are substitutes too


zŽƵůĞĂƌŶĞĚƚŚĂƚĂǀĂƌŝĂďůĞŝƐĂƐƵďƐƟƚƵƚĞĨŽƌƚŚĞǀĂůƵĞŝƚĂĐƚƵĂůůLJĐŽŶƚĂŝŶƐ͘tĞůů͕ĂŵĞƚŚŽĚ
ŝƐŶŽĚŝīĞƌĞŶƚ͘
9 ; A 9 > + + ; 9 2 > / @ A 4 5 E . + F 2 1 A , . A B / + < ? ? : . A A @ ? 1 + 2 I


void AddTwoNumbers ()
[ 25 ]
0
Å Æ ä Â 1 2 å 3 Å 4 Æ  Á 5 2 3 À 1 3 Å 4 5 À Â å 6 Ç Ã Â ä 7 Å 3 Æ 8 9 å ä 3  Æ Ç

AddTwoNumbers() AddTwoNumbers()
1 A / ? 2 1 A @ 9 F A + E 2 1 A F A 2 1 + C D K / ; A 9 B 9 . / 9 = > A G / ?


ŶŽƚŚŝŶŐŵŽƌĞƚŚĂŶĂŶĂŵĞĚƉůĂĐĞŚŽůĚĞƌŝŶƚŚĞŵĞŵŽƌLJ͕ďƵƚƚŚŝƐƟŵĞŝƚƐƚŽƌĞƐƐŽŵĞůŝŶĞƐŽĨ
ĐŽĚĞŝŶƐƚĞĂĚ͘^ŽĂŶLJǁŚĞƌĞǁĞǁŽƵůĚůŝŬĞƚŽƵƐĞƚŚĞĐŽĚĞŽĨƚŚŝƐŵĞƚŚŽĚŝŶŽƵƌƐĐƌŝƉƚ͕ũƵƐƚ
ǁƌŝƚĞAddTwoNumbers()͕ĂŶĚƚŚĞĐŽĚĞǁŝůůďĞƐƵďƐƟƚƵƚĞĚ͘
>ŝŶĞϮϭŚĂƐĂŶŽƉĞŶŝŶŐĐƵƌůLJͲďƌĂĐĞĂŶĚůŝŶĞϮϯŚĂƐĂĐůŽƐŝŶŐĐƵƌůLJͲďƌĂĐĞ͘ǀĞƌLJƚŚŝŶŐďĞƚǁĞĞŶ
ƚŚĞƚǁŽĐƵƌůLJͲďƌĂĐĞƐŝƐƚŚĞĐŽĚĞƚŚĂƚŝƐĞdžĞĐƵƚĞĚǁŚĞŶƚŚŝƐŵĞƚŚŽĚŝƐĐĂůůĞĚŝŶ
+ < . ? : . / , 2 D

>ŽŽŬĂƚůŝŶĞϭϳĨƌŽŵƚŚĞƉƌĞǀŝŽƵƐƐĐƌĞĞŶƐŚŽƚ͗
AddTwoNumbers();

AddTwoNumbers()ŝƐĐĂůůĞĚ͘dŚŝƐŵĞĂŶƐƚŚĂƚƚŚĞĐŽĚĞďĞƚǁĞĞŶƚŚĞ
1 A F A 2 1 + C @ 9 F A


: < . > - = . 9 : A ? / ? A ì A : < 2 A C D


(

/ƚΖƐůŝŬĞŚĂǀŝŶŐĂůůŽĨƚŚĞĐŽĚĞŽĨĂŵĞƚŚŽĚƌŝŐŚƚƚŚĞƌĞŽŶ
ůŝŶĞϭϳ͘

AddTwoNumbers()
# E : + < . ? A G 2 1 / ? F A 2 1 + C + @ > - 1 9 ? + @ A > / @ A + E : + C A 2 + A ì A : < 2 A G = < 2 9

F A 2 1 + C : + < > C 1 9 B A F 9 @ - > / @ A ? + E : + C A D

>ŝŶĞϮϮŝƐƚŚĞĂĐƟŽŶƉĂƌƚŽĨƚŚŝƐŵĞƚŚŽĚ͕ƚŚĞƉĂƌƚďĞƚǁĞĞŶƚŚĞĐƵƌůLJͲďƌĂĐĞƐ͘dŚŝƐůŝŶĞŽĨĐŽĚĞ
ŝƐĂĚĚŝŶŐƚŚĞƚǁŽǀĂƌŝĂďůĞƐƚŽŐĞƚŚĞƌĂŶĚĚŝƐƉůĂLJŝŶŐƚŚĞĂŶƐǁĞƌƚŽƚŚĞhŶŝƚLJŽŶƐŽůĞ
D 1 A @ G


ĨŽůůŽǁƚŚĞĞŶƐƵŝŶŐƐƚĞƉƐ͗

ŽŶƐŽůĞƉĂŶĞůƐŚŽǁŝŶŐ͘
6 D + = 9 : ; 2 + @ / 2 - 9 @ C 1 9 B A 2 1 A
% )

EŽǁĐůŝĐŬŽŶWůĂLJ
4 D D

What just happened?


# 1 @ + ¥ + 2 1 / @ 0 1 9 , , A @ A C ¥
$

ŽŶƐŽůĞ
: 2 < 9 > > - G 9 ? - + < ? / 2 2 1 A . A > + + ; / @ 0 9 2 2 1 A = > 9 @ ; , 9 @ A > G 2 1 A ? : . / , 2 / ? . < @ @ / @ 0 , A . E A : 2 > - G
'

ũƵƐƚĂƐǁĞƉƌŽŐƌĂŵŵĞĚŝƚ͘>ŝŶĞϭϲŝŶƚŚĞƐĐƌŝƉƚŝƐǁĂŝƟŶŐĨŽƌLJŽƵƚŽƉƌĞƐƐƚŚĞZĞƚƵƌŶͬ
=

 ’ á –

ŬĞLJ͘WƌĞƐƐŝƚŶŽǁ͘

ŶĚƚŚĞƌĞLJŽƵŐŽ͊dŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚƐŚŽǁƐLJŽƵƚŚĞƌĞƐƵůƚŽĨĂĚĚŝŶŐƚǁŽǀĂƌŝĂďůĞƐ
ƚŽŐĞƚŚĞƌƚŚĂƚĐŽŶƚĂŝŶƚŚĞŶƵŵďĞƌƐϮĂŶĚϵ͗

[ 26 ]
Ä  ¾  Æ Á ä ;

>ŝŶĞϭϲǁĂŝƚĞĚĨŽƌLJŽƵƚŽƉƌĞƐƐƚŚĞZĞƚƵƌŶͬ ͘tŚĞŶLJŽƵĚŽƚŚŝƐ͕ůŝŶĞϭϳĞdžĞĐƵƚĞƐ
; A -
=

 ’ á –

ǁŚŝĐŚĐĂůůƐƚŚĞAddTwoNumbers()ŵĞƚŚŽĚ͘dŚŝƐĂůůŽǁƐƚŚĞĐŽĚĞďůŽĐŬŽĨƚŚĞŵĞƚŚŽĚ͕ůŝŶĞ
number1 number2
4 7 G 2 + 9 C C 2 1 A 2 1 A B 9 > < A ? ? 2 + . A C / @ 2 1 A B 9 . / 9 = > A ? 9 @ C D

+DYHDJRKHUR²FKDQJLQJWKHRXWSXWRIWKHPHWKRG
DĂŝŶĂŵĞƌĂƐŽŝƚƐŽŵƉŽŶĞŶƚƐƐŚŽǁŝŶƚŚĞ WůĂLJ
Ž 1 / > A @ / 2 - / ? / @ 2 1 A F + C A G ? A > A : 2 2 1 A
)

>ĞĂƌŶŝŶŐ^ĐƌŝƉƚĂŶĚŝƚƐƚǁŽǀĂƌŝĂďůĞƐ͘ŚĂŶŐĞƚŚĞ
    D @ 2 1 A     , 9 @ A > G > + : 9 2 A
!

         

Ϯ ϵ͕ƚŽĚŝīĞƌĞŶƚǀĂůƵĞƐ͘DĂŬĞƐƵƌĞƚŽĐůŝĐŬLJŽƵƌŵŽƵƐĞŝŶƚŚĞ'ĂŵĞ
B 9 > < A ? G : < . . A @ 2 > - 9 @ C

ZĞƚƵƌŶͬ ŬĞLJĂŐĂŝŶ͘zŽƵǁŝůůƐĞĞƚŚĞƌĞƐƵůƚŽĨƚŚĞ
, 9 @ A > ? + / 2 1 9 ? E + : < ? G 2 1 A @ , . A ? ? 2 1 A
=

 ’ á –

ŶĞǁĂĚĚŝƟŽŶŝŶƚŚĞŽŶƐŽůĞ
D

zŽƵũƵƐƚůĞĂƌŶĞĚŚŽǁĂŵĞƚŚŽĚǁŽƌŬƐƚŽĂůůŽǁĂƐƉĞĐŝĮĐďůŽĐŬŽĨĐŽĚĞƚŽƚŽďĞĐĂůůĞĚƚŽ
, A . E + . F 9 2 9 ? ; D

tĞĚŝĚŶΖƚŐĞƚŝŶƚŽĂŶLJŽĨƚŚĞǁŽƌĚŝŶŐĚĞƚĂŝůƐŽĨŵĞƚŚŽĚƐŚĞƌĞ͕ƚŚŝƐǁĂƐũƵƐƚƚŽƐŚŽǁLJŽƵ
ĨƵŶĚĂŵĞŶƚĂůůLJŚŽǁƚŚĞLJǁŽƌŬ͘tĞΖůůŐĞƚŝŶƚŽƚŚĞĮŶĞƌĚĞƚĂŝůƐŽĨŵĞƚŚŽĚƐŝŶ
Þ ß à G

— ’ á – ê

'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ
D

Introducing the class


ĐůĂƐƐ ƐĂŵĂũŽƌƌŽůĞŝŶhŶŝƚLJ͘/ŶĨĂĐƚ͕ǁŚĂƚhŶŝƚLJĚŽĞƐǁŝƚŚĂĐůĂƐƐĂůŝƩůĞƉŝĞĐĞŽĨ
1 A , > 9 -


ŵĂŐŝĐǁŚĞŶhŶŝƚLJĐƌĞĂƚĞƐŽŵƉŽŶĞŶƚƐ͘

zŽƵũƵƐƚůĞĂƌŶĞĚĂďŽƵƚǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͘dŚĞƐĞƚǁŽŝƚĞŵƐĂƌĞƚŚĞďƵŝůĚŝŶŐďůŽĐŬƐƵƐĞĚ
ƚŽďƵŝůĚhŶŝƚLJƐĐƌŝƉƚƐ͘dŚĞƚĞƌŵƐĐƌŝƉƚŝƐƵƐĞĚĞǀĞƌLJǁŚĞƌĞŝŶĚŝƐĐƵƐƐŝŽŶƐĂŶĚĚŽĐƵŵĞŶƚƐ͘
>ŽŽŬŝƚƵƉŝŶƚŚĞĚŝĐƟŽŶĂƌLJĂŶĚŝƚĐĂŶďĞŐĞŶĞƌĂůůLJĚĞƐĐƌŝďĞĚĂƐǁƌŝƩĞŶƚĞdžƚ͘^ƵƌĞĞŶŽƵŐŚ͕
ƚŚĂƚΖƐǁŚĂƚǁĞŚĂǀĞ͘,ŽǁĞǀĞƌ͕ƐŝŶĐĞǁĞĂƌĞŶΖƚũƵƐƚǁƌŝƟŶŐĂƐĐƌĞĞŶƉůĂLJŽƌƉĂƐƐŝŶŐĂŶŽƚĞ
ƚŽƐŽŵĞŽŶĞ͕ǁĞŶĞĞĚƚŽůĞĂƌŶƚŚĞĂĐƚƵĂůƚĞƌŵƐƵƐĞĚŝŶƉƌŽŐƌĂŵŵŝŶŐ͘

hŶŝƚLJĐĂůůƐƚŚĞĐŽĚĞŝƚĐƌĞĂƚĞƐĂηƐĐƌŝƉƚ͘,ŽǁĞǀĞƌ͕ƉĞŽƉůĞůŝŬĞŵĞŚĂǀĞƚŽƚĞĂĐŚLJŽƵƐŽŵĞ
= 9 ? / : , . + 0 . 9 F F / @ 0 ? ; / > > ? 9 @ C 2 A > > - + < 2 1 9 2 9 ? : . / , 2 / ? . A 9 > > - 9 : > 9 ? ? D

/ŶƚŚĞƉƌĞǀŝŽƵƐƐĞĐƟŽŶĂďŽƵƚŵĞƚŚŽĚƐ͕ǁĞĐƌĞĂƚĞĚĂĐůĂƐƐ;ƐĐƌŝƉƚͿĐĂůůĞĚ
LearningScript

>  ü  ú ý ü  ú     ? ú û ý ú    ÿ ú ü ú   


ŵĂŝŶĐŽŶĐĞƉƚŽƌŝĚĞĂŽĨĂĐůĂƐƐŝƐƚŚĂƚŝƚΖƐĂĐŽŶƚĂŝŶĞƌŽĨĚĂƚĂ͕ƐƚŽƌĞĚŝŶ
ǀĂƌŝĂďůĞƐ͕ĂŶĚŵĞƚŚŽĚƐƚŚĂƚƉƌŽĐĞƐƐƚŚĂƚĚĂƚĂŝŶƐŽŵĞĨĂƐŚŝŽŶ͘ĞĐĂƵƐĞ/ĚŽŶΖƚ
ŚĂǀĞƚŽĐŽŶƐƚĂŶƚůLJǁƌŝƚĞĐůĂƐƐ;ƐĐƌŝƉƚͿ͕/ǁŝůůďĞƵƐŝŶŐƚŚĞǁŽƌĚƐĐƌŝƉƚŵŽƐƚŽĨ
ƚŚĞƟŵĞ͘,ŽǁĞǀĞƌ͕/ǁŝůůĂůƐŽďĞƵƐŝŶŐĐůĂƐƐǁŚĞŶŐĞƫŶŐŵŽƌĞƐƉĞĐŝĮĐǁŝƚŚ
η͘:ƵƐƚƌĞŵĞŵďĞƌƚŚĂƚĂƐĐƌŝƉƚŝƐĂĐůĂƐƐƚŚĂƚŝƐĂƩĂĐŚĞĚƚŽĂ'ĂŵĞKďũĞĐƚ͘

[ 27 ]
0
Å Æ ä Â 1 2 å 3 Å 4 Æ  Á 5 2 3 À 1 3 Å 4 5 À Â å 6 Ç Ã Â ä 7 Å 3 Æ 8 9 å ä 3  Æ Ç

ƌĞĂƟŶŐƚŚĞ'ĂŵĞƉůĂLJŝƐ:ƵƐƚĂWĂƌƚŽĨƚŚĞ'ĂŵĞ͕ǁĞǁŝůůďĞĐƌĞĂƟŶŐƐŽŵĞ
@ Þ ß à G
!

— ’ á – î

ĐůĂƐƐĞƐĨŽƌĂ^ƚĂƚĞDĂĐŚŝŶĞ͘dŚĞƐĞĐůĂƐƐĞƐǁŝůůŶŽƚďĞĂƩĂĐŚĞĚƚŽĂŶLJ'ĂŵĞKďũĞĐƚƐ͕ƐŽ/
ǁŽŶΖƚďĞĐĂůůŝŶŐƚŚĞŵƐĐƌŝƉƚƐ͘

%\XVLQJDOLWWOH8QLW\PDJLFDVFULSWEHFRPHV
a Component
tŚŝůĞǁŽƌŬŝŶŐŝŶhŶŝƚLJ͕ǁĞǁĞĂƌƚŚĞĨŽůůŽǁŝŶŐƚǁŽŚĂƚƐ͗
9 F A * . A 9 2 + . 1 9 2
' % (

‹ ^ĐƌŝƉƟŶŐ;ƉƌŽŐƌĂŵŵĞƌͿŚĂƚ

tŚĞŶǁĞĮƌƐƚǁĞĂƌŽƵƌ'ĂŵĞͲƌĞĂƚŽƌŚĂƚ͕ǁĞǁŝůůďĞĚĞǀĞůŽƉŝŶŐŽƵƌ^ĐĞŶĞ͕ƐĞůĞĐƟŶŐ
'ĂŵĞKďũĞĐƚƐ͕ĂŶĚǀŝĞǁŝŶŐŽŵƉŽŶĞŶƚƐ͖ũƵƐƚĂďŽƵƚĂŶLJƚŚŝŶŐĞdžĐĞƉƚǁƌŝƟŶŐŽƵƌƐĐƌŝƉƚƐ͘

tŚĞŶǁĞƉƵƚŽƵƌ^ĐƌŝƉƟŶŐŚĂƚŽŶ͕ŽƵƌƚĞƌŵŝŶŽůŽŐLJĐŚĂŶŐĞƐĂƐĨŽůůŽǁƐ͗

‹ tĞΖƌĞǁƌŝƟŶŐĐŽĚĞŝŶƐĐƌŝƉƚƐƵƐŝŶŐDŽŶŽĞǀĞůŽƉ
‹ tĞΖƌĞǁŽƌŬŝŶŐǁŝƚŚǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ

dŚĞŵĂŐŝĐŚĂƉƉĞŶƐǁŚĞŶLJŽƵƉƵƚLJŽƵƌ'ĂŵĞͲƌĞĂƚŽƌŚĂƚďĂĐŬŽŶĂŶĚĂƩĂĐŚLJŽƵƌƐĐƌŝƉƚƚŽ
Ă'ĂŵĞKďũĞĐƚ͘tĂǀĞƚŚĞŵĂŐŝĐǁĂŶĚͶWͶƚŚĞƐĐƌŝƉƚĮůĞŝƐŶŽǁĐĂůůĞĚĂŽŵƉŽŶĞŶƚ͕
ĂŶĚƚŚĞƉƵďůŝĐǀĂƌŝĂďůĞƐŽĨƚŚĞƐĐƌŝƉƚĂƌĞŶŽǁƚŚĞƉƌŽƉĞƌƟĞƐLJŽƵĐĂŶƐĞĞĂŶĚĐŚĂŶŐĞŝŶƚŚĞ
    , 9 @ A > D

    

A more technical look at the magic


ƐĐƌŝƉƚŝƐůŝŬĞĂďůƵĞƉƌŝŶƚŽƌĂǁƌŝƩĞŶĚĞƐĐƌŝƉƟŽŶ͘/ŶŽƚŚĞƌǁŽƌĚƐ͕ŝƚΖƐũƵƐƚĂƐŝŶŐůĞĮůĞŝŶĂ
ƉĂŶĞů͘/ƚĐĂŶΖƚĚŽĂŶLJƚŚŝŶŐ
E + > C A . + @ + < . 1 9 . C C . / B A D Ž A : 9 @ ? A A / 2 . / 0 1 2 2 1 A . A / @ 2 1 A , 

  -   

ũƵƐƚƐŝƫŶŐƚŚĞƌĞ͘tŚĞŶǁĞƚĞůůhŶŝƚLJƚŽĂƩĂĐŚŝƚƚŽĂ'ĂŵĞKďũĞĐƚ͕ǁĞŚĂǀĞŶΖƚĐƌĞĂƚĞĚ
ĂŶŽƚŚĞƌĐŽƉLJŽĨƚŚĞĮůĞ͕ĂůůǁĞΖǀĞĚŽŶĞŝƐƚĞůůhŶŝƚLJǁĞǁĂŶƚƚŚĞďĞŚĂǀŝŽƌƐĚĞƐĐƌŝďĞĚŝŶ
+ < . ? : . / , 2 2 + = A 9 * + F , + @ A @ 2 + E 2 1 A 9 F A # =  A : 2 D
%

tŚĞŶǁĞĐůŝĐŬŽŶƚŚĞWůĂLJďƵƩŽŶ͕hŶŝƚLJůŽĂĚƐƚŚĞ'ĂŵĞKďũĞĐƚŝŶƚŽƚŚĞĐŽŵƉƵƚĞƌΖƐ
ŵĞŵŽƌLJ͘^ŝŶĐĞƚŚĞƐĐƌŝƉƚŝƐĂƩĂĐŚĞĚƚŽĂ'ĂŵĞKďũĞĐƚ͕hŶŝƚLJĂůƐŽŚĂƐƚŽŵĂŬĞĂƉůĂĐĞ
ŝŶƚŚĞĐŽŵƉƵƚĞƌΖƐŵĞŵŽƌLJƚŽƐƚŽƌĞĂŽŵƉŽŶĞŶƚĂƐƉĂƌƚŽĨƚŚĞ'ĂŵĞKďũĞĐƚ͘dŚĞ
ŽŵƉŽŶĞŶƚŚĂƐƚŚĞĐĂƉĂďŝůŝƟĞƐƐƉĞĐŝĮĞĚŝŶƚŚĞƐĐƌŝƉƚ;ďůƵĞƉƌŝŶƚͿǁĞĐƌĞĂƚĞĚ͘

[ 28 ]
Ä  ¾  Æ Á ä ;

Even more Unity magic


dŚĞƌĞΖƐƐŽŵĞŵŽƌĞŵĂŐŝĐLJŽƵŶĞĞĚƚŽďĞĂǁĂƌĞŽĨ͘dŚĞƐĐƌŝƉƚƐŝŶŚĞƌŝƚĨƌŽŵ
MonoBehaviour
D

&ŽƌďĞŐŝŶŶĞƌƐƚŽhŶŝƚLJ͕ƐƚƵĚLJŝŶŐηŝŶŚĞƌŝƚĂŶĐĞŝƐŶΖƚĂƐƵďũĞĐƚLJŽƵŶĞĞĚƚŽůĞĂƌŶŝŶĂŶLJŐƌĞĂƚ
ĚĞƚĂŝů͕ďƵƚLJŽƵĚŽŶĞĞĚƚŽŬŶŽǁƚŚĂƚĞĂĐŚhŶŝƚLJƐĐƌŝƉƚƵƐĞƐŝŶŚĞƌŝƚĂŶĐĞ͘tĞƐĞĞƚŚĞĐŽĚĞŝŶ
ĞǀĞƌLJƐĐƌŝƉƚƚŚĂƚǁŝůůďĞĂƩĂĐŚĞĚƚŽĂ'ĂŵĞKďũĞĐƚ͘/ŶLearningScript͕ƚŚĞĐŽĚĞŝƐŽŶůŝŶĞϰ͗
public class LearningScript : MonoBehaviour

dŚĞĐŽůŽŶĂŶĚƚŚĞůĂƐƚǁŽƌĚŽĨƚŚĂƚĐŽĚĞŵĞĂŶƐƚŚĂƚƚŚĞLearningScriptĐůĂƐƐŝƐŝŶŚĞƌŝƟŶŐ
MonoBehaviour
= A 1 9 B / + . ? E . + F 2 1 A : > 9 ? ? D 1 / ? ? / F , > - F A 9 @ ? 2 1 9 2 2 1 A + @ + A 1 9 B / + < .
 #

ĐůĂƐƐŝƐŵĂŬŝŶŐĨĞǁŽĨŝƚƐǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐĂǀĂŝůĂďůĞƚŽƚŚĞ>ĞĂƌŶŝŶŐ^ĐƌŝƉƚĐůĂƐƐ͘/ƚΖƐ
@ + : + / @ : / C A @ : A 2 1 9 2 2 1 A B 9 . / 9 = > A ? 9 @ C F A 2 1 + C ? / @ 1 A . / 2 A C > + + ;  < ? 2 > / ; A ? + F A + E 2 1 A : + C A

ǁĞƐĂǁŝŶƚŚĞhŶŝƚLJ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ
D

dŚĞĨŽůůŽǁŝŶŐĂƌĞƚŚĞƚǁŽŝŶŚĞƌŝƚĞĚďĞŚĂǀŝŽƌƐŝŶƚŚĞLearningScript
I

>ŝŶĞϵ͗͗void Start ()
>ŝŶĞϭϰ͗void Update ()

dŚĞŵĂŐŝĐŝƐƚŚĂƚLJŽƵĚŽŶΖƚŚĂǀĞƚŽĐĂůůƚŚĞƐĞŵĞƚŚŽĚƐ͕hŶŝƚLJĐĂůůƐƚŚĞŵ
ĂƵƚŽŵĂƟĐĂůůLJ͘^ŽƚŚĞĐŽĚĞLJŽƵƉůĂĐĞŝŶƚŚĞƐĞŵĞƚŚŽĚƐŐĞƚƐĞdžĞĐƵƚĞĚĂƵƚŽŵĂƟĐĂůůLJ͘

+DYHDJRKHUR²ÀQGLQJ6WDUWDQG8SGDWHLQWKH6FULSWLQJ5HIHUHQFH
^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ ^ƚĂƌƚ hƉĚĂƚĞƚŽůĞĂƌŶǁŚĞŶĞĂĐŚŵĞƚŚŽĚŝƐ
. - 9 ? A 9 . : 1 + @ 2 1 A E + . 9 @ C


ĐĂůůĞĚďLJhŶŝƚLJĂŶĚŚŽǁŽŌĞŶ͘

MonoBehaviour͘dŚŝƐǁŝůůƐŚŽǁLJŽƵƚŚĂƚƐŝŶĐĞŽƵƌƐĐƌŝƉƚŝŶŚĞƌŝƚƐĨƌŽŵ
> ? + ? A 9 . : 1 E + .
'

MonoBehaviour͕ǁĞĂƌĞĂďůĞƚŽƵƐĞƚŚĞStart() Update()
9 @ C F A 2 1 + C ? D

Components communicating using the Dot Syntax


KƵƌƐĐƌŝƉƚŚĂƐǀĂƌŝĂďůĞƐƚŽŚŽůĚĚĂƚĂ͕ĂŶĚŽƵƌƐĐƌŝƉƚŚĂƐŵĞƚŚŽĚƐƚŽĂůůŽǁƚĂƐŬƐƚŽďĞ
ƉĞƌĨŽƌŵĞĚ͘/ŶŽǁǁĂŶƚƚŽŝŶƚƌŽĚƵĐĞƚŚĞĐŽŶĐĞƉƚŽĨĐŽŵŵƵŶŝĐĂƟŶŐǁŝƚŚŽƚŚĞƌ'ĂŵĞKďũĞĐƚƐ
ŽŵƉŽŶĞŶƚƐƚŚĞLJĐŽŶƚĂŝŶ͘ŽŵŵƵŶŝĐĂƟŽŶďĞƚǁĞĞŶŽŶĞ'ĂŵĞKďũĞĐƚΖƐŽŵƉŽŶĞŶƚƐ
9 @ C 2 1 A

ĂŶĚĂŶŽƚŚĞƌ'ĂŵĞKďũĞĐƚΖƐŽŵƉŽŶĞŶƚƐƵƐŝŶŐŽƚ^LJŶƚĂdžŝƐĂǀŝƚĂůƉĂƌƚŽĨƐĐƌŝƉƟŶŐ͘/ƚΖƐ
ǁŚĂƚŵĂŬĞƐŝŶƚĞƌĂĐƟŽŶƉŽƐƐŝďůĞ͘tĞŶĞĞĚƚŽĐŽŵŵƵŶŝĐĂƚĞǁŝƚŚŽƚŚĞƌŽŵƉŽŶĞŶƚƐŽƌ
9 F A # =  A : 2 ? 2 + = A 9 = > A 2 + < ? A 2 1 A B 9 . / 9 = > A ? 9 @ C F A 2 1 + C ? / @ + 2 1 A . * + F , + @ A @ 2 ? D
%

[ 29 ]
0
Å Æ ä Â 1 2 å 3 Å 4 Æ  Á 5 2 3 À 1 3 Å 4 5 À Â å 6 Ç Ã Â ä 7 Å 3 Æ 8 9 å ä 3  Æ Ç

What's with the dots?


tŚĞŶLJŽƵůŽŽŬĂƚƚŚĞĐŽĚĞǁƌŝƩĞŶďLJŽƚŚĞƌƐ͕LJŽƵΖůůƐĞĞǁŽƌĚƐǁŝƚŚƉĞƌŝŽĚƐƐĞƉĂƌĂƟŶŐƚŚĞŵ͘
tŚĂƚƚŚĞŚĞĐŬŝƐƚŚĂƚ͍/ƚůŽŽŬƐĐŽŵƉůŝĐĂƚĞĚ͕ĚŽĞƐŶΖƚŝƚ͘dŚĞĨŽůůŽǁŝŶŐŝƐĂŶĞdžĂŵƉůĞĨƌŽŵƚŚĞ
hŶŝƚLJĚŽĐƵŵĞŶƚĂƟŽŶ͗
transform.position.x

ŽŶΖƚĐŽŶĐĞƌŶLJŽƵƌƐĞůĨǁŝƚŚǁŚĂƚƚŚĞƉƌĞĐĞĚŝŶŐĐŽĚĞŵĞĂŶƐĂƐƚŚĂƚĐŽŵĞƐ
ůĂƚĞƌ͕/ũƵƐƚǁĂŶƚLJŽƵƚŽƐĞĞƚŚĞĚŽƚƐ͘

dŚĂƚΖƐĐĂůůĞĚƚŚĞŽƚ^LJŶƚĂdž͘dŚĞĨŽůůŽǁŝŶŐŝƐĂŶŽƚŚĞƌĞdžĂŵƉůĞ͘/ƚΖƐƚŚĞĮĐƟƟŽƵƐĂĚĚƌĞƐƐŽĨ
ŵLJŚŽƵƐĞ͗h^͘sĞƌŵŽŶƚ͘ƐƐĞdž͘ϮϮDLJ^ƚƌĞĞƚ

>ŽŽŬƐĨƵŶŶLJ͕ĚŽĞƐŶΖƚŝƚ͍dŚĂƚΖƐďĞĐĂƵƐĞ/ƵƐĞĚƚŚĞƐLJŶƚĂdž;ŐƌĂŵŵĂƌͿŽĨηŝŶƐƚĞĂĚŽĨƚŚĞƉŽƐƚ
ŽĸĐĞ͘,ŽǁĞǀĞƌ͕/ΖůůďĞƚŝĨLJŽƵůŽŽŬĐůŽƐĞůLJ͕LJŽƵĐĂŶĞĂƐŝůLJĮŐƵƌĞŽƵƚŚŽǁƚŽĮŶĚŵLJŚŽƵƐĞ͘
tĞΖůůŐĞƚŝŶƚŽŵƵĐŚŵŽƌĞŽƚ^LJŶƚĂdžĚĞƚĂŝůŝŶ
Þ ß à G à B

— ’ á – í  œ ‘  @ A ™ ’ ” “  ’ ˜ ™ –

KďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ͘

3RSTXL]²NQRZLQJWKH&EXLOGLQJEORFNV
Yϭ͘tŚĂƚŝƐƚŚĞƉƵƌƉŽƐĞŽĨĂǀĂƌŝĂďůĞŝŶĂƐĐƌŝƉƚ͍

YϮ͘tŚĂƚŝƐƚŚĞƉƵƌƉŽƐĞŽĨĂŵĞƚŚŽĚŝŶĂƐĐƌŝƉƚ͍

Yϯ͘,ŽǁĚŽĞƐĂƐĐƌŝƉƚďĞĐŽŵĞĂŽŵƉŽŶĞŶƚ͍

Yϰ͘tŚĂƚŝƐƚŚĞƉƵƌƉŽƐĞŽĨŽƚ^LJŶƚĂdž͍

Summary
1 / ? : 1 9 , 2 A . / @ 2 . + C < : A C - + < 2 + 2 1 A = 9 ? / : : + @ : A , 2 ? + E B 9 . / 9 = > A ? G F A 2 1 + C ? G 9 @ C ¤ + 2 J - @ 2 9 ì D


dŚĞƐĞďƵŝůĚŝŶŐďůŽĐŬƐĂƌĞƵƐĞĚƚŽĐƌĞĂƚĞƐĐƌŝƉƚƐĂŶĚĐůĂƐƐĞƐ͘hŶĚĞƌƐƚĂŶĚŝŶŐŚŽǁƚŚĞƐĞ
ďƵŝůĚŝŶŐďůŽĐŬƐǁŽƌŬŝƐĐƌŝƟĐĂůƐŽLJŽƵĚŽŶΖƚĨĞĞůLJŽƵΖƌĞŶŽƚŐĞƫŶŐŝƚ͘

tĞĚŝƐĐŽǀĞƌĞĚƚŚĂƚĂǀĂƌŝĂďůĞŶĂŵĞŝƐĂƐƵďƐƟƚƵƚĞĨŽƌƚŚĞǀĂůƵĞŝƚƐƚŽƌĞƐ͖ĂŵĞƚŚŽĚŶĂŵĞŝƐĂ
ƐƵďƐƟƚƵƚĞĨŽƌĂďůŽĐŬŽĨĐŽĚĞ͖ǁŚĞŶĂƐĐƌŝƉƚŽƌĐůĂƐƐŝƐĂƩĂĐŚĞĚƚŽĂ'ĂŵĞKďũĞĐƚ͕ŝƚďĞĐŽŵĞƐ
9 * + F , + @ A @ 2 D 1 A ¤ + 2 J - @ 2 9 ì / ?  < ? 2 > / ; A 9 @ 9 C C . A ? ? 2 + > + : 9 2 A 9 F A # =  A : 2 ? 9 @ C * + F , + @ A @ 2 ? D
 %

tŝƚŚƚŚĞƐĞĐŽŶĐĞƉƚƐƵŶĚĞƌLJŽƵƌďĞůƚ͕ǁĞĐĂŶƉƌŽĐĞĞĚƚŽůĞĂƌŶƚŚĞĚĞƚĂŝůƐŽĨƚŚĞƐĞŶƚĞŶĐĞ
ƐƚƌƵĐƚƵƌĞ͕ƚŚĞŐƌĂŵŵĂƌ͕ĂŶĚƚŚĞƐLJŶƚĂdžƵƐĞĚƚŽǁŽƌŬǁŝƚŚǀĂƌŝĂďůĞƐ͕ŵĞƚŚŽĚƐ͕ĂŶĚƚŚĞŽƚ
^LJŶƚĂdž͘/ŶƚŚĞŶĞdžƚĐŚĂƉƚĞƌǁĞǁŝůůůĞĂƌŶĂďŽƵƚƚŚĞĚĞƚĂŝůƐŽĨƵƐŝŶŐǀĂƌŝĂďůĞƐ͘

[ 30 ]
*HWWLQJLQWRWKH'HWDLOVRI9DULDEOHV
3
/ŶŝƚŝĂůůLJ͕ĐŽŵƉƵƚĞƌƉƌŽŐƌĂŵŵŝŶŐĂƉƉĞĂƌƐĚŝĨĨŝĐƵůƚƚŽďĞŐŝŶŶĞƌƐĚƵĞƚŽƚŚĞĨĂĐƚ
ŚŽǁǁŽƌĚƐĂƌĞƵƐĞĚŝŶĐŽĚĞ͘/ƚΖƐŶŽƚƚŚĞĂĐƚƵĂůǁŽƌĚƐƚŚĂƚĐĂƵƐĞƚŚĞƉƌŽďůĞŵ
ďĞĐĂƵƐĞ͕ĨŽƌƚŚĞŵŽƐƚƉĂƌƚ͕ŵĂŶLJŽĨƚŚĞǁŽƌĚƐĂƌĞƚŚĞƐĂŵĞǁŽƌĚƐƚŚĂƚǁĞƵƐĞ
ŝŶŽƵƌĞǀĞƌLJĚĂLJůŝĨĞ͘ηŝƐŶŽƚĂĨŽƌĞŝŐŶůĂŶŐƵĂŐĞ͘dŚĞŵĂŝŶƉƌŽďůĞŵŝƐƚŚĂƚƚŚĞ
ǁŽƌĚƐƐŝŵƉůLJĚŽŶΖƚƌĞĂĚůŝŬĞƚŚĞƚLJƉŝĐĂůƐĞŶƚĞŶĐĞƐǁĞĂƌĞĂůůƵƐĞĚƚŽ͘zŽƵŬŶŽǁ
ŚŽǁƚŽƐĂLJƚŚĞǁŽƌĚƐĂŶĚLJŽƵŬŶŽǁŚŽǁƚŽƐƉĞůůƚŚĞǁŽƌĚƐ͘tŚĂƚLJŽƵĚŽŶΖƚ
ŬŶŽǁŝƐǁŚĞƌĞĂŶĚǁŚLJLJŽƵŶĞĞĚƚŽƉƵƚƚŚĞŵŝŶƚŚĂƚĐƌĂnjLJůŽŽŬŝŶŐŐƌĂŵŵĂƌ͕
ƚŚĂƚŝƐ͕ƚŚĞƐLJŶƚĂdžƚŚĂƚŵĂŬĞƐƵƉĂηƐƚĂƚĞŵĞŶƚ͘

/ŶƚŚŝƐĐŚĂƉƚĞƌ͕ǁĞǁŝůůůĞĂƌŶƐŽŵĞŽĨƚŚĞďĂƐŝĐƌƵůĞƐĨŽƌǁƌŝƚŝŶŐĂηƐƚĂƚĞŵĞŶƚ͘
tĞǁŝůůĂůƐŽďĞŝŶƚƌŽĚƵĐĞĚƚŽŵĂŶLJŽĨƚŚĞǁŽƌĚƐƚŚĂƚηƵƐĞƐĂŶĚƚŚĞƉƌŽƉĞƌ
ƉůĂĐĞŵĞŶƚŽĨƚŚĞƐĞǁŽƌĚƐŝŶƚŚĞηƐƚĂƚĞŵĞŶƚƐǁŚĞŶǁĞĐƌĞĂƚĞŽƵƌǀĂƌŝĂďůĞƐ͘

/ŶƚŚŝƐĐŚĂƉƚĞƌǁĞǁŝůůĐŽǀĞƌƚŚĞĨŽůůŽǁŝŶŐƚŽƉŝĐƐ͗

‹ tƌŝƟŶŐηƐƚĂƚĞŵĞŶƚƐƉƌŽƉĞƌůLJ
‹ hƐŝŶŐηƐLJŶƚĂdžƚŽǁƌŝƚĞǀĂƌŝĂďůĞƐƚĂƚĞŵĞŶƚƐ
‹ dŚĞ'ĂŵĞKďũĞĐƚŽŵƉŽŶĞŶƚΖƐƉƌŽƉĞƌƟĞƐ
? / @ 0 , < = > / : B 9 . / 9 = > A ? E + . 2 1 A @ / 2 - @ ? , A : 2 + . , 9 @ A >
) ) !

‹
9 F / @ 0 9 B 9 . / 9 = > A , . + , A . > -
$

‹ ĞĐůĂƌŝŶŐĂǀĂƌŝĂďůĞĨŽƌƚŚĞƚLJƉĞŽĨĚĂƚĂŝƚǁŝůůƐƚŽƌĞ

KŬ͕ůĞƚΖƐůĞĂƌŶƐŽŵĞƉƌŽŐƌĂŵŵŝŶŐŐƌĂŵŵĂƌ͕ŽƚŚĞƌǁŝƐĞŬŶŽǁŶĂƐηƐLJŶƚĂdž͘
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨsĂƌŝĂďůĞƐ

Writing C# statements properly


tŚĞŶLJŽƵĚŽŶŽƌŵĂůǁƌŝƟŶŐ͕ŝƚΖƐŝŶƚŚĞĨŽƌŵŽĨĂƐĞŶƚĞŶĐĞǁŝƚŚĂƉĞƌŝŽĚƵƐĞĚƚŽĞŶĚƚŚĞ
LJŽƵǁƌŝƚĞĂůŝŶĞŽĨĐŽĚĞ͕ŝƚΖƐĐĂůůĞĚĂƐƚĂƚĞŵĞŶƚǁŝƚŚĂƐĞŵŝͲĐŽůŽŶƵƐĞĚƚŽ
? A @ 2 A @ : A D Ž 1 A @

A @ C 2 1 A ? 2 9 2 A F A @ 2 D

dŚĞƌĞĂƐŽŶĂƐƚĂƚĞŵĞŶƚĞŶĚƐǁŝƚŚĂƐĞŵŝͲĐŽůŽŶŝƐƐŽƚŚĂƚhŶŝƚLJŬŶŽǁƐ
ǁŚĞŶƚŚĞƐƚĂƚĞŵĞŶƚĞŶĚƐ͘ƉĞƌŝŽĚĐĂŶΖƚďĞƵƐĞĚďĞĐĂƵƐĞƚŚĞLJĂƌĞƵƐĞĚŝŶ
  C  D  ü  ú 

dŚĞĐŽĚĞĨŽƌĂηƐƚĂƚĞŵĞŶƚĚŽĞƐŶŽƚŚĂǀĞƚŽďĞŽŶĂƐŝŶŐůĞůŝŶĞĂƐƐŚŽǁŶŝŶƚŚĞ
ĨŽůůŽǁŝŶŐĞdžĂŵƉůĞ͗
public int number1 = 2;
1 A ? 2 9 2 A F A @ 2 : 9 @ = A + @ ? A B A . 9 > > / @ A ? D Ž 1 / 2 A ? , 9 : A 9 @ C : 9 . . / 9 0 A . A 2 < . @ ? 9 . A / 0 @ + . A C G ? + / E


LJŽƵƌĞĂůůLJǁĂŶƚƚŽ͕LJŽƵĐĂŶǁƌŝƚĞŝƚĂƐĨŽůůŽǁƐ͗
public
int
number1
=
2;

Ƶƚ/ƌĞĐŽŵŵĞŶĚLJŽƵƚŽŶŽƚǁƌŝƚĞLJŽƵƌĐŽĚĞůŝŬĞƚŚŝƐďĞĐĂƵƐĞŝƚΖƐƚĞƌƌŝďůĞƌĞĂĚŝŶŐĐŽĚĞ
ĨŽƌŵĂƩĞĚůŝŬĞƚŚĞƉƌĞĐĞĚŝŶŐĐŽĚĞ͘,ŽǁĞǀĞƌ͕ƚŚĞƌĞǁŝůůďĞƟŵĞƐƚŚĂƚLJŽƵΖůůŚĂǀĞƚŽǁƌŝƚĞ
ůŽŶŐƐƚĂƚĞŵĞŶƚƐƚŚĂƚǁŝůůďĞůŽŶŐĞƌƚŚĂŶŽŶĞůŝŶĞ͘hŶŝƚLJǁŽŶΖƚĐĂƌĞ͘/ƚũƵƐƚŶĞĞĚƐƚŽƐĞĞƚŚĞ
? A F / : + > + @ 9 2 2 1 A A @ C D
(

Understanding Component properties in Unity's


Inspector
ŽŵƉŽŶĞŶƚƐƚŚĂƚŵĂŬĞƚŚĞŵďĞŚĂǀĞŝŶĂĐĞƌƚĂŝŶǁĂLJ͘&ŽƌŝŶƐƚĂŶĐĞ͕
9 F A # =  A : 2 ? 1 9 B A ? + F A
%

DĂŝŶĂŵĞƌĂ ĂŵĞƌĂ
? A > A : 2 9 @ C > + + ; 9 2 2 1 A     , 9 @ A > D # @ A + E 2 1 A * + F , + @ A @ 2 ? / ? 2 1 A D

    

tŝƚŚŽƵƚƚŚĂƚŽŵƉŽŶĞŶƚ͕ŝƚǁŝůůĐĞĂƐĞďĞŝŶŐĂĐĂŵĞƌĂ͘/ƚǁŽƵůĚƐƟůůďĞĂ'ĂŵĞKďũĞĐƚŝŶLJŽƵƌ
ƐĐĞŶĞ͕ũƵƐƚŶŽůŽŶŐĞƌĂĨƵŶĐƟŽŶŝŶŐĐĂŵĞƌĂ͘

[ 32 ]
Ä  ¾  Æ Á ä E

9DULDEOHVEHFRPH&RPSRQHQWSURSHUWLHV
ĂŶLJ'ĂŵĞKďũĞĐƚŝƐũƵƐƚĂƐĐƌŝƉƚƚŚĂƚĚĞĮŶĞƐĂĐůĂƐƐ͕ǁŚĞƚŚĞƌLJŽƵǁƌŽƚĞ
@ - * + F , + @ A @ 2 + E
'

ƚŚĞƐĐƌŝƉƚŽƌƚŚĞhŶŝƚLJΖƐƉƌŽŐƌĂŵŵĞƌĚŝĚ͘tĞũƵƐƚĂƌĞŶΖƚƐƵƉƉŽƐĞĚƚŽĞĚŝƚƚŚĞƐĐƌŝƉƚƐƚŚĂƚ
hŶŝƚLJǁƌŽƚĞ͘dŚŝƐŵĞĂŶƐƚŚĂƚĂůůƚŚĞƉƌŽƉĞƌƟĞƐǁĞƐĞĞŝŶ
    9 . A  < ? 2 B 9 . / 9 = > A ? + E

    

ƐŽŵĞƚLJƉĞ͘dŚĞLJƐŝŵƉůLJƐƚŽƌĞĚĂƚĂƚŚĂƚǁŝůůďĞƵƐĞĚďLJƐŽŵĞŵĞƚŚŽĚƐ͘

Unity changes script and variable names slightly


tŚĞŶǁĞĂĚĚŽƵƌƐĐƌŝƉƚƚŽĂ'ĂŵĞKďũĞĐƚ͕ƚŚĞŶĂŵĞŽĨŽƵƌƐĐƌŝƉƚƐŚŽǁƐƵƉŝŶƚŚĞ
   

    

ŽŵƉŽŶĞŶƚ͘hŶŝƚLJŵĂŬĞƐĂĐŽƵƉůĞŽĨƐŵĂůůĐŚĂŶŐĞƐ͘zŽƵŵŝŐŚƚŚĂǀĞŶŽƟĐĞĚ
, 9 @ A > 9 ? 9

ƚŚĂƚǁŚĞŶǁĞĂĚĚĞĚLearningScript DĂŝŶĂŵĞƌĂ͕hŶŝƚLJĂĐƚƵĂůůLJƐŚŽǁĞĚŝƚŝŶƚŚĞ
2 +

>ĞĂƌŶŝŶŐ^ĐƌŝƉƚ͘hŶŝƚLJĂĚĚĞĚĂƐƉĂĐĞƚŽƐĞƉĂƌĂƚĞƚŚĞǁŽƌĚƐŽĨƚŚĞŶĂŵĞ͘
    , 9 @ A > 9 ?

    

hŶŝƚLJĚŽĞƐƚŚŝƐŵŽĚŝĮĐĂƟŽŶƚŽƚŚĞǀĂƌŝĂďůĞŶĂŵĞƐ͕ƚŽŽ͘EŽƟĐĞƚŚĂƚƚŚĞǀĂƌŝĂďůĞnumber1
ŝƐƐŚŽǁŶĂƐEƵŵďĞƌϭ number2 EƵŵďĞƌϮ͘hŶŝƚLJĐĂƉŝƚĂůŝnjĞƐƚŚĞĮƌƐƚůĞƩĞƌĂƐǁĞůů͘
G 9 @ C 9 ?

1 A ? A C / ? , > 9 - A C : 1 9 @ 0 A ? / F , . + B A . A 9 C 9 = / > / 2 - / @     D


    

Changing a property's value in the Inspector panel


ƚǁŽƐŝƚƵĂƟŽŶƐǁŚĞŶLJŽƵĐĂŶŵŽĚŝĨLJĂƉƌŽƉĞƌƚLJǀĂůƵĞ͗
1 A . A 9 . A


WůĂLJ
¤ < . / @ 0 2 1 A F + C A

ƵƌŝŶŐƚŚĞĚĞǀĞůŽƉŵĞŶƚŵŽĚĞ;ŶŽƚŝŶƚŚĞWůĂLJ
N

F + C A

WůĂLJŵŽĚĞ͕LJŽƵǁŝůůƐĞĞƚŚĂƚLJŽƵƌĐŚĂŶŐĞƐƚĂŬĞĞīĞĐƚŝŵŵĞĚŝĂƚĞůLJŝŶ
Ž 1 A @ - + < 9 . A / @ 2 1 A

ƌĞĂůƟŵĞ͘dŚŝƐŝƐŐƌĞĂƚǁŚĞŶLJŽƵΖƌĞĞdžƉĞƌŝŵĞŶƟŶŐĂŶĚǁĂŶƚƚŽƐĞĞƚŚĞƌĞƐƵůƚƐ͘

WůĂLJŵŽĚĞ͕LJŽƵǁŝůůƐĞĞƚŚĂƚLJŽƵƌĐŚĂŶŐĞƐƚĂŬĞĞīĞĐƚ
ù  ü   ú û  ý ü  

ŝŵŵĞĚŝĂƚĞůLJŝŶƌĞĂůƟŵĞ͘dŚŝƐŝƐŐƌĞĂƚǁŚĞŶLJŽƵΖƌĞĞdžƉĞƌŝŵĞŶƟŶŐĂŶĚǁĂŶƚ
ƚŽƐĞĞƚŚĞƌĞƐƵůƚƐ͘tƌŝƚĞĚŽǁŶĂŶLJĐŚĂŶŐĞƐLJŽƵǁĂŶƚƚŽŬĞĞƉďĞĐĂƵƐĞǁŚĞŶ
WůĂLJŵŽĚĞ͕ĂŶLJĐŚĂŶŐĞƐLJŽƵŵĂĚĞǁŝůůďĞůŽƐƚ͘
  ÿ    

tŚĞŶLJŽƵĂƌĞŝŶƚŚĞĚĞǀĞůŽƉŵĞŶƚŵŽĚĞ͕ĐŚĂŶŐĞƐLJŽƵŵĂŬĞƚŽƚŚĞƉƌŽƉĞƌƚLJǀĂůƵĞƐǁŝůůďĞ
ƐĂǀĞĚďLJhŶŝƚLJ͘dŚŝƐŵĞĂŶƐƚŚĂƚŝĨLJŽƵƋƵŝƚhŶŝƚLJĂŶĚƌĞƐƚĂƌƚŝƚĂŐĂŝŶ͕ƚŚĞĐŚĂŶŐĞƐǁŝůůďĞ
ƌĞƚĂŝŶĞĚ͘KĨĐŽƵƌƐĞLJŽƵǁŽŶΖƚƐĞĞƚŚĞĞīĞĐƚŽĨLJŽƵƌĐŚĂŶŐĞƵŶƟůLJŽƵĐůŝĐŬŽŶWůĂLJ
D

 ú ü þ  ÿ    ú       û   û   ? ú    ÿ ý ü   F G H I J K L M N  ú ü  

ŶŽƚŵŽĚŝĨLJLJŽƵƌƐĐƌŝƉƚ͘dŚĞŽŶůLJǁĂLJLJŽƵƌƐĐƌŝƉƚĐĂŶďĞĐŚĂŶŐĞĚŝƐĨŽƌ
LJŽƵƚŽĞĚŝƚŝƚŝŶƚŚĞƐĐƌŝƉƚĞĚŝƚŽƌ;DŽŶŽĞǀĞůŽƉͿ͘dŚĞǀĂůƵĞƐƐŚŽǁŶŝŶƚŚĞ
F G H I J K L M N  ú ü   ?  û û ý  ú ü  ? ú    ÿ   ú ú ÿ ÿ ý þ ü  ý ü   û ÿ û ý  

[ 33 ]
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨsĂƌŝĂďůĞƐ

/ĨLJŽƵĚĞƐŝƌĞƚŽƵŶĚŽƚŚĞĐŚĂŶŐĞƐLJŽƵΖǀĞŵĂĚĞŝŶƚŚĞ
    , 9 @ A > G - + < : 9 @ . A ? A 2 2 1 A B 9 > < A ?

    

ƚŽƚŚĞĚĞĨĂƵůƚǀĂůƵĞƐĂƐƐŝŐŶĞĚŝŶLJŽƵƌƐĐƌŝƉƚ͘ůŝĐŬŽŶƚŚĞŽŐŝĐŽŶ;ƚŚĞŐĞĂƌͿŽŶƚŚĞĨĂƌƌŝŐŚƚŽĨ
ĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͗
2 1 A * + F , + @ A @ 2 ? : . / , 2 G 9 @ C 2 1 A @ ? A > A : 2 
$

  

Displaying public variables in the Inspector panel


/ΖŵƐƵƌĞLJŽƵΖƌĞǁŽŶĚĞƌŝŶŐǁŚĂƚƚŚĞǁŽƌĚpublic
F A 9 @ ? 9 2 2 1 A = A 0 / @ @ / @ 0 + E

9 B 9 . / 9 = > A ? 2 9 2 A F A @ 2 I

public int number1 = 2;

ǀĂƌŝĂďůĞǁŝůůďĞǀŝƐŝďůĞĂŶĚĂĐĐĞƐƐŝďůĞ͘/ƚǁŝůůďĞǀŝƐŝďůĞĂƐĂƉƌŽƉĞƌƚLJŝŶƚŚĞ
2 F A 9 @ ? 2 1 9 2 2 1 A
!

    , 9 @ A > ? + 2 1 9 2 - + < : 9 @ F 9 @ / , < > 9 2 A 2 1 A B 9 > < A ? 2 + . A C / @ 2 1 A B 9 . / 9 = > A D 2 9 > ? + F A 9 @ ?


!

    

ŝƚĐĂŶďĞĂĐĐĞƐƐĞĚĨƌŽŵŽƚŚĞƌƐĐƌŝƉƚƐƵƐŝŶŐƚŚĞŽƚ^LJŶƚĂdž͘zŽƵΖůůůĞĂƌŶŵŽƌĞĂďŽƵƚƚŚĞŽƚ
hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ
J - @ 2 9 ì / @ Þ ß à G D

— ’ á – í

7LPHIRUDFWLRQ²PDNLQJDYDULDEOHSULYDWH
public͘/ĨƚŚĞƌĞΖƐŶŽŶĞĞĚĨŽƌĂǀĂƌŝĂďůĞƚŽďĞĐŚĂŶŐĞĚŝŶ
+ 2 9 > > B 9 . / 9 = > A ? @ A A C 2 + = A
$

ƉĂŶĞůŶŽƌďĞĂĐĐĞƐƐĞĚĨƌŽŵŽƚŚĞƌƐĐƌŝƉƚƐ͕ŝƚĚŽĞƐŶΖƚŵĂŬĞƐĞŶƐĞƚŽĐůƵƩĞƌƚŚĞ
2 1 A    

    

ƉĂŶĞůǁŝƚŚŶĞĞĚůĞƐƐƉƌŽƉĞƌƟĞƐ͘/ŶLearningScript͕ƉĞƌĨŽƌŵƚŚĞĨŽůůŽǁŝŶŐƐƚĞƉƐ͗
   

    

ŚĂŶŐĞůŝŶĞϲƚŽƚŚĞĨŽůůŽǁŝŶŐ͗
ó ô

private int number1 = 2;

[ 34 ]
Ä  ¾  Æ Á ä E

ŚĂŶŐĞůŝŶĞϳƚŽƚŚĞĨŽůůŽǁŝŶŐ͗
õ ô

int number2 = 9;

^ĂǀĞƚŚĞĮůĞ͘
ö ô

DĂŝŶĂŵĞƌĂ
ô
.

@ @ / 2 - G ? A > A : 2 D
! )

What just happened?


zŽƵǁŝůůŶŽƟĐĞŝŶƚŚĞ ƉĂŶĞůƚŚĂƚďŽƚŚƉƌŽƉĞƌƟĞƐ͕EƵŵďĞƌϭ EƵŵďĞƌϮ
    9 @ C

    

9 . A 0 + @ A D

‹ >ŝŶĞϲ͗private int number1 = 2;


number1 private
1 A , . A : A C / @ 0 > / @ A A ì , > / : / 2 > - ? 2 9 2 A ? 2 1 9 2 2 1 A B 9 . / 9 = > A / ? 2 + = A G


ƉĂŶĞů͘/ƚŝƐŶŽǁĂ
2 1 A . A E + . A 2 1 A B 9 . / 9 = > A / ? @ + > + @ 0 A . 9 , . + , A . 2 - / @ 2 1 A    

    

, . / B 9 2 A B 9 . / 9 = > A 2 + ? 2 + . A C 9 2 9 D

‹ >ŝŶĞϳ͗int number2 = 9;
number2ǀĂƌŝĂďůĞŝƐŶŽůŽŶŐĞƌǀŝƐŝďůĞĂƐĂƉƌŽƉĞƌƚLJĞŝƚŚĞƌ͕ďƵƚLJŽƵĚŝĚŶΖƚ
1 A


private
? , A : / E - / 2 9 ? D

/ĨLJŽƵĚŽŶΖƚĞdžƉůŝĐŝƚůLJƐƚĂƚĞǁŚĞƚŚĞƌĂǀĂƌŝĂďůĞǁŝůůďĞpublic private
+ . G = - C A E 9 < > 2 G

ƚŚĞǀĂƌŝĂďůĞǁŝůůŝŵƉůŝĐŝƚůLJďĞprivate
D

/ƚŝƐŐŽŽĚĐŽĚŝŶŐƉƌĂĐƟĐĞƚŽĞdžƉůŝĐŝƚůLJƐƚĂƚĞǁŚĞƚŚĞƌĂǀĂƌŝĂďůĞǁŝůů
public private
  û

^ŽŶŽǁǁŚĞŶLJŽƵĐůŝĐŬŽŶWůĂLJ͕ƚŚĞƐĐƌŝƉƚǁŽƌŬƐĞdžĂĐƚůLJĂƐŝƚĚŝĚďĞĨŽƌĞ͘zŽƵũƵƐƚĐĂŶΖƚ
F 9 @ / , < > 9 2 A 2 1 A B 9 > < A ? F 9 @ < 9 > > - / @ 2 1 A     , 9 @ A > 9 @ - F + . A D

    

Naming your variables properly


ůǁĂLJƐƵƐĞŵĞĂŶŝŶŐĨƵůŶĂŵĞƐĨŽƌƐƚŽƌŝŶŐLJŽƵƌǀĂƌŝĂďůĞƐ͘/ĨLJŽƵĚŽŶΖƚĚŽƚŚĂƚ͕ƐŝdžŵŽŶƚŚƐ
ĚŽǁŶƚŚĞůŝŶĞ͕LJŽƵǁŝůůďĞƐĂĚ͘/ΖŵŐŽŝŶŐƚŽĞdžĂŐŐĞƌĂƚĞŚĞƌĞĂůŝƩůĞďŝƚƚŽŵĂŬĞĂƉŽŝŶƚ͘
/ǁŝůůŶĂŵĞĂǀĂƌŝĂďůĞĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐĐŽĚĞ͗
public bool theBearMakesBigPottyInTheWoods = true;

dŚĂƚΖƐĂĚĞƐĐƌŝƉƟǀĞŶĂŵĞ͘/ŶŽƚŚĞƌǁŽƌĚƐ͕LJŽƵŬŶŽǁǁŚĂƚŝƚŵĞĂŶƐďLJũƵƐƚƌĞĂĚŝŶŐƚŚĞ
ǀĂƌŝĂďůĞ͕ĂŶĚƐŽƚĞŶLJĞĂƌƐĨƌŽŵŶŽǁǁŚĞŶLJŽƵůŽŽŬĂƚƚŚĂƚŶĂŵĞ͕LJŽƵΖůůŬŶŽǁĞdžĂĐƚůLJ
ǁŚĂƚŝƚŵĞĂŶƐ͘EŽǁƐƵƉƉŽƐĞŝŶƐƚĞĂĚŽĨtheBearMakesBigPottyInTheWoods
G 1 9 C
!

ŶĂŵĞĚƚŚŝƐǀĂƌŝĂďůĞĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐĐŽĚĞ͗
public bool potty = true;

[ 35 ]
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨsĂƌŝĂďůĞƐ

^ƵƌĞ͕LJŽƵŬŶŽǁǁŚĂƚpottyŝƐ͕ďƵƚǁŽƵůĚLJŽƵŬŶŽǁƚŚĂƚŝƚƌĞĨĞƌƌĞĚƚŽĂďĞĂƌŵĂŬŝŶŐĂďŝŐ
ƉŽƩLJŝŶƚŚĞǁŽŽĚƐ͍/ŬŶŽǁƌŝŐŚƚŶŽǁLJŽƵΖůůƵŶĚĞƌƐƚĂŶĚŝƚďĞĐĂƵƐĞLJŽƵũƵƐƚǁƌŽƚĞŝƚ͕ďƵƚ
ƐŝdžŵŽŶƚŚƐĚŽǁŶƚŚĞůŝŶĞ͕ĂŌĞƌǁƌŝƟŶŐŚƵŶĚƌĞĚƐŽĨŽƚŚĞƌƐĐƌŝƉƚƐĨŽƌĂůůƐŽƌƚƐŽĨĚŝīĞƌĞŶƚ
ƉƌŽũĞĐƚƐ͕LJŽƵΖůůůŽŽŬĂƚƚŚĂƚĂŶĚǁŽŶĚĞƌǁŚĂƚpottyŵĞĂŶƚ͘zŽƵΖůůŚĂǀĞƚŽƌĞĂĚƐĞǀĞƌĂůůŝŶĞƐ
ŽĨĐŽĚĞLJŽƵǁƌŽƚĞƚŽƚƌLJƚŽĮŐƵƌĞŝƚŽƵƚ͘

zŽƵŵĂLJůŽŽŬĂƚƚŚĞĐŽĚĞĂŶĚǁŽŶĚĞƌǁŚŽŝŶƚŚĞŝƌƌŝŐŚƚŵŝŶĚǁŽƵůĚǁƌŝƚĞƐƵĐŚĂƚĞƌƌŝďůĞ
ĐŽĚĞ͘^ŽƚĂŬĞƚŚĞƟŵĞƚŽǁƌŝƚĞĂĚĞƐĐƌŝƉƟǀĞĐŽĚĞƚŚĂƚĞǀĞŶĂƐƚƌĂŶŐĞƌĐĂŶůŽŽŬĂƚĂŶĚŬŶŽǁ
ǁŚĂƚLJŽƵŵĞĂŶ͘ĞůŝĞǀĞŵĞ͕ŝŶƐŝdžŵŽŶƚŚƐŽƌƉƌŽďĂďůLJůĞƐƐ͕LJŽƵǁŝůůďĞƚŚĂƚƐƚƌĂŶŐĞƌ͘

Begin variable names with lowercase


zŽƵƐŚŽƵůĚďĞŐŝŶĂǀĂƌŝĂďůĞŶĂŵĞǁŝƚŚůŽǁĞƌĐĂƐĞďĞĐĂƵƐĞŝƚŚĞůƉƐƚŽĚŝƐƟŶŐƵŝƐŚďĞƚǁĞĞŶ
ĂĐůĂƐƐŶĂŵĞĂŶĚĂǀĂƌŝĂďůĞŶĂŵĞŝŶLJŽƵƌĐŽĚĞ͘dŚĞŽŵƉŽŶĞŶƚŶĂŵĞƐ;ĐůĂƐƐŶĂŵĞƐͿ
ďĞŐŝŶǁŝƚŚĂĐĂƉŝƚĂůůĞƩĞƌ͘&ŽƌĞdžĂŵƉůĞ͕ŝƚΖƐĞĂƐLJƚŽŬŶŽǁƚŚĂƚTransform
/ ? 9 : > 9 ? ? G 9 @ C

transform
/ ? 9 B 9 . / 9 = > A D

dŚĞƌĞĂƌĞŽĨĐŽƵƌƐĞĞdžĐĞƉƟŽŶƐƚŽƚŚŝƐŐĞŶĞƌĂůƌƵůĞ͕ĂŶĚĞǀĞƌLJƉƌŽŐƌĂŵŵĞƌŚĂƐĂƉƌĞĨĞƌƌĞĚ
ǁĂLJƚŽƵƐĞůŽǁĞƌĐĂƐĞ͕ƵƉƉĞƌĐĂƐĞ͕ĂŶĚƉĞƌŚĂƉƐĂŶƵŶĚĞƌƐĐŽƌĞƚŽďĞŐŝŶĂǀĂƌŝĂďůĞŶĂŵĞ͘ƚ
ƚŚĞĞŶĚ͕LJŽƵǁŝůůŚĂǀĞƚŽĚĞĐŝĚĞƵƉŽŶĂŶĂŵŝŶŐĐŽŶǀĞŶƟŽŶLJŽƵůŝŬĞ͘/ĨLJŽƵƌĞĂĚƚŚĞhŶŝƚLJ
ĨŽƌƵŵƐ͕ƚŚĞƌĞĂƌĞƐŽŵĞŚĞĂƚĞĚĚĞďĂƚĞƐŽŶŶĂŵŝŶŐǀĂƌŝĂďůĞƐ͘/ŶƚŚŝƐŬ͕/ǁŝůůƐŚŽǁLJŽƵ
ŵLJƉƌĞĨĞƌƌĞĚǁĂLJ͕ďƵƚLJŽƵĐĂŶƵƐĞǁŚĂƚĞǀĞƌŝƐŵŽƌĞĐŽŵĨŽƌƚĂďůĞĨŽƌLJŽƵ͘

Using multi-word variable names


>ĞƚΖƐƵƐĞƚŚĞƐĂŵĞĞdžĂŵƉůĞĂŐĂŝŶĂƐĨŽůůŽǁƐ͗
public bool theBearMakesBigPottyInTheWoods = true;

zŽƵĐĂŶƐĞĞƚŚĂƚƚŚĞǀĂƌŝĂďůĞŶĂŵĞŝƐĂĐƚƵĂůůLJĞŝŐŚƚǁŽƌĚƐƐƋƵŝƐŚĞĚƚŽŐĞƚŚĞƌ͘^ŝŶĐĞǀĂƌŝĂďůĞ
ŶĂŵĞƐĐĂŶďĞŽŶůLJŽŶĞǁŽƌĚ͕ďĞŐŝŶƚŚĞĮƌƐƚǁŽƌĚǁŝƚŚĂůŽǁĞƌĐĂƐĞ͕ĂŶĚƚŚĞŶũƵƐƚĐĂƉŝƚĂůŝnjĞ
ƚŚĞĮƌƐƚůĞƩĞƌŽĨĞĂĐŚĂĚĚŝƟŽŶĂůǁŽƌĚ͘/ƚŐƌĞĂƚůLJŚĞůƉƐƚŽĐƌĞĂƚĞĚĞƐĐƌŝƉƟǀĞŶĂŵĞƐĂŶĚƐƟůů
ďĞŝŶŐĂďůĞƚŽƌĞĂĚŝƚ͘dŚĞƌĞΖƐĂǁŽƌĚĨŽƌƚŚŝƐĐĂůůĞĚĐĂŵĞůĂƐŝŶŐ
D

+DYHDJRKHUR²YLHZLQJPXOWLZRUGYDULDEOHVLQWKH,QVSHFWRUSDQHO
/ĂůƌĞĂĚLJŵĞŶƟŽŶĞĚƚŚĂƚĨŽƌpublicǀĂƌŝĂďůĞƐ͕hŶŝƚLJΖƐ ǁŝůůƐĞƉĂƌĂƚĞĞĂĐŚǁŽƌĚ
   

    

ĂŶĚĐĂƉŝƚĂůŝnjĞƚŚĞĮƌƐƚǁŽƌĚ͘'ŽĂŚĞĂĚ͕ĂĚĚƚŚĞƉƌĞǀŝŽƵƐƐƚĂƚĞŵĞŶƚƚŽLearningScript
ĂŶĚƐĞĞǁŚĂƚhŶŝƚLJĚŽĞƐǁŝƚŚŝƚŝŶƚŚĞ
    , 9 @ A > D

    

[ 36 ]
Ä  ¾  Æ Á ä E

Declaring a variable and its type


ǁĞǁĂŶƚƚŽƵƐĞŝŶĂƐĐƌŝƉƚŵƵƐƚďĞĚĞĐůĂƌĞĚŝŶĂƐƚĂƚĞŵĞŶƚ͘tŚĂƚĚŽĞƐƚŚĂƚ
ΠB A . - B 9 . / 9 = > A

ŵĞĂŶ͍tĞůů͕ďĞĨŽƌĞhŶŝƚLJĐĂŶƵƐĞĂǀĂƌŝĂďůĞ͖ǁĞŚĂǀĞƚŽƚĞůůhŶŝƚLJĂďŽƵƚŝƚĮƌƐƚ͘KŬƚŚĞŶ͕
ǁŚĂƚĂƌĞǁĞƐƵƉƉŽƐĞĚƚŽƚĞůůhŶŝƚLJĂďŽƵƚƚŚĞǀĂƌŝĂďůĞ͍

dŚĞƌĞĂƌĞŽŶůLJƚŚƌĞĞĂďƐŽůƵƚĞƌĞƋƵŝƌĞŵĞŶƚƐĨŽƌĚĞĐůĂƌŝŶŐĂǀĂƌŝĂďůĞĂŶĚƚŚĞLJĂƌĞĂƐĨŽůůŽǁƐ͗
Ž A 1 9 B A 2 + ? , A : / E - 2 1 A 2 - , A + E C 9 2 9 9 B 9 . / 9 = > A : 9 @ ? 2 + . A

‹
Ž A 1 9 B A 2 + , . + B / C A 9 @ 9 F A E + . 2 1 A B 9 . / 9 = > A

‹ tĞŚĂǀĞƚŽĞŶĚƚŚĞĚĞĐůĂƌĂƟŽŶƐƚĂƚĞŵĞŶƚǁŝƚŚĂƐĞŵŝͲĐŽůŽŶ

dŚĞĨŽůůŽǁŝŶŐŝƐƚŚĞƐLJŶƚĂdžǁĞƵƐĞĨŽƌĚĞĐůĂƌŝŶŐĂǀĂƌŝĂďůĞ͗

typeOfData nameOfTheVariable;

>ĞƚΖƐƵƐĞŽŶĞŽĨƚŚĞLearningScriptǀĂƌŝĂďůĞƐĂƐĂŶĞdžĂŵƉůĞ͖ƚŚĞĨŽůůŽǁŝŶŐŝƐŚŽǁƚŽ
ĚĞĐůĂƌĞĂǀĂƌŝĂďůĞǁŝƚŚƚŚĞďĂƌĞŵŝŶŝŵƵŵƌĞƋƵŝƌĞŵĞŶƚƐ͗
int number1;

dŚĞĨŽůůŽǁŝŶŐŝƐǁŚĂƚǁĞŚĂǀĞ͗

ZĞƋƵŝƌĞŵĞŶƚηϭ number1ĐĂŶƐƚŽƌĞ͕ǁŚŝĐŚŝŶƚŚŝƐĐĂƐĞŝƐĂŶ
/ ? 2 1 A 2 - , A + E C 9 2 9 2 1 9 2

‹
int
G F A 9 @ / @ 0 9 @ / @ 2 A 0 A .

‹ ZĞƋƵŝƌĞŵĞŶƚηϮŝƐĂŶĂŵĞǁŚŝĐŚŝƐnumber1
ZĞƋƵŝƌĞŵĞŶƚηϯ
/ ? 2 1 A ? A F / : + > + @ 9 2 2 1 A A @ C
(

1 A ? A : + @ C . A  < / . A F A @ 2 + E @ 9 F / @ 0 9 B 9 . / 9 = > A 1 9 ? 9 > . A 9 C - = A A @ C / ? : < ? ? A C D 1 A 2 1 / . C


 

ƌĞƋƵŝƌĞŵĞŶƚŽĨĞŶĚŝŶŐĂƐƚĂƚĞŵĞŶƚǁŝƚŚĂƐĞŵŝͲĐŽůŽŶŚĂƐďĞĞŶĚŝƐĐƵƐƐĞĚ͘dŚĞĮƌƐƚ
ƌĞƋƵŝƌĞŵĞŶƚŽĨƐƉĞĐŝĨLJŝŶŐƚŚĞƚLJƉĞŽĨĚĂƚĂǁŝůůďĞĐŽǀĞƌĞĚŶĞdžƚ͘

dŚĞĨŽůůŽǁŝŶŐŝƐǁŚĂƚǁĞŬŶŽǁĂďŽƵƚƚŚŝƐďĂƌĞŵŝŶŝŵƵŵĚĞĐůĂƌĂƟŽŶĂƐĨĂƌĂƐhŶŝƚLJ
/ ? : + @ : A . @ A C I

dŚĞƌĞΖƐŶŽpublicŵŽĚŝĮĞƌǁŚŝĐŚŵĞĂŶƐŝƚΖƐprivate
= - C A E 9 < > 2

/ƚǁŽŶΖƚĂƉƉĞĂƌŝŶƚŚĞ
    , 9 @ A > G + . = A 9 : : A ? ? / = > A E . + F + 2 1 A . ? : . / , 2 ?

‹     

number1ĚĞĨĂƵůƚƐƚŽnjĞƌŽ
1 A B 9 > < A ? 2 + . A C / @


[ 37 ]
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨsĂƌŝĂďůĞƐ

The most common built-in variable types


dŚŝƐƐĞĐƟŽŶŽŶůLJƐŚŽǁƐƚŚĞŵŽƐƚĐŽŵŵŽŶďƵŝůƚͲŝŶƚLJƉĞƐŽĨĚĂƚĂƚŚĂƚηƉƌŽǀŝĚĞƐĨŽƌƵƐĂŶĚ
2 1 9 2 B 9 . / 9 = > A ? : 9 @ ? 2 + . A D

O < ? 2 2 1 A ? A = 9 ? / : 2 - , A ? 9 . A , . A ? A @ 2 A C 1 A . A ? + 2 1 9 2 - + < < @ C A . ? 2 9 @ C 2 1 A : + @ : A , 2 + E 9 B 9 . / 9 = > A

= A / @ 0 9 = > A 2 + ? 2 + . A + @ > - 2 1 A 2 - , A + E 2 1 A C 9 2 9 - + < ? , A : / E - D 1 A : < ? 2 + F 2 - , A ? + E C 9 2 9 2 1 9 2 - + <




ǁŝůůĐƌĞĂƚĞůĂƚĞƌǁŝůůďĞĚŝƐĐƵƐƐĞĚŝŶ ƌĞĂƟŶŐƚŚĞ'ĂŵĞƉůĂLJŝƐ:ƵƐƚĂWĂƌƚŽĨƚŚĞ
Þ ß à G

— ’ á – î

P à Q / @ 2 1 A C / ? : < ? ? / + @ + E ¤ + 2 J - @ 2 9 ì D

dŚĞĨŽůůŽǁŝŶŐĐŚĂƌƚƐŚŽǁƐƚŚĞŵŽƐƚĐŽŵŵŽŶďƵŝůƚͲŝŶƚLJƉĞƐŽĨĚĂƚĂLJŽƵǁŝůůƵƐĞŝŶhŶŝƚLJ͗

Type Contents of the variable


int A simple integer, such as the number 3
float A number with a decimal, such as the number 3.14
string Characters in double quotes, such as, “Watch me go now”
bool A boolean, either true or false

ĂƌĞĨĞǁŵŽƌĞďƵŝůƚͲŝŶƚLJƉĞƐŽĨĚĂƚĂƚŚĂƚĂƌĞŶΖƚƐŚŽǁŶŝŶƚŚĞƉƌĞĐĞĚŝŶŐ
 û 

ĐŚĂƌƚ͘,ŽǁĞǀĞƌ͕ŽŶĐĞLJŽƵƵŶĚĞƌƐƚĂŶĚƚŚĞŵŽƐƚĐŽŵŵŽŶƚLJƉĞƐ͕LJŽƵΖůůŚĂǀĞŶŽ
 û       ý ü þ       û   ý   R ý ü     ÿ ý    ?  û ü     ÿ    

tĞŬŶŽǁƚŚĞŵŝŶŝŵƵŵƌĞƋƵŝƌĞŵĞŶƚƐƚŽĚĞĐůĂƌĞĂǀĂƌŝĂďůĞ͘,ŽǁĞǀĞƌ͕ǁĞĐĂŶĂĚĚŵŽƌĞ
ŝŶĨŽƌŵĂƟŽŶƚŽĂĚĞĐůĂƌĂƟŽŶƚŽƐĂǀĞŽƵƌƟŵĞĂŶĚĐŽĚŝŶŐ͘tĞΖǀĞĂůƌĞĂĚLJƐĞĞŶƐŽŵĞĞdžĂŵƉůĞƐ
LearningScriptŽĨĂƐƐŝŐŶŝŶŐǀĂůƵĞƐǁŚĞŶƚŚĞǀĂƌŝĂďůĞŝƐďĞŝŶŐĚĞĐůĂƌĞĚĂŶĚŶŽǁǁĞΖůů
/ @

ƐĞĞĨĞǁŵŽƌĞĞdžĂŵƉůĞƐ͘

7LPHIRUDFWLRQ²DVVLJQLQJYDOXHVZKLOHGHFODULQJWKHYDULDEOH
LearningScriptƵƐŝŶŐƚŚĞƚLJƉĞƐƐŚŽǁŶŝŶƚŚĞƉƌĞǀŝŽƵƐĐŚĂƌƚ͘
C C ? + F A F + . A B 9 . / 9 = > A ? 2 +
'

tŚŝůĞĚĞĐůĂƌŝŶŐƚŚĞǀĂƌŝĂďůĞƐ͕ĂƐƐŝŐŶƚŚĞŵǀĂůƵĞƐĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͘^ĞĞ
ŚŽǁƚŚĞLJĂƌĞƉƌĞƐĞŶƚĞĚŝŶƚŚĞ publicǀĂƌŝĂďůĞƐƐŽƚŚĞLJǁŝůů
    , 9 @ A > D 1 A ? A 9 . A 9 > >


    

9 , , A 9 . / @ 2 1 A     , 9 @ A > I

    

[ 38 ]
Ä  ¾  Æ Á ä E

What just happened?


dŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚƐŚŽǁƐǁŚĂƚhŶŝƚLJƉƌĞƐĞŶƚƐŝŶƚŚĞ
    , 9 @ A > I

    

ƉĂŶĞůǁŝƚŚƚŚĞǀĂůƵĞƐĂůƌĞĂĚLJƐĞƚ͘
1 A B 9 . / 9 = > A ? 9 . A C / ? , > 9 - A C / @ 2 1 A    


    

Where you declare a variable is important


zŽƵǁŝůůďĞ
C A : > 9 . / @ 0 9 @ C < ? / @ 0 B 9 . / 9 = > A ? / @ F 9 @ - , > 9 : A ? / @ 9 ? : . / , 2 D 1 A B 9 . / 9 = > A ? 2 1 9 2 1 9 B A
 !

ƐŚŽǁŶLJŽƵƐŽĨĂƌĂƌĞĐĂůůĞĚŵĞŵďĞƌǀĂƌŝĂďůĞƐ LearningScript
D 1 A - 9 . A F A F = A . ? + E 2 1 A


ĐůĂƐƐ͕ŶŽƚĚĞĐůĂƌĞĚǁŝƚŚŝŶĂŶLJŵĞƚŚŽĚ͘dŚĞƐĞŵĞŵďĞƌǀĂƌŝĂďůĞƐĂƌĞƚŚĞŽŶůLJǀĂƌŝĂďůĞƐƚŚĂƚ
ŚĂǀĞƚŚĞŽƉƟŽŶŽĨďĞŝŶŐĚŝƐƉůĂLJĞĚŝŶƚŚĞ
    , 9 @ A > + . = A / @ 0 9 : : A ? ? A C = - + 2 1 A . ? : . / , 2 ? D

    

^ŽǁŚĞƌĞŝŶƚŚĞĐůĂƐƐƐŚŽƵůĚƚŚĞŵĞŵďĞƌǀĂƌŝĂďůĞƐďĞĚĞĐůĂƌĞĚ͍dŚŝƐŝƐĂŶŽƚŚĞƌƐƵďũĞĐƚƚŚĂƚ
ŚĞĂƚĞĚĚŝƐĐƵƐƐŝŽŶƐ͘WĞƌƐŽŶĂůůLJ͕/ĚĞĐůĂƌĞƚŚĞŵĂƚƚŚĞƚŽƉŽĨĂĐůĂƐƐĮůĞďĞĨŽƌĞ
: 9 @ > A 9 C 2 +

9 @ - F A 2 1 + C ? 9 . A C A : > 9 . A C ? + 2 1 9 2 ? A A 2 1 A F 9 > > / @ + @ A , > 9 : A D # 2 1 A . , A + , > A > / ; A 2 + C A : > 9 . A


!

ǀĂƌŝĂďůĞƐĐůŽƐĞƚŽƚŚĞƉŽŝŶƚŽĨĮƌƐƚƵƐĞŝŶĂŵĞƚŚŽĚ͘

[ 39 ]
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨsĂƌŝĂďůĞƐ

C   ú û ý ü þ   û      û ? ú û ý ú    ÿ ú      þ ý ü ü ý ü þ ú  ú ÿ ÿ  ú 

þ ý ?    ú   ü  ú      ú    ÿ       û ? ú û ý ú    ÿ ú ü    ÿ 

ĞǀĞƌLJǁŚĞƌĞŝŶƚŚĞƐĐƌŝƉƚ͘

tĞǁŝůůĂůƐŽďĞĐƌĞĂƟŶŐǀĂƌŝĂďůĞƐŝŶŵĞƚŚŽĚƐ͘dŚĞƐĞǀĂƌŝĂďůĞƐĂƌĞĐĂůůĞĚĂƐůŽĐĂůǀĂƌŝĂďůĞƐ
ĂŶĚĂƌĞŶĞǀĞƌĚŝƐƉůĂLJĞĚŝŶƚŚĞhŶŝƚLJΖƐ
    , 9 @ A > G @ + . : 9 @ 2 1 A - = A 9 : : A ? ? A C = - + 2 1 A .

    

ǀĂƌŝĂďůĞƐĐŽƉĞ
? : . / , 2 ? D 1 / ? = . / @ 0 ? < ? 2 + 9 @ + 2 1 A . , . + 0 . 9 F F / @ 0 : + @ : A , 2 : 9 > > A C D


9DULDEOHVFRSH²GHWHUPLQLQJZKHUHDYDULDEOHFDQEHXVHG
sĂƌŝĂďůĞƐĐŽƉĞŝƐĂĨĂŶĐLJǁĂLJŽĨƐĂLJŝŶŐΗtŚĞƌĞŝŶƚŚĞƐĐƌŝƉƚĚŽĞƐĂǀĂƌŝĂďůĞĞdžŝƐƚΗ͘dŚĞ
ĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚĞdžƉůĂŝŶƐLJŽƵƚŚĞƐĐŽƉĞŽĨǀĂƌŝĂďůĞƐ͗

zŽƵŵŝŐŚƚŚĂǀĞŶŽƟĐĞĚƚŚĂƚƚŚĞƌĞĐƚĂŶŐƵůĂƌďůŽĐŬƐƐƚĂƌƚĂŶĚĞŶĚǁŝƚŚĐƵƌůLJͲďƌĂĐĞƐ͘:ƵƐƚ
AddTwoNumbers() /ŶƚƌŽĚƵĐŝŶŐƚŚĞƵŝůĚŝŶŐďůŽĐŬƐĨŽƌhŶŝƚLJ
> / ; A 2 1 A F A 2 1 + C / @ Þ ß à G

— ’ á – S

” ͕ƚŚĞĐŽĚĞďĞƚǁĞĞŶƚŚĞŽƉĞŶŝŶŐĐƵƌůLJͲďƌĂĐĞĂŶĚĂĐůŽƐŝŶŐĐƵƌůLJͲďƌĂĐĞŝƐĐĂůůĞĚĂĐŽĚĞ
• – ‘ — ’ œ

ďůŽĐŬ ďƐŽůƵƚĞůLJĂŶLJǁŚĞƌĞŝŶĂĐŽĚĞƚŚĂƚLJŽƵŚĂǀĞĂŶŽƉĞŶŝŶŐĐƵƌůLJͲďƌĂĐĞ͕ƚŚĞƌĞǁŝůůďĞĂ
D

ĐƵƌůLJͲďƌĂĐĞƚŽŵĂƚĐŚ͘ůůƚŚĞĐŽĚĞďĞƚǁĞĞŶƚŚĞƚǁŽďƌĂĐĞƐŝƐĂĐŽĚĞďůŽĐŬ͘
: > + ? / @ 0

[ 40 ]
Ä  ¾  Æ Á ä E

EŽƟĐĞƚŚĂƚƚŚĞĐŽĚĞďůŽĐŬƐĐĂŶďĞŶĞƐƚĞĚŝŶƐŝĚĞŽƚŚĞƌĐŽĚĞďůŽĐŬƐ͘

zŽƵŶŽƌŵĂůůLJĚŽŶΖƚũƵƐƚĐƌĞĂƚĞďĂƌĞďůŽĐŬƐŽĨĐŽĚĞǁŝƚŚĐƵƌůLJͲďƌĂĐĞƐůŝŬĞ/
ĚŝĚǁŝƚŚŽĚĞůŽĐŬϯ

T     ÿ ú û   ÿ  ú     ú û    û  ý ü þ ÿ ÿ 

ú ÿ ý ÿ  ú     ü  ÿ   ý ü þ ÿ  ú     ü  ÿ ú ü    ÿ
ý ÿ   ú     ý ÿ U  ÿ  

 

ĚĞŵŽŶƐƚƌĂƚĞŚŽǁƚŚĞƐĐŽƉĞŽĨĂǀĂƌŝĂďůĞǁŽƌŬƐ͕ĂŶĚǁŚĞƌĞĂǀĂƌŝĂďůĞĞdžŝƐƚƐ
ú ü ý ÿ  ÿ  ú   

dŚĞĨŽůůŽǁŝŶŐŝƐǁŚĂƚLJŽƵŚĂǀĞ͗

>ŝŶĞϭϲ͗string block3 = "Block 3 text";

string block3
1 A , . A : A C / @ 0 > / @ A C A : > 9 . A ? 9 > + : 9 > B 9 . / 9 = > A @ 9 F A C D 1 / ? B 9 . / 9 = > A A ì / ? 2 ? / @
 

ŽĚĞůŽĐŬϯ block3
2 1 A : + C A = > + : ; 2 1 9 2 / ? > 9 = A > A C D E - + < 2 . - 2 + < ? A 2 1 A B 9 . / 9 = > A + < 2 ? / C A + E
!

ŽĚĞůŽĐŬϯ ŽĚĞůŽĐŬϮ ŽĚĞůŽĐŬϭ͕hŶŝƚLJǁŝůůŐŝǀĞLJŽƵĂŶĞƌƌŽƌŵĞƐƐĂŐĞ


G ? < : 1 9 ? / @ + .

block3ĚŽĞƐŶΖƚĞdžŝƐƚ͘
? 9 - / @ 0 2 1 9 2 B 9 . / 9 = > A

block3ŝƐƚŚĞĐŽĚĞďůŽĐŬĚĞĮŶĞĚďLJƚŚĞĐƵƌůLJͲďƌĂĐĞƐŽĨůŝŶĞƐϭϯ
1 A ? : + , A + E 2 1 A B 9 . / 9 = > A


ĂŶĚϭϴ͘

EŽǁůĞƚΖƐůŽŽŬĂƚƚŚĞblock1
B 9 . / 9 = > A I

>ŝŶĞϲ͗string block1 = "Block 1 text";

string block1
1 A , . A : A C / @ 0 > / @ A C A : > 9 . A ? 9 2 - , A F A F = A . B 9 . / 9 = > A @ 9 F A C D 1 / ? B 9 . / 9 = > A
 

ŽĚĞůŽĐŬϭ
A ì / ? 2 ? / @ 2 1 A : + C A = > + : ; 2 1 9 2 / ? > 9 = A > A C D 1 / ? : + C A = > + : ; = A 0 / @ ? + @ > / @ A L 9 @ C


block1ĐĂŶďĞƵƐĞĚĞǀĞƌLJǁŚĞƌĞ͕ŝŶĐůƵĚŝŶŐŽĚĞ
A @ C ? + @ > / @ A 4 5 D 1 / ? F A 9 @ ? 2 1 A B 9 . / 9 = > A


ůŽĐŬϮĂŶĚŽĚĞůŽĐŬϯďĞĐĂƵƐĞ͕ƚŚĞLJĂƌĞĂůƐŽǁŝƚŚŝŶŽĚĞůŽĐŬϭ block1
D 1 A B 9 . / 9 = > A


ŽĚĞůŽĐŬϮ ŽĚĞůŽĐŬϯŽŶůŝŶĞϭϰ͘
/ ? < ? A C / @ + @ > / @ A 6 5 G 9 @ C / @

block1ǀĂƌŝĂďůĞŝƐƚŚĞĐŽĚĞďůŽĐŬĚĞĮŶĞĚďLJƚŚĞĐƵƌůLJͲďƌĂĐĞƐďĞƚǁĞĞŶ
1 A ? : + , A + E 2 1 A


> / @ A ? L 9 @ C 4 5 D

3RSTXL]²NQRZLQJKRZWRGHFODUHDYDULDEOH
Yϭ͘tŚĂƚŝƐƚŚĞƉƌŽƉĞƌǁĂLJƚŽŶĂŵĞĂǀĂƌŝĂďůĞ͍

YϮ͘,ŽǁĚŽLJŽƵŵĂŬĞĂǀĂƌŝĂďůĞĂƉƉĞĂƌŝŶƚŚĞhŶŝƚLJΖƐ ƉĂŶĞů͍
   

    

Yϯ͘ĂŶĂůůǀĂƌŝĂďůĞƐŝŶĂƐĐƌŝƉƚƐŚŽǁŝŶƚŚĞ ƉĂŶĞů͍
   

    

Yϰ͘ĂŶĂǀĂƌŝĂďůĞƐƚŽƌĞĂŶLJƚLJƉĞŽĨĚĂƚĂ͍

[ 41 ]
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨsĂƌŝĂďůĞƐ

Summary
tĞĮƌƐƚĐŽǀĞƌĞĚŚŽǁƚŽǁƌŝƚĞĂηƐƚĂƚĞŵĞŶƚ͕ĞƐƉĞĐŝĂůůLJƚŚĞƐĞŵŝͲĐŽůŽŶƚŽƚĞƌŵŝŶĂƚĞ
ĂƐƚĂƚĞŵĞŶƚ͘ůůƚŚĞŽŵƉŽŶĞŶƚƉƌŽƉĞƌƟĞƐƐŚŽǁŶŝŶƚŚĞ
    , 9 @ A > 9 . A F A F = A .

    

ǀĂƌŝĂďůĞƐŝŶƚŚĞŽŵƉŽŶĞŶƚΖƐĐůĂƐƐ͘DĞŵďĞƌǀĂƌŝĂďůĞƐĐĂŶďĞƐŚŽǁŶŝŶƚŚĞ
    , 9 @ A > G

    

ŽƌĂĐĐĞƐƐĞĚďLJŽƚŚĞƌƐĐƌŝƉƚƐǁŚĞŶƚŚĞǀĂƌŝĂďůĞŝƐĚĞĐůĂƌĞĚĂƐpublic
D 1 A 2 - , A + E C 9 2 9 9


ǀĂƌŝĂďůĞĐĂŶƐƚŽƌĞŝƐƐƉĞĐŝĮĞĚǁŚĞŶŝƚΖƐĚĞĐůĂƌĞĚ͘&ŝŶĂůůLJ͕ǁĞůĞĂƌŶĞĚƚŚĂƚǀĂƌŝĂďůĞƐĐŽƉĞ
ĚĞƚĞƌŵŝŶĞƐǁŚĞƌĞŝƚŝƐĂůůŽǁĞĚƚŽďĞƵƐĞĚ͘

EŽǁƚŚĂƚǁĞΖǀĞůĞĂƌŶĞĚĂďŽƵƚǀĂƌŝĂďůĞƐ͕ǁĞΖƌĞƌĞĂĚLJƚŽůĞĂƌŶƚŚĞĚĞƚĂŝůƐŽĨηŵĞƚŚŽĚƐƚŚĂƚ
ǁŝůůƵƐĞƚŚĞǀĂƌŝĂďůĞƐǁĞĐƌĞĂƚĞʹǁŚŝĐŚŝƐƚŚĞƚŽƉŝĐŽĨƚŚĞŶĞdžƚĐŚĂƉƚĞƌ͘

[ 42 ]
*HWWLQJLQWRWKH'HWDLOVRI0HWKRGV
4
/ŶƚŚĞƉƌĞǀŝŽƵƐĐŚĂƉƚĞƌ͕LJŽƵǁĞƌĞŝŶƚƌŽĚƵĐĞĚƚŽĂǀĂƌŝĂďůĞΖƐƐĐŽƉĞͶǁŚĞƌĞ
ĂǀĂƌŝĂďůĞĞdžŝƐƚƐĂŶĚŝƐĂůůŽǁĞĚƚŽďĞƵƐĞĚ͘dŚĞƐĐŽƉĞŝƐĚĞƚĞƌŵŝŶĞĚďLJƚŚĞ
ΗŽƉĞŶŝŶŐΗĂŶĚΗĐůŽƐŝŶŐΗĐƵƌůLJďƌĂĐĞƐ͘dŚĞƉƵƌƉŽƐĞŽĨƚŚŽƐĞĐƵƌůLJďƌĂĐĞƐŝƐƚŽĂĐƚ
ĂƐĂĐŽŶƚĂŝŶĞƌĨŽƌĂďůŽĐŬŽĨĞdžĞĐƵƚĂďůĞĐŽĚĞ͕ĂĐŽĚĞďůŽĐŬ͘/ŶƐĞĐŽŶĚĐŚĂƉƚĞƌLJŽƵ
ƐĂǁƚŚĂƚĂŵĞƚŚŽĚŝƐĂĐŽĚĞďůŽĐŬƚŚĂƚĐĂŶĞdžĞĐƵƚĞďLJũƵƐƚĐĂůůŝŶŐƚŚĞŵĞƚŚŽĚΖƐ
ŶĂŵĞ͘/ƚΖƐƚŝŵĞƚŽƐĞĞƚŚĞŝŵƉŽƌƚĂŶĐĞŽĨĐŽĚĞďůŽĐŬƐĂŶĚƚŚĞǀĂƌŝĂďůĞƐƵƐĞĚŝŶ
ƚŚĞŵ͘ŵĞƚŚŽĚĚĞĨŝŶĞƐĂĐŽĚĞďůŽĐŬǁŚŝĐŚďĞŐŝŶƐĂŶĚĞŶĚƐǁŝƚŚĐƵƌůLJďƌĂĐĞƐ͘

/ŶƚŚŝƐĐŚĂƉƚĞƌǁĞǁŝůůĐŽǀĞƌƚŚĞĨĞĂƚƵƌĞƐŽĨŵĞƚŚŽĚƐ͗

‹ ŶĚŝŶŐŵĞƚŚŽĚĚĞĮŶŝƟŽŶƐǁŝƚŚĐƵƌůLJďƌĂĐĞƐ
? / @ 0 F A 2 1 + C ? / @ 9 ? : . / , 2
)

‹
9 F / @ 0 F A 2 1 + C ? , . + , A . > -
$

‹ ĞĮŶŝŶŐĂŵĞƚŚŽĚ
* 9 > > / @ 0 9 F A 2 1 + C

‹
A 2 < . @ / @ 0 9 B 9 > < A E . + F 9 F A 2 1 + C
"

hƐŝŶŐhŶŝƚLJΖƐUpdate() Start()
9 @ C F A 2 1 + C ?

sĂƌŝĂďůĞƐĂƌĞƚŚĞĮƌƐƚŵĂũŽƌďƵŝůĚŝŶŐďůŽĐŬŽĨη͕ŵĞƚŚŽĚƐĂƌĞƚŚĞƐĞĐŽŶĚ͕ƐŽůĞƚΖƐĚŝǀĞ
/ @ 2 + F A 2 1 + C ? D
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ

(QGLQJDPHWKRGGHÀQLWLRQXVLQJFXUO\EUDFHV
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨsĂƌŝĂďůĞƐ
2 2 1 A = A 0 / @ @ / @ 0 + E Þ ß à G - + < > A 9 . @ A C 9 = + < 2 * ž
'

— ’ á – é

ƐƚĂƚĞŵĞŶƚƐĂŶĚƚŚĞƌĞƋƵŝƌĞŵĞŶƚƚŽĞŶĚƚŚĞŵǁŝƚŚĂƐĞŵŝĐŽůŽŶ͘ŵĞƚŚŽĚĚĞĮŶŝƟŽŶŚĂƐ
ĂĚŝīĞƌĞŶƚƌĞƋƵŝƌĞŵĞŶƚ͘

ŵĞƚŚŽĚĚĞĮŶŝƟŽŶĞŶĚƐǁŝƚŚĂĐŽĚĞďůŽĐŬďĞƚǁĞĞŶĂƉĂŝƌŽĨĐƵƌůLJďƌĂĐĞƐ͘KEKd
A @ C

ĂŵĞƚŚŽĚĚĞĮŶŝƟŽŶǁŝƚŚĂƐĞŵŝĐŽůŽŶ͘

/ĨLJŽƵĚŽĂĐĐŝĚĞŶƚĂůůLJƉůĂĐĞĂƐĞŵŝĐŽůŽŶĂƚƚŚĞĞŶĚ͕DŽŶŽĞǀĞůŽƉǁŝůůŐůĂĚůLJƌĞŵŝŶĚ
LJŽƵǁŝƚŚĂŶĞƌƌŽƌŵĞƐƐĂŐĞƚŚĂƚLJŽƵΖƌĞŶŽƚƐƵƉƉŽƐĞĚƚŽƵƐĞĂƐĞŵŝĐŽůŽŶĂƚƚŚĞĞŶĚ
ŽĨĂŵĞƚŚŽĚĚĞĮŶŝƟŽŶ͘

Using methods in a script


ƚǁŽƌĞĂƐŽŶƐĨŽƌƵƐŝŶŐŵĞƚŚŽĚƐŝŶĂƐĐƌŝƉƚ͗
1 A . A 9 . A


+ , . + B / C A = A 1 9 B / + . 2 + 9 9 F A # =  A : 2
 %

‹ dŽĐƌĞĂƚĞƌĞƵƐĂďůĞƐĞĐƟŽŶƐŽĨĐŽĚĞ

V          ú     ý ü ú ÿ û ý   ý ÿ ý ü    ÿ

dŚĞĮƌƐƚƉƵƌƉŽƐĞŽĨĂŵĞƚŚŽĚŝƐƚŽǁŽƌŬǁŝƚŚƚŚĞŵĞŵďĞƌǀĂƌŝĂďůĞƐŽĨƚŚĞĐůĂƐƐ͘dŚĞ
ŵĞŵďĞƌǀĂƌŝĂďůĞƐƐƚŽƌĞĚĂƚĂƚŚĂƚΖƐŶĞĞĚĞĚĨŽƌĂŽŵƉŽŶĞŶƚƚŽŐŝǀĞĂ'ĂŵĞKďũĞĐƚŝƚƐ
ďĞŚĂǀŝŽƌ͘dŚĞǁŚŽůĞƌĞĂƐŽŶĨŽƌǁƌŝƟŶŐĂƐĐƌŝƉƚŝƐƚŽŵĂŬĞĂ'ĂŵĞKďũĞĐƚĚŽƐŽŵĞƚŚŝŶŐ
ŝŶƚĞƌĞƐƟŶŐ͘ŵĞƚŚŽĚŝƐƚŚĞƉůĂĐĞǁĞŵĂŬĞƚŚĞďĞŚĂǀŝŽƌĐŽŵĞƚŽůŝĨĞ͘

dŚĞƐĞĐŽŶĚƉƵƌƉŽƐĞŽĨĂŵĞƚŚŽĚŝƐƚŽĐƌĞĂƚĞĐŽĚĞďůŽĐŬƐƚŚĂƚǁŝůůďĞƵƐĞĚŽǀĞƌĂŶĚŽǀĞƌ
ĂŐĂŝŶ͘zŽƵĚŽŶΖƚǁĂŶƚƚŽďĞǁƌŝƟŶŐƚŚĞƐĂŵĞĐŽĚĞŽǀĞƌĂŶĚŽǀĞƌ͘/ŶƐƚĞĂĚ͕LJŽƵƉůĂĐĞƚŚĞ
ĐŽĚĞŝŶƚŽĂĐŽĚĞďůŽĐŬĂŶĚŐŝǀĞŝƚĂŶĂŵĞƐŽLJŽƵĐĂŶĐĂůůŝƚǁŚĞŶŶĞĞĚĞĚ͘

Naming methods properly


ůǁĂLJƐƵƐĞŵĞĂŶŝŶŐĨƵů
@ 9 F A ? E + . - + < . F A 2 1 + C ? D O < ? 2 > / ; A A ì , > 9 / @ A C E + . B 9 . / 9 = > A ? G / E - + <
!

ĚŽŶΖƚƵƐĞŐŽŽĚŶĂŵĞƐ͕ƚŚĞŶƐŝdžŵŽŶƚŚƐĨƌŽŵŶŽǁLJŽƵǁŝůůďĞƐĂĚ͘
J / @ : A F A 2 1 + C ? F 9 ; A 9 F A # =  A : 2 C + ? + F A 2 1 / @ 0 < ? A E < > G - + < ? 1 + < > C 0 / B A - + < . F A 2 1 + C 9
%

ŶĂŵĞƚŚĂƚƐŽƵŶĚƐůŝŬĞΗĂĐƟŽŶ͘Η&ŽƌĞdžĂŵƉůĞ͕JumpOverTheFence ClimbTheWall
+ . D

zŽƵĐĂŶůŽŽŬĂƚƚŚŽƐĞŶĂŵĞƐĂŶĚŬŶŽǁĞdžĂĐƚůLJǁŚĂƚƚŚĞŵĞƚŚŽĚŝƐŐŽŝŶŐƚŽĚŽ͘

[ 44 ]
Ä  ¾  Æ Á ä W

ŽŶΖƚŵĂŬĞƚŚĞŵƚŽŽƐŝŵƉůĞ͘^ƵƉƉŽƐĞLJŽƵŶĂŵĞĂŵĞƚŚŽĚWiggle͘^ƵƌĞLJŽƵŬŶŽǁǁŚĂƚ
tŝŐŐůĞŵĞĂŶƐƌŝŐŚƚŶŽǁ͕ďƵƚŝŶƐŝdžŵŽŶƚŚƐLJŽƵΖůůůŽŽŬĂƚƚŚĂƚĂŶĚƐĂLJΗtŝŐŐůĞ͍tŝŐŐůĞ
ǁŚĂƚ͍Η/ƚŽŶůLJƚĂŬĞƐĂŵŽŵĞŶƚƚŽďĞĂůŝƩůĞŵŽƌĞƉƌĞĐŝƐĞĂŶĚǁƌŝƚĞWiggleMyButt
D

EŽǁǁŚĞŶLJŽƵƐĞĞƚŚĂƚŵĞƚŚŽĚŶĂŵĞ͕LJŽƵΖůůŬŶŽǁĞdžĂĐƚůLJǁŚĂƚŝƚΖƐŐŽŝŶŐƚŽĚŽ͘

Begin method names with an uppercase letter


tŚLJ͍tĞĚŽƚŚŝƐƚŽŵĂŬĞŝƚĞĂƐŝĞƌƚŽƚĞůůƚŚĞĚŝīĞƌĞŶĐĞďĞƚǁĞĞŶǁŚĂƚŝƐĂĐůĂƐƐŽƌŵĞƚŚŽĚ͕
ĂŶĚǁŚĂƚŝƐĂǀĂƌŝĂďůĞ͘ůƐŽ͕DŝĐƌŽƐŽŌƐƵŐŐĞƐƚƐďĞŐŝŶŶŝŶŐ ŵĞƚŚŽĚŶĂŵĞƐǁŝƚŚĂŶ
  

X     

ůĞƩĞƌ͘/ĨƐŽŵĞŽŶĞĞůƐĞĞǀĞƌůŽŽŬƐĂƚLJŽƵƌĐŽĚĞ͕ƚŚĞLJǁŝůůĞdžƉĞĐƚƚŽƐĞĞŵĞƚŚŽĚŶĂŵĞƐ
ďĞŐŝŶŶŝŶŐǁŝƚŚĂŶ ůĞƩĞƌ͘
  

X     

8VLQJPXOWLZRUGQDPHVIRUDPHWKRG
? / @ 0 2 1 / ? A ì 9 F , > A 9 0 9 / @ I
)

void AddTwoNumbers ()
{
// Code goes here
}

zŽƵĐĂŶƐĞĞƚŚĞŶĂŵĞŝƐĂĐƚƵĂůůLJƚŚƌĞĞǁŽƌĚƐƐƋƵŝƐŚĞĚƚŽŐĞƚŚĞƌ͘^ŝŶĐĞŵĞƚŚŽĚŶĂŵĞƐĐĂŶ
ŽŶůLJŽŶĞǁŽƌĚ͕ƚŚĞĮƌƐƚǁŽƌĚďĞŐŝŶƐƵƉƉĞƌĐĂƐĞ͕ƚŚĞŶũƵƐƚĐĂƉŝƚĂůŝnjĞƚŚĞĮƌƐƚůĞƩĞƌŽĨĞĂĐŚ
ĂĚĚŝƟŽŶĂůǁŽƌĚ͘&ŽƌĞdžĂŵƉůĞ͕WĂƐĐĂůĂƐŝŶŐ͘

3DUHQWKHVHVDUHSDUWRIWKHPHWKRGQDPH
ŶĂŵĞĂůǁĂLJƐŝŶĐůƵĚĞƐĂƉĂŝƌŽĨƉĂƌĞŶƚŚĞƐĞƐŽŶƚŚĞĞŶĚ͘dŚĞƉĂƌĞŶƚŚĞƐĞƐŶŽƚ
1 A F A 2 1 + C


ŽŶůLJůĞƚLJŽƵŬŶŽǁƚŚĂƚƚŚĞŶĂŵĞŝƐĂŵĞƚŚŽĚ͕ďƵƚƚŚĞLJĚŽƐĞƌǀĞĂŶŝŵƉŽƌƚĂŶƚƉƵƌƉŽƐĞŽĨ
ĂůůŽǁŝŶŐLJŽƵƚŽŝŶƉƵƚƐŽŵĞĚĂƚĂŝŶƚŽƚŚĞŵĞƚŚŽĚǁŚĞŶŶĞĞĚĞĚ͘

'HÀQLQJDPHWKRGSURSHUO\
:ƵƐƚůŝŬĞĨŽƌǀĂƌŝĂďůĞƐ͕ǁĞŚĂǀĞƚŽůĞƚhŶŝƚLJŬŶŽǁĂďŽƵƚĂŵĞƚŚŽĚďĞĨŽƌĞǁĞĐĂŶƵƐĞŝƚ͘

ĞƉĞŶĚŝŶŐŽŶǁŚŽLJŽƵƚĂůŬƚŽ͕ƐŽŵĞǁŝůůƐĂLJǁĞŚĂǀĞƚŽĚĞĐůĂƌĞ ŽƚŚĞƌƐǁŝůůƐĂLJ
9 F A 2 1 + C G

ǁĞŚĂǀĞƚŽĚĞĮŶĞĂŵĞƚŚŽĚ͘tŚŝĐŚŝƐĐŽƌƌĞĐƚ͍/Ŷη͕ŝƚĚŽĞƐŶΖƚŵĂŬĞĂŶLJĚŝīĞƌĞŶĐĞ͘hƐĞ
ǁŚŝĐŚĞǀĞƌƚĞƌŵŚĞůƉƐLJŽƵůĞĂƌŶĞĂƐŝĞƌ͘/ůŝŬĞƚŽƐĂLJ/ΖŵĚĞĮŶŝŶŐĂŵĞƚŚŽĚΖƐĐŽĚĞďůŽĐŬ͕
ĚĞĐůĂƌŝŶŐ
@ + 2 1 / @ 0 > / ; A 9 ? / F , > A B 9 . / 9 = > A + @ 9 + @ A > / @ A ? 2 9 2 A F A @ 2 D

[ 45 ]
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ

7KHPLQLPXPUHTXLUHPHQWVIRUGHÀQLQJDPHWKRG
ŵŝŶŝŵƵŵƌĞƋƵŝƌĞŵĞŶƚƐĨŽƌĚĞĮŶŝŶŐĂŵĞƚŚŽĚ͗
1 A . A 9 . A 2 1 . A A


‹ dŚĞƚLJƉĞŽĨŝŶĨŽƌŵĂƟŽŶ͕ŽƌĚĂƚĂ͕ĂŵĞƚŚŽĚǁŝůůƌĞƚƵƌŶƚŽƚŚĞƉůĂĐĞǁŚĞƌĞƚŚĞ
ŵĞƚŚŽĚǁĂƐĐĂůůĞĚ
‹ dŚĞŶĂŵĞŽĨƚŚĞŵĞƚŚŽĚƐŚŽƵůĚďĞĨŽůůŽǁĞĚďLJĂƉĂŝƌŽĨƉĂƌĞŶƚŚĞƐĞƐ
, 9 / . + E : < . > - = . 9 : A ? ? 1 + < > C = A , . A ? A @ 2 E + . : + @ 2 9 / @ / @ 0 2 1 A : + C A = > + : ; I
'

returnDataType NameOfTheMethod ( )
{
}

LearningScript Start()
K + + ; / @ 0 9 2 + @ : A 9 0 9 / @ G + . 9 @ - @ / 2 - 0 A @ A . 9 2 A C ? : . / , 2 G 2 1 A
)

F A 2 1 + C 1 9 ? 2 1 A 2 1 . A A = 9 . A = + @ A F / @ / F < F . A  < / . A F A @ 2 ? E + . 9 F A 2 1 + C I
(

void Start ()
{
}

,ĞƌĞΖƐǁŚĂƚǁĞŚĂǀĞ͗

‹ KƵƌĮƌƐƚƌĞƋƵŝƌĞŵĞŶƚŝƐƚŚĞƚLJƉĞŽĨĚĂƚĂƚŚĞŵĞƚŚŽĚǁŝůůƌĞƚƵƌŶƚŽƚŚĞƉůĂĐĞŝŶƚŚĞ
ĐŽĚĞƚŚĂƚĐĂůůĞĚƚŚŝƐŵĞƚŚŽĚ͘dŚŝƐŵĞƚŚŽĚŝƐŶΖƚƌĞƚƵƌŶŝŶŐĂŶLJǀĂůƵĞ͕ƐŽŝŶƐƚĞĂĚŽĨ
ƐƉĞĐŝĨLJŝŶŐĂŶĂĐƚƵĂůƚLJƉĞŽĨĚĂƚĂ͕ƚŚĞŬĞLJǁŽƌĚvoid
/ ? < ? A C D 1 / ? / @ E + . F ? @ / 2 - 2 1 9 2
 )

@ + 2 1 / @ 0 / ? = A / @ 0 . A 2 < . @ A C E . + F 2 1 A F A 2 1 + C D

^ĞĐŽŶĚƌĞƋƵŝƌĞŵĞŶƚŝƐƚŚĞŵĞƚŚŽĚŶĂŵĞǁŚŝĐŚŝƐStart()
D

‹ >ĂƐƚƌĞƋƵŝƌĞŵĞŶƚŝƐƚŚĞĐƵƌůLJďƌĂĐĞƐ͕ǁŚŝĐŚĐŽŶƚĂŝŶƐƚŚĞĐŽĚĞƚŚĂƚĚĞĮŶĞƐǁŚĂƚƚŚĞ
F A 2 1 + C / ? 0 + / @ 0 2 + C + D

dŚŝƐĞdžĂŵƉůĞĨƵůĮůůƐƚŚĞďĂƌĞŵŝŶŝŵƵŵƌĞƋƵŝƌĞŵĞŶƚƐƚŽďĞĂŵĞƚŚŽĚ͘,ŽǁĞǀĞƌ͕ĂƐLJŽƵĐĂŶ
ƐĞĞ͕ƚŚĞƌĞΖƐŶŽĐŽĚĞŝŶƚŚĞĐŽĚĞďůŽĐŬ͕ƐŽǁŚĞŶStart()ŝƐĐĂůůĞĚďLJhŶŝƚLJ͕ŝƚĚŽĞƐŶΖƚĚŽ
ĂŶLJƚŚŝŶŐĂƚĂůů͕ďƵƚŝƚΖƐƐƟůůĂŵĞƚŚŽĚ͘EŽƌŵĂůůLJ͕ŝĨǁĞĂƌĞŶΖƚŐŽŝŶŐƚŽƵƐĞĂŵĞƚŚŽĚďLJĂĚĚŝŶŐ
ĐŽĚĞƚŽĂƐŬĞůĞƚŽŶŵĞƚŚŽĚĐƌĞĂƚĞĚďLJhŶŝƚLJ͕ǁĞĐĂŶƐŝŵƉůLJƌĞŵŽǀĞƚŚĞŵĨƌŽŵŽƵƌƐĐƌŝƉƚ͘/ƚΖƐ
ŶŽƌŵĂůůLJďĞƐƚƚŽƌĞŵŽǀĞƵŶƵƐĞĚĐŽĚĞĂŌĞƌƚŚĞƐĐƌŝƉƚŝƐĚŽŶĞďĞŝŶŐǁƌŝƩĞŶ͘

,ĞƌĞΖƐǁŚĂƚǁĞŬŶŽǁĂďŽƵƚƚŚŝƐďĂƌĞŵŝŶŝŵƵŵŵĞƚŚŽĚĚĞĮŶŝƟŽŶĂƐĨĂƌĂƐhŶŝƚLJ
/ ? : + @ : A . @ A C I

dŚĞƌĞΖƐŶŽƉƵďůŝĐŵŽĚŝĮĞƌ͕ǁŚŝĐŚŵĞĂŶƐƚŚŝƐŵĞƚŚŽĚŝƐprivate
= - C A E 9 < > 2 D

‹
1 A . A E + . A G 2 1 / ? F A 2 1 + C : 9 @ @ + 2 = A : 9 > > A C E . + F + 2 1 A . ? : . / , 2 ? D


‹ dŚĞƌĞΖƐŶŽĐŽĚĞŝŶƚŚĞĐŽĚĞďůŽĐŬ͘dŚĞƌĞĨŽƌĞ͕ƚŚŝƐŵĞƚŚŽĚĚŽĞƐŶΖƚĚŽĂŶLJƚŚŝŶŐ͕
ƐŽŝƚĐĂŶďĞƌĞŵŽǀĞĚŝĨǁĞǁŝƐŚ͘

[ 46 ]
Ä  ¾  Æ Á ä W

8QGHUVWDQGLQJSDUHQWKHVHV²ZK\DUHWKH\WKHUH"
KŶĞƚŚŝŶŐĨŽƌƐƵƌĞŝƐƚŚĂƚŝƚŵĂŬĞƐĞĂƐLJƚŽƌĞĐŽŐŶŝnjĞƚŚĂƚŝƚΖƐĂŵĞƚŚŽĚ͕ďƵƚǁŚLJĂƌĞƚŚĞLJƉĂƌƚ
ŽĨĂŵĞƚŚŽĚΖƐŶĂŵĞ͍

ĂůƌĞĂĚLJŬŶŽǁƚŚĂƚĂŵĞƚŚŽĚŝƐĂĐŽĚĞďůŽĐŬƚŚĂƚŝƐŐŽŝŶŐƚŽŐĞƚĐĂůůĞĚŵƵůƟƉůĞƟŵĞƐ͘dŚĂƚΖƐ
Ž A

ŽŶĞŽĨƚŚĞƌĞĂƐŽŶƐǁŚLJĂŵĞƚŚŽĚĐƌĞĂƚĞĚŝŶƚŚĞĮƌƐƚƉůĂĐĞ͕ƐŽǁĞĚŽŶΖƚŚĂǀĞƚŽǁƌŝƚĞƚŚĞƐĂŵĞ
ĐŽĚĞŽǀĞƌĂŶĚŽǀĞƌ͘ZĞŵĞŵďĞƌƚŚĞĚĚdǁŽEƵŵďĞƌƐ;ͿŵĞƚŚŽĚďĂĐŬŝŶŚĂƉƚĞƌϮ͘/ƚǁĂƐǀĞƌLJ
ƐŝŵƉůĞŵĞƚŚŽĚƵƐĞĚƚŽĞdžƉůĂŝŶƚŚĞĐŽŶĐĞƉƚŽĨĂŵĞƚŚŽĚĂŶĚŚŽǁƚŽĐĂůůŝƚ͘EŽǁŝƚΖƐƟŵĞƚŽ
2 9 ; A 2 1 A @ A ì 2 ? 2 A , 9 @ C > A 9 . @ 2 1 A < ? A E < > @ A ? ? + E 2 1 A , 9 . A @ 2 1 A ? A ? D

7LPHIRUDFWLRQ²DGGLQJFRGHEHWZHHQWKHSDUHQWKHVHV
tĞΖƌĞŐŽŝŶŐƚŽŵŽĚŝĨLJLearningScriptƚŽƐĞŶĚƐŽŵĞŝŶĨŽƌŵĂƟŽŶƚŽƚŚĞ
AddTwoNumbers()
F A 2 1 + C 2 + F 9 ; A / 2 F < : 1 F + . A < ? A E < > D

tŚLJǁŽƵůĚǁĞŶĞĞĚƚŽƐĞŶĚŝŶĨŽƌŵĂƟŽŶƚŽĂŵĞƚŚŽĚ͍

ƐĐƌŝƉƚŵĂLJŶĞĞĚƚŽĂĚĚƚǁŽŶƵŵďĞƌƐƐĞǀĞƌĂůƟŵĞƐ͕ďƵƚƚŚĞLJƉƌŽďĂďůLJǁŽŶΖƚĂůǁĂLJƐďĞ
ƚŚĞƐĂŵĞƚǁŽŶƵŵďĞƌƐ͘tĞĐŽƵůĚƉŽƐƐŝďůLJŚĂǀĞŚƵŶĚƌĞĚƐŽĨĚŝīĞƌĞŶƚĐŽŵďŝŶĂƟŽŶƐŽĨΗƚǁŽ
ŶƵŵďĞƌƐΗƚŽĂĚĚƚŽŐĞƚŚĞƌ͘dŚŝƐŵĞĂŶƐƚŚĂƚǁĞŶĞĞĚƚŽůĞƚƚŚĞŵĞƚŚŽĚŬŶŽǁ͕ǁŚŝĐŚƚǁŽ
ŶƵŵďĞƌƐŶĞĞĚƚŽďĞĂĚĚĞĚƚŽŐĞƚŚĞƌĂƚƚŚĞŵŽŵĞŶƚǁŚĞŶǁĞĐĂůůƚŚĞŵĞƚŚŽĚ͘

[ 47 ]
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ

ƉƌĞĐĞĚŝŶŐƐĐƌĞĞŶƐŚŽƚ͕ƉĞƌĨŽƌŵƚŚĞĨŽůůŽǁŝŶŐƐƚĞƉƐ͗
? / @ 0 2 1 A
)

ó ô

LearningScript
# , A @ / @ + @ + ¤ A B A > + , 2 + F + C / E - / 2 D
#

ĚĚůŝŶĞƐϲ͕ϳ͕ĂŶĚϴƚŽĚĞĐůĂƌĞƚŚƌĞĞŝŶƚĞŐĞƌǀĂƌŝĂďůĞƐ͘
õ ô

ĚĚůŝŶĞƐϮϮƚŽϮϲƚŽĚĞĮŶĞƚŚĞAddTwoNumbers()ŵĞƚŚŽĚǁŝƚŚƉĂƌĂŵĞƚĞƌƐ͘
ö ô

ĚĚůŝŶĞƐϭϮ͕ϭϯ͕ĂŶĚϭϰƚŽĐĂůůƚŚĞAddTwoNumbers()ƚŚƌĞĞƟŵĞƐ͘
ô
.

^ĂǀĞƚŚĞĮůĞ͘
ô
/

WůĂLJ
Y ô

* > / : ; + @ / @ @ / 2 - D
)

What just happened?


AddTwoNumbers()ŵĞƚŚŽĚŝƐĐĂůůĞĚƚŚƌĞĞƟŵĞƐŽŶůŝŶĞƐϭϮ͕
? 2 1 / ? ? : . / , 2 A ì A : < 2 A ? G 2 1 A
'

ϭϯ͕ĂŶĚϭϰ͘dŚĞŵĞƚŚŽĚΖƐĐŽĚĞďůŽĐŬĂĚĚƐƚǁŽŶƵŵďĞƌƐĂŶĚĚŝƐƉůĂLJƐƚŚĞƌĞƐƵůƚŝŶƚŚĞhŶŝƚLJ
ŽŶƐŽůĞ;ƐĞĞƚŚĞLJĞůůŽǁĂƌƌŽǁƐŝŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚͿ͗

ĐƵďďLJŚŽůĞ͘tŚĞŶǁĞĐĂůůAddTwoNumbers()
1 + ? A , 9 . A @ 2 1 A ? A ? 9 . A > / ; A 9 9 : + < , > A + E


ŶƵŵďĞƌƐĂƌĞƐƚƵīĞĚŝŶƚŽƚŚĞĐƵďďLJŚŽůĞ͘tŚĞŶƚŚĞĐŽĚĞďůŽĐŬĞdžĞĐƵƚĞƐ͕ŝƚƚĂŬĞƐƚŚŽƐĞ
ƚǁŽŶƵŵďĞƌƐŚĞůĚŝŶƚŚĞĐƵďďLJŚŽůĞĂŶĚƵƐĞƐƚŚĞŵŽŶůŝŶĞϮϰ͘

dŚĞƌĞΖƐĂƐƉĞĐŝĂůŶĂŵĞĨŽƌƚŚĂƚŝŶĨŽƌŵĂƟŽŶďĞƚǁĞĞŶƚŚĞƉĂƌĞŶƚŚĞƐĞƐŽĨĂŵĞƚŚŽĚ
ĚĞĮŶŝƟŽŶ͕ƐƵĐŚĂƐůŝŶĞϮϮͶƚŚĞĐŽĚĞŝƐĐĂůůĞĚƚŚĞŵĞƚŚŽĚƉĂƌĂŵĞƚĞƌƐ͘

6SHFLI\LQJDPHWKRG
VSDUDPHWHUV
ǁŽƌĚƉĂƌĂŵĞƚĞƌƐŝŶƚŚĞĚŝĐƟŽŶĂƌLJ͕LJŽƵƌďƌĂŝŶǁŝůůƉƌŽďĂďůLJƐĞŝnjĞƵƉ͘ůůŝƚ
E - + < > + + ; < , 2 1 A
!

ŵĞĂŶƐŝƐƚŚĂƚƚŚĞŵĞƚŚŽĚŚĂƐƚŽďĞĂďůĞƚŽƵƐĞƚŚĞŝŶĨŽƌŵĂƟŽŶLJŽƵƐĞŶĚŝƚ͕ƐŽLJŽƵƐŝŵƉůLJ
ŚĂǀĞƚŽƐƉĞĐŝĨLJƚŚĞƚLJƉĞŽĨĚĂƚĂƚŚĞŵĞƚŚŽĚŝƐĂůůŽǁĞĚƚŽƵƐĞ͘dŚĂƚΖƐŝƚ͕ŝƚΖƐǀĞƌLJƐŝŵƉůĞ͘

/ŶƚŚĞĞĂƌůŝĞƌƐĐƌĞĞŶƐŚŽƚ͕ŽŶůŝŶĞϮϮƚŚĞƌĞĚĂƌƌŽǁƐƉŽŝŶƚĞĚƚŽƚŚĞƚLJƉĞŽĨƚŚĞĚĞĐůĂƌĞĚ
firstNumber secondNumber int integer͘EŽǁŶŽƟĐĞƚŚĞ
B 9 . / 9 = > A ? 9 @ C D 1 A 2 - , A / ? G + .


ƌĞĚĂƌƌŽǁƉŽŝŶƟŶŐƚŽƚŚĞǀĂƌŝĂďůĞƐnumber1 number2 number3


G G 9 @ C D 1 A - 9 . A 9 > ? + + E 2 1 A


int intƐŝŶĐĞƚŚĞLJƐƚŽƌĞƚŚĞŶƵŵďĞƌƐƚŚĂƚǁŝůůďĞ
2 - , A D 1 A ? A B 9 . / 9 = > A ? 1 9 B A 2 + = A + E 2 - , A


ĂĚĚĞĚŝŶƚŚĞŵĞƚŚŽĚ͕ǁŚŝĐŚƚŚĞƉĂƌĂŵĞƚĞƌƐƐƉĞĐŝĨLJǁŝůůďĞŽĨƚLJƉĞint
D

[ 48 ]
Ä  ¾  Æ Á ä W

^ŽŶŽǁŐŽůŽŽŬŝŶƚŚĞĚŝĐƟŽŶĂƌLJĂŐĂŝŶ͘zŽƵǁŝůůƉƌŽďĂďůLJƐĞĞƚŚĞǁŽƌĚůŝŵŝƚŝŶƚŚĞƌĞ
ƐŽŵĞǁŚĞƌĞ͘dŚĂƚΖƐǁŚĂƚLJŽƵĚŝĚǁŚĞŶLJŽƵƐƉĞĐŝĮĞĚƚŚĞƚLJƉĞŽĨĚĂƚĂ͕ĂŶŝŶƚĞŐĞƌ͕ƚŚĂƚƚŚĞ
ŵĞƚŚŽĚǁŝůůƵƐĞ͘zŽƵƐĞƚƐŽŵĞůŝŵŝƚƐŽŶǁŚĂƚΖƐĂůůŽǁĞĚ͘

KŬ͕ƐŽLJŽƵΖƌĞƐĞƫŶŐƉĂƌĂŵĞƚĞƌƐ͕ŽƌůŝŵŝƚƐ͕ŽŶƚŚĞƚLJƉĞŽĨĚĂƚĂƚŚĞŵĞƚŚŽĚĐĂŶƵƐĞ͕ďƵƚ
ǁŚĂƚĞdžĂĐƚůLJŝƐĂƉĂƌĂŵĞƚĞƌ͍tĞůů͕ƚŚĞĮƌƐƚƉĂƌĂŵĞƚĞƌŝƐĐĂůůĞĚfirstNumber͕ĂŶĚǁŚĂƚŝƐ
firstNumberĚŽŝŶŐ͍/ƚΖƐƐƚŽƌŝŶŐĂǀĂůƵĞƚŚĂƚǁŝůůďĞƵƐĞĚŝŶƚŚĞĐŽĚĞďůŽĐŬŽŶůŝŶĞϮϰ͘tŚĂƚ
ĚŽǁĞĐĂůůƚŚŝŶŐƐƚŚĂƚƐƚŽƌĞĚĂƚĂ͍dŚĂƚΖƐƌŝŐŚƚ͕ǀĂƌŝĂďůĞƐ͘sĂƌŝĂďůĞƐĂƌĞƵƐĞĚĞǀĞƌLJǁŚĞƌĞ͘

ZĞŵĞŵďĞƌ͕ĂǀĂƌŝĂďůĞŝƐũƵƐƚĂƐƵďƐƟƚƵƚĞŶĂŵĞĨŽƌƚŚĞ
? ú    ý  ú   ú    ÿ  û  ÿ

? - + < : 9 @ ? A A + @ > / @ A 4 4 + E 2 1 A : + C A = > + : ; G 2 1 + ? A B 9 . / 9 = > A ? 9 . A = A / @ 0 9 C C A C 2 + 0 A 2 1 A . D


'

How many parameters can a method have?


ŶĞĞĚƚŽŵĂŬĞƚŚĞŵĞƚŚŽĚǁŽƌŬƉƌŽƉĞƌůLJ͘tŚĞƚŚĞƌǁĞǁƌŝƚĞŽƵƌ
Ž A : 9 @ 1 9 B A 9 ? F 9 @ - 9 ? - + <

ŽǁŶĐƵƐƚŽŵŵĞƚŚŽĚƐ͕ŽƌLJŽƵƵƐĞƚŚĞŵĞƚŚŽĚƐŽĨƚŚĞƐĐƌŝƉƟŶŐƌĞĨĞƌĞŶĐĞ͕ƚŚĞƉĂƌĂŵĞƚĞƌƐ
ƚŚĂƚĂƌĞĚĞĮŶĞĚĂƌĞǁŚĂƚƚŚĞŵĞƚŚŽĚǁŝůůƌĞƋƵŝƌĞƚŽďĞĂďůĞƚŽƉĞƌĨŽƌŵŝƚƐƐƉĞĐŝĮĞĚƚĂƐŬ͘

Calling a method
/ŶƚŚĞĞĂƌůŝĞƌƐĐƌĞĞŶƐŚŽƚ͕ůŽŽŬĂƚůŝŶĞƐϭϮĂŶĚϮϮ͘ŽLJŽƵŶŽƟĐĞĂŶLJƚŚŝŶŐĚŝīĞƌĞŶƚ͍
dŚĞLJƐƵƌĞĚŽŶΖƚůŽŽŬƚŚĞƐĂŵĞ͕ĚŽƚŚĞLJ͍dŚĞǀĂƌŝĂďůĞŶĂŵĞƐ͕ǁŚŝĐŚƚŚĞďůƵĞĂƌƌŽǁƐ
ƉŽŝŶƚƚŽ͕ĂƌĞĚŝīĞƌĞŶƚ͘

ƚŚĂƚĐŽĚĞĂŶĚƐĂLJŝŶŐΗtŚĂƚƚŚĞŚĞĐŬ͍ΗƚŚĞŶĚŽŶΖƚĨĞĞůďĂĚ͘tŚĞŶ/ǁĂƐ
E - + < 9 . A > + + ; / @ 0 9 2
!

ĮƌƐƚůĞĂƌŶŝŶŐƚŚĞĐŽŶĐĞƉƚŽĨĐĂůůŝŶŐŵĞƚŚŽĚƐ͕/ŚĂĚŽŶĞŚĞĐŬŽĨƟŵĞƵŶĚĞƌƐƚĂŶĚŝŶŐŚŽǁƚŚĞ
ĐŽĚĞǁŽƌŬĞĚ͘/ƚŝƐ͕ŝŶĨĂĐƚ͕ǀĞƌLJƐŝŵƉůĞ͕ďƵƚ/ĨŽƵŐŚƚǁŝƚŚƚŚŝƐĨŽƌĚĂLJƐďĞĨŽƌĞƚŚĞůŝŐŚƚƐĐĂŵĞ
ŽŶ͘/ĐŽŶƐƵůƚĞĚĂůůƚŚĞƉƌŽŐƌĂŵŵŝŶŐŬƐ/ŚĂĚ͕ǁƌŝƩĞŶďLJĂůůƚŚĞĞdžƉĞƌƚƐ͕ĂŶĚŶŽƚĂƐŝŶŐůĞ
ŽŶĞŚĂĚƚŚĞĚĞĐĞŶĐLJƚŽĞdžƉůĂŝŶŚŽǁƚŚĞĐŽĚĞǁŽƌŬĞĚ͘ůůƚŚŽƐĞŬĂƵƚŚŽƌƐũƵƐƚĂƐƐƵŵĞĚ
/ΖĚΗŐĞƚŝƚΗďĞĐĂƵƐĞĂŌĞƌĂůů͕ƚŚĞLJǁĞƌĞĞdžƉĞƌƚƐ͘

/ŚĂĚƚŽĮŐƵƌĞŝƚŽƵƚŵLJƐĞůĨǁŝƚŚƚƌŝĂůĂŶĚĞƌƌŽƌƚĞƐƟŶŐ͘ŌĞƌŵĂŶLJĚĂLJƐ͕/ĮŶĂůůLJŚĂĚŵLJ
ΗŚͲ,ĂΗŵŽŵĞŶƚ͘

8VLQJDUJXPHQWVLQWKHSDUHQWKHVHVRIDPHWKRG
ƌŐƵŵĞŶƚƐ͍͍tŚŽĚƌĞĂŵƐƵƉƚŚĞƐĞǁŽƌĚƐ͍tĞĂůůŬŶŽǁǁŚĂƚĂŶĂƌŐƵŵĞŶƚŝƐ͘ǀĞƌLJŽŶĞŽĨ
ƵƐŚĂƐďĞĞŶŝŶǀŽůǀĞĚŝŶĂŶĂƌŐƵŵĞŶƚĂƚƐŽŵĞƟŵĞ͘tĞůů͕ƐŽŵĞŽŶĞĚĞĐŝĚĞĚƚŚŝƐǁŽƵůĚďĞĂ
ŐŽŽĚǁŽƌĚƚŽŵĞĂŶƐŽŵĞƚŚŝŶŐŝŶƉƌŽŐƌĂŵŵŝŶŐ͘^ƵƌĞĞŶŽƵŐŚ͕ůŽŽŬŝƚƵƉŝŶĂĚŝĐƟŽŶĂƌLJĂŶĚ
LJŽƵΖůůƉƌŽďĂďůLJƐĞĞƐŽŵĞƚŚŝŶŐůŝŬĞƚŚŝƐ͗ΗǀĂůƵĞŽƌĂĚĚƌĞƐƐƉĂƐƐĞĚƚŽĂƉƌŽĐĞĚƵƌĞŽƌĨƵŶĐƟŽŶ
ĂƚƚŚĞƟŵĞŽĨĐĂůů͘Η
[ 49 ]
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ

zƵƉ͕ƚŚĂƚĞdžƉůĂŝŶƐŝƚƚŽƚĂůůLJ͕ƌŝŐŚƚ͍KŬ͕ůĞƚΖƐƌĞĂůůLJůĞĂƌŶǁŚĂƚĂƌŐƵŵĞŶƚƐĂƌĞ͕ĂŶĚǁŚĂƚƚŚĞLJĚŽ
/ @ : + C A D @ 2 1 A , . A B / + < ? ? : . A A @ ? 1 + 2 G > + + ; 9 2 > / @ A 6 4 I
!

AddTwoNumbers(number1, number2);

ĞƚǁĞĞŶƚŚĞ number1 number2͘dŚŽƐĞƚǁŽǀĂƌŝĂďůĞƐ


, 9 . A @ 2 1 A ? A ? 9 . A 2 1 A B 9 . / 9 = > A ? G 9 @ C

9 . A : 9 > > A C 2 1 A 9 . 0 < F A @ 2 ? 2 1 9 2 9 . A = A / @ 0 , 9 ? ? A C 2 + 2 1 A F A 2 1 + C D @ ? / F , > A 2 A . F ? G 2 1 A B 9 > < A ?


!

ƐƚŽƌĞĚŝŶƚŚĞƐĞƚǁŽǀĂƌŝĂďůĞƐ͕ϮĂŶĚϯ͕ĂƌĞƉůĂĐĞĚŝŶƚŚĞĐƵďďLJŚŽůĞ͘

KŶůŝŶĞϮϮ͕ƚŚĞŵĞƚŚŽĚĚĞĮŶĞƐƚŚĂƚŝƚƚĂŬĞƐŝŶƚǁŽƉĂƌĂŵĞƚĞƌƐĐĂůůĞĚfirstNumber
9 @ C

secondNumber͘dŚŝƐŵĞĂŶƐ͕ŽĨĐŽƵƌƐĞ͕ƚŚĂƚƐŽŵĞǁŚĞƌĞŝŶƚŚŝƐƉƌŽĐĞƐƐƚŚĞƐĞƉĂƌĂŵĞƚĞƌƐ
ǁŝůůŚĂǀĞƚŽŚĂǀĞǀĂůƵĞƐĂƐƐŝŐŶĞĚƚŚĞŵ͘

,ĞƌĞΖƐƚŚĞƐĞĐƌĞƚ/ĮŶĂůůLJĚŝƐĐŽǀĞƌĞĚŽŶŵLJŽǁŶ͘ĞŚŝŶĚƚŚĞƐĐĞŶĞƐ͕ǁŚĞƌĞLJŽƵĐĂŶΖƚƐĞĞ͕
ƚŚĞǀĂůƵĞƐϮĂŶĚϯ͕ƚŚĂƚĂƌĞŝŶƚŚĞĐƵďďLJŚŽůĞ͕ĂƌĞŶŽǁĂƐƐŝŐŶĞĚƚŽƚŚĞǀĂƌŝĂďůĞƐ
firstNumber secondNumber
9 @ C D

zŽƵĚŽŶΖƚƐĞĞƚŚŝƐĐŽĚĞ͕ďƵƚŝĨLJŽƵĐŽƵůĚƐĞĞŝƚ͕ǁŚĂƚŚĂƉƉĞŶƐǁŝƚŚĂƌŐƵŵĞŶƚƐĂŶĚ
, 9 . 9 F A 2 A . ? > + + ; ?  < ? 2 > / ; A 2 1 / ? I

firstNumber = number1;
secondNumber = number2;

number1ĐŽŶƚĂŝŶĞĚƚŚĞǀĂůƵĞϮ͕ŶŽǁƚŚĞƉĂƌĂŵĞƚĞƌ
J / @ : A 2 1 A 9 . 0 < F A @ 2

‹
firstNumber
: + @ 2 9 / @ ? 2 1 A B 9 > < A 4

number2ĐŽŶƚĂŝŶĞĚƚŚĞǀĂůƵĞϯ͕ŶŽǁƚŚĞƉĂƌĂŵĞƚĞƌ
J / @ : A 2 1 A 9 . 0 < F A @ 2

‹
secondNumber
: + @ 2 9 / @ ? 2 1 A B 9 > < A 7

EŽǁƚŚĞĐŽĚĞďůŽĐŬŝƐĞdžĞĐƵƚĞĚĂŶĚƚŚĞǀĂůƵĞϱŝƐĚŝƐƉůĂLJĞĚŝŶƚŚĞhŶŝƚLJŽŶƐŽůĞ
D

ƐLJŽƵĐĂŶŶŽǁƐĞĞ͕ƚŚĞŶĂŵĞƐŽĨƚŚĞĂƌŐƵŵĞŶƚƐĂŶĚƚŚĞŶĂŵĞƐŽĨƚŚĞƉĂƌĂŵĞƚĞƌƐĚŽŶΖƚ
ŶĞĞĚƚŽďĞƚŚĞƐĂŵĞ͘dŚĞLJΖƌĞũƵƐƚŶĂŵĞƐŽĨǀĂƌŝĂďůĞƐƵƐĞĚŝŶĚŝīĞƌĞŶƚƉůĂĐĞƐŝŶLJŽƵƌĐŽĚĞ͘
dŚĞLJΖƌĞũƵƐƚƐƵďƐƟƚƵƚĞƐĨŽƌƚŚĞĂĐƚƵĂůǀĂůƵĞƐĞĂĐŚĐŽŶƚĂŝŶ͕ĂŶĚŝƚΖƐƚŚĞǀĂůƵĞƚŚĂƚΖƐŐĞƫŶŐ
2 . 9 @ ? E A . . A C E . + F 2 1 A F A 2 1 + C : 9 > > 2 + 2 1 A F A 2 1 + C : + C A = > + : ; D

5HWXUQLQJDYDOXHIURPDPHWKRG
EŽǁŝƚΖƐƟŵĞƚŽĚŝƐĐŽǀĞƌƚŚĞΗƉŽǁĞƌΗĨĞĂƚƵƌĞŽĨƵƐŝŶŐĂŵĞƚŚŽĚ͘dŚŝƐƵƐƵĂůůLJŵĞĂŶƐƐĞŶĚŝŶŐ
ĚĂƚĂƚŽƚŚĞŵĞƚŚŽĚ͕ǁŚŝĐŚLJŽƵũƵƐƚůĞĂƌŶĞĚƚŽĚŽ͕ƚŚĞŶŚĂǀĞƚŚĞŵĞƚŚŽĚƌĞƚƵƌŶĂǀĂůƵĞďĂĐŬ͘
AddTwoNumbers()ŵĞƚŚŽĚĚŽǁĂƐƚĂŬĞƚŚĞƌĞƐƵůƚŽĨĂĚĚŝŶŐƚǁŽ
8 . A B / + < ? > - G 9 > > - + < 1 9 C 2 1 A

ŶƵŵďĞƌƐĂŶĚĚŝƐƉůĂLJŝƚƚŽhŶŝƚLJΖƐŽŶƐŽůĞ͘

EŽǁ͕ŝŶƐƚĞĂĚŽĨĚŝƐƉůĂLJŝŶŐƚŚĞƌĞƐƵůƚĚŝƌĞĐƚůLJ͕LJŽƵΖƌĞŐŽŝŶŐƚŽŵŽĚŝĨLJAddTwoNumbers()
ƚŽƌĞƚƵƌŶƚŚĞƌĞƐƵůƚŽĨƚŚĞĂĚĚŝƟŽŶďĂĐŬƚŽƚŚĞƉůĂĐĞƚŚĞŵĞƚŚŽĚǁĂƐĐĂůůĞĚ͘

[ 50 ]
Ä  ¾  Æ Á ä W

ZĞŵĞŵďĞƌ͕/ƚŽůĚLJŽƵƚŚĂƚǁŚĞŶLJŽƵĐĂůůĂŵĞƚŚŽĚ͕ŝƚΖƐũƵƐƚĂƐƵďƐƟƚƵƚĞ
ĨŽƌƚŚĞĐŽĚĞďůŽĐŬƚŚĂƚǁŝůůďĞĞdžĞĐƵƚĞĚ͘/ƚΖƐůŝŬĞƚĂŬŝŶŐĂůůƚŚĞĐŽĚĞŝŶƚŚĞ
ŵĞƚŚŽĚΖƐĐŽĚĞďůŽĐŬĂŶĚƉůĂĐŝŶŐŝƚƌŝŐŚƚƚŚĞƌĞǁŚĞƌĞƚŚĞŵĞƚŚŽĚǁĂƐĐĂůůĞĚ͘

ƐƟůůǀĞƌLJƐŝŵƉůĞ͕ďƵƚŝƚƐŚŽǁƐŚŽǁƚŚŝƐƐƵďƐƟƚƵƟŽŶǁŽƌŬƐĂŶĚ
1 A @ A ì 2 ? : . A A @ ? 1 + 2 / ?


ŚŽǁƌĞƚƵƌŶŝŶŐĂǀĂůƵĞĨƌŽŵĂŵĞƚŚŽĚǁŽƌŬƐ͘

7LPHIRUDFWLRQ²UHWXUQLQJDYDOXHIURP$GG7ZR1XPEHUV
LearningScript AddTwoNumbers()ŵĞƚŚŽĚƚǁŝĐĞĂŶĚŐĞƚĂŐƌĂŶĚ
+ C / E - 2 + : 9 > > 2 1 A
#

ŵĞƚŚŽĚǁŚŽƐĞƐŽůĞƉƵƌƉŽƐĞŝƐƚŽĚŝƐƉůĂLJƚŚĞŐƌĂŶĚƚŽƚĂůƌĞƐƵůƚ͘
2 + 2 9 > D > ? + : . A 9 2 A 9 @ + 2 1 A .
'

ó ô

LearningScript
# , A @ / @ + @ + ¤ A B A > + , 2 + F + C / E - / 2 D
#

KŶůŝŶĞϭϮ͕ĚĞĐůĂƌĞƚŚĞĂŶƐǁĞƌǀĂƌŝĂďůĞ;ƚŚŝƐƐƚĂƚĞŵĞŶƚŝƐŽŶϯůŝŶĞƐͿ͘
õ ô

KŶůŝŶĞƐϭϵƚŽϮϯ͕ƌĞĚĞĮŶĞƚŚĞAddTwoNumbers()ŵĞƚŚŽĚǁŝƚŚĂƌĞƚƵƌŶƚLJƉĞ͘
ö ô

KŶůŝŶĞƐϮϱƚŽϮϴ͕ĚĞĮŶĞƚŚĞDisplayResult()
ô
.

F A 2 1 + C D

^ĂǀĞƚŚĞĮůĞ͘
ô
/

Y ô

* > / : ; + @ 8 > 9 - / @ @ / 2 - D
)

[ 51 ]
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ

What just happened?


ŝŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͕ƚŚĞƌĞƐƵůƚŝƐϭϰ͘,ŽǁĞǀĞƌ͕ƚŚĞŵĂŝŶĐŽŶĐĞƉƚ
? - + < : 9 @ ? A A
'

2 + > A 9 . @ E . + F 2 1 / ? A ì 9 F , > A / ? 2 1 / ? I

‹ tŚĞŶĂŵĞƚŚŽĚƌĞƚƵƌŶƐĂǀĂůƵĞ͕ŝƚΖƐĂƚLJƉĞŽĨĚĂƚĂũƵƐƚůŝŬĞĂǀĂƌŝĂďůĞǁŽƵůĚƐƚŽƌĞ
@ E 9 : 2 G 2 1 A B 9 > < A . A 2 < . @ A C E . + F 9 F A 2 1 + C : + < > C A 9 ? / > - = A ? 2 + . A C / @ 9 B 9 . / 9 = > A
!

ŶĂůLJƐŝƐŽĨƚŚĞĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϬĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
void Start()

Start()
@ / 2 - : 9 > > ? 2 1 A F A 2 1 + C + @ : A + @ > - D
)

ŽŶůŝŶĞƐϭϮƚŽϭϰĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗;EŽƚĞ͗/ŚĂǀĞƉƵƚƚŚŝƐ
1 A : + C A


‹
ƐŝŶŐůĞƐƚĂƚĞŵĞŶƚŽŶƚŚƌĞĞůŝŶĞƐĨŽƌĂďĞƩĞƌƐĐƌĞĞŶƐŚŽƚ͘Ϳ
int answer =
AddTwoNumbers(number1, number2) +
AddTwoNumbers(number1, number3);

ůůƚŚŝƐůŝŶĞĚŽĞƐŝƐĂĚĚƚǁŽŶƵŵďĞƌƐĂŶĚƐƚŽƌĞƚŚĞƌĞƐƵůƚŝŶĂǀĂƌŝĂďůĞ
ŶĂŵĞĚΗĂŶƐǁĞƌΗ͘
AddTwoNumbers(number1, number2)ŽŶůŝŶĞϭϵ͘
/ . ? 2 2 1 A . A / ? 9 : 9 > > 2 +
H

number1 number2
1 A 9 . 0 < F A @ 2 ? 9 @ C ? A @ C 2 1 A / @ 2 A 0 A . ? 4 9 @ C 7 2 + 2 1 A F A 2 1 + C


ƉĂƌĂŵĞƚĞƌƐŽŶůŝŶĞϭϵ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϵĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
int AddTwoNumbers(int firstNumber, int secondNumber);
firstNumber
1 A / @ 2 A 0 A . ? 4 9 @ C 7 9 . A 9 ? ? / 0 @ A C 2 + 2 1 A , 9 . 9 F A 2 A . B 9 . / 9 = > A ?


secondNumber.
9 @ C

‹ dŚĞĐŽĚĞŽŶůŝŶĞϮϭĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
int result = firstNumber + secondNumber;
1 A @ < F = A . ? 4 9 @ C 7 9 . A 9 C C A C 9 @ C ? 2 + . A C / @ 2 1 A C A : > 9 . A C B 9 . / 9 = > A . A ? < > 2 D


[ 52 ]
Ä  ¾  Æ Á ä W

‹ dŚĞĐŽĚĞŽŶůŝŶĞϮϮĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
return result;

dŚĞŝŶƚĞŐĞƌϱ͕ƐƚŽƌĞĚŝŶƚŚĞǀĂƌŝĂďůĞƌĞƐƵůƚ͕ŝƐƌĞƚƵƌŶĞĚďĂĐŬƚŽůŝŶĞϭϮ͕ǁŚĞƌĞƚŚĞ
ŵĞƚŚŽĚǁĂƐĐĂůůĞĚ͘

‹ ĂĐŬƚŽƚŚĞĐŽĚĞŽŶůŝŶĞϭϮǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
AddTwoNumbers(number1, number2)͕ŶŽǁƐŝƚƐƚŚĞŝŶƚĞŐĞƌϱ͘
Ž 1 A . A - + < ? A A

dŚĞƐƵďƐƟƚƵƟŽŶŚĂƐƚĂŬĞŶƉůĂĐĞ͘
EŽǁ͕ůŝŶĞϭϮĐŽŶƟŶƵĞƐŝƚƐĞdžĞĐƵƟŽŶǁŝƚŚĂŶŽƚŚĞƌĐĂůůƚŽ͗
AddTwoNumbers(number1, number3)ŽŶůŝŶĞϭϵ
dŚĞŽŶůLJĚŝīĞƌĞŶĐĞŝƐƚŚĂƚƚŚĞĂƌŐƵŵĞŶƚƐŚĂǀĞĐŚĂŶŐĞĚ͘
number1 number3ƐĞŶĚƚŚĞŝŶƚĞŐĞƌƐϮĂŶĚϳƚŽƚŚĞŵĞƚŚŽĚ
1 A 9 . 0 < F A @ 2 ? 9 @ C


ƉĂƌĂŵĞƚĞƌƐŽŶůŝŶĞϭϵ͘

‹ ĂĐŬƚŽƚŚĞĐŽĚĞŽŶůŝŶĞϭϵĂŐĂŝŶǁŝƚŚŝƚƐĞdžƉůĂŶĂƟŽŶ͗
dŚĞŝŶƚĞŐĞƌƐϮĂŶĚϳĂƌĞĂƐƐŝŐŶĞĚƚŽƚŚĞƉĂƌĂŵĞƚĞƌǀĂƌŝĂďůĞƐfirstNumber
secondNumber
9 @ C D

‹ dŚĞĐŽĚĞŽŶůŝŶĞϮϭĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
2 7
9 @ C 9 . A 9 C C A C 9 @ C ? 2 + . A C / @ . A ? < > 2 D

‹ dŚĞĐŽĚĞŽŶůŝŶĞϮϮǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
dŚĞŝŶƚĞŐĞƌϵ͕ƐƚŽƌĞĚŝŶƌĞƐƵůƚ͕ŝƐƌĞƚƵƌŶĞĚďĂĐŬƚŽůŝŶĞϭϮ͕ǁŚĞƌĞƚŚĞŵĞƚŚŽĚ
ǁĂƐĐĂůůĞĚ͘

‹ ĂĐŬƚŽƚŚĞĐŽĚĞŽŶůŝŶĞϭϮĂŐĂŝŶǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
AddTwoNumbers(number1, number3)͕ŶŽǁƐŝƚƐƚŚĞŝŶƚĞŐĞƌ9
Ž 1 A . A - + < ? A A D

dŚĞƐƵďƐƟƚƵƟŽŶŚĂƐƚĂŬĞŶƉůĂĐĞ͘
EŽǁůŝŶĞϭϮĐŽŶƟŶƵĞƐŝƚƐĞdžĞĐƵƟŽŶ͘dŚĞƌĞŝƐĂƉůƵƐƐŝŐŶďĞƚǁĞĞŶƚŚĞƚǁŽŵĞƚŚŽĚ
ĐĂůůƐǁŚŝĐŚŵĞĂŶƐ5 9 14ŝƐŶŽǁ
9 @ C 9 . A 9 C C A C 2 + 0 A 2 1 A . 9 @ C 2 1 A . A ? < > 2 9 @ 2 / @ 2 A 0 A .

ƐƚŽƌĞĚŝŶƚŚĞǀĂƌŝĂďůĞĂŶƐǁĞƌ͘
Start()ŵĞƚŚŽĚĐŽĚĞďůŽĐŬŶŽǁĐŽŶƟŶƵĞƐĞdžĞĐƵƟŽŶŽŶůŝŶĞϭϲ͘
1 A


‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϲĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
DisplayResult(answer);

DisplayResult()
1 / ? / ? : 9 > > / @ 0 2 1 A F A 2 1 + C + @ > / @ A 4 L D


/ƚƚĂŬĞƐŽŶĞĂƌŐƵŵĞŶƚ͘dŚĞĂƌŐƵŵĞŶƚƵƐĞĚŝƐƚŚĞǀĂƌŝĂďůĞĂŶƐǁĞƌǁŚŝĐŚƐƚŽƌĞƐ
int
9 B 9 > < A + E 2 - , A D

dŚĞĂƌŐƵŵĞŶƚĂŶƐǁĞƌƐĞŶĚƐƚŚĞŝŶƚĞŐĞƌϭϰƚŽƚŚĞŵĞƚŚŽĚƉĂƌĂŵĞƚĞƌŽŶůŝŶĞϮϱ͘
[ 53 ]
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ

‹ dŚĞĐŽĚĞŽŶůŝŶĞϮϱǁŝƚŚŝƚƐĚĞƐĐƌŝƉƚŽŶ͗
void DisplayResult(int total)

dŚĞŝŶƚĞŐĞƌϭϰŝƐĂƐƐŝŐŶĞĚƚŽƚŚĞƉĂƌĂŵĞƚĞƌǀĂƌŝĂďůĞƚŽƚĂů͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞϮϳĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
Debug.Log("The grand total is: " + total);

ŽŶƐŽůĞŝŶĐůƵĚĞƐĂůŝƩůĞƉĞĞŬŝŶƚŽƚŚĞŶĞdžƚĐŚĂƉƚĞƌ͘
1 / ? + < 2 , < 2 2 + 2 1 A @ / 2 -
 )

^ŽŵĞƚĞdžƚŝƐĚŝƐƉůĂLJĞĚĂƐǁĞůůĂƐƚŚĞǀĂůƵĞƐƚŽƌĞĚŝŶƚŚĞǀĂƌŝĂďůĞƚŽƚĂů͘
ŽŶƐŽůĞ dŚĞŐƌĂŶĚƚŽƚĂůŝƐ͗ϭϰ
1 A @ / 2 - C / ? , > 9 - ? D
 )

Start()ŵĞƚŚŽĚŝƐĚŽŶĞĞdžĞĐƵƟŶŐŝƚƐĐŽĚĞ͘^ŝŶĐĞƚŚĞƌĞŝƐŶŽĨƵƌƚŚĞƌĐŽĚĞ
1 A


LearningScript
/ @ 2 + A ì A : < 2 A G 2 1 A ? : . / , 2 / ? C + @ A D

+DYHDJRKHUR²DGGWZRPRUHQXPEHUVWRJHWKHU
number2
. - F + C / E - / @ 0 > / @ A 6 4 2 + 9 C C 2 1 A @ < F = A . ? 2 + 0 A 2 1 A . 2 1 9 2 9 . A ? 2 + . A C / @ 2 1 A B 9 . / 9 = > A ?


number3͘zŽƵǁŝůůŚĂǀĞƚŽŝŶĐůƵĚĞĂŶĂĚĚŝƟŽŶĂůĐĂůůƚŽAddTwoNumbers()
9 @ C D 1 A . A ? < > 2 / @


ŽŶƐŽůĞ dŚĞŐƌĂŶĚƚŽƚĂůŝƐ͗Ϯϰ
2 1 A ? 1 + < > C = A D

Calling a method is a logic detour


ƐLJŽƵĐĂŶƐĞĞďLJĨŽůůŽǁŝŶŐƚŚĞĐŽĚĞĂŶĂůLJƐŝƐ͕ĐŽĚĞŝƐĞdžĞĐƵƚĞĚŽŶĞƐƚĞƉĂƚĂƟŵĞ͘,ŽǁĞǀĞƌ͕
ĐĂůůŝŶŐĂŵĞƚŚŽĚĚŽĞƐƐĞŶĚĐŽĚĞĞdžĞĐƵƟŽŶŽŶĂĚĞƚŽƵƌ͘dŚĞŵĞƚŚŽĚŝƐƚŚĞŶĞdžĞĐƵƚĞĚŽŶĞ
ůŝŶĞĂƚĂƟŵĞƵŶƟůƚŚĞĞŶĚŽĨƚŚĞŵĞƚŚŽĚŝƐƌĞĂĐŚĞĚ͘/ĨƚŚĞŵĞƚŚŽĚƌĞƚƵƌŶƚLJƉĞŝƐǀŽŝĚ͕
ƚŚĞŶĞdžĞĐƵƟŽŶƌĞƐƚĂƌƚƐĨƌŽŵƚŚĞƉŽŝŶƚǁŚĞƌĞƚŚĞŵĞƚŚŽĚǁĂƐĐĂůůĞĚ͘/ĨƚŚĞŵĞƚŚŽĚƌĞƚƵƌŶƐ
ĂǀĂůƵĞ͕ƚŚĞŶƚŚĞǀĂůƵĞƌĞƚƵƌŶĞĚŝƐƐƵďƐƟƚƵƚĞĚĂƚƚŚĞƉůĂĐĞƚŚĞŵĞƚŚŽĚǁĂƐĐĂůůĞĚ͕ƚŚĞŶ
ĞdžĞĐƵƟŽŶƌĞƐƚĂƌƚƐĨƌŽŵƚŚĞƉŽŝŶƚŽĨƐƵďƐƟƚƵƟŽŶ͘

Using Unity's Update and Start methods


ǀĞƌLJƟŵĞLJŽƵĐƌĞĂƚĞĂƐĐƌŝƉƚŝŶhŶŝƚLJ͕ƚŚĞƐĞƚǁŽƐŬĞůĞƚŽŶŵĞƚŚŽĚƐĂƌĞŝŶĐůƵĚĞĚ͘dŚĂƚΖƐ
MonoBehaviour
= A : 9 < ? A 2 1 A - 9 . A . 9 2 1 A . / F , + . 2 9 @ 2 D 1 A ? A 9 . A 2 1 A F + ? 2 : + F F + @ > - < ? A C


ŵĞƚŚŽĚƐ͕ƐĞĞƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚĨŽƌŽƚŚĞƌƐ͘/ůŝŬĞƚŽĐĂůůƚŚĞƐĞhŶŝƚLJΖƐŵĂŐŝĐŵĞƚŚŽĚƐ
ďĞĐĂƵƐĞLJŽƵĚŽŶΖƚĐĂůůƚŚĞƐĞŵĞƚŚŽĚƐ͕hŶŝƚLJĚŽĞƐ͘/ƚΖƐƵƐƵĂůůLJŝŵƉŽƌƚĂŶƚƚŚĂƚĂƚůĞĂƐƚŽŶĞ
MonoBehaviour
F A 2 1 + C / ? / @ : > < C A C / @ 9 @ / 2 - ? : . / , 2 2 + : 9 < ? A 2 1 A ? : . / , 2 2 + A ì A : < 2 A D ? 9 -
) !

< ? < 9 > > - = A : 9 < ? A + 2 1 A . F A 2 1 + C ? / @ 2 1 A ? : . / , 2 F 9 - = A : 9 > > A C E . + F 9 @ + 2 1 A . ? : . / , 2 + . : > 9 ? ? D

,ŽǁĚŽ/ŬŶŽǁƚŚĞƐĞƚǁŽŵĞƚŚŽĚƐĂƌĞĐĂůůĞĚďLJhŶŝƚLJĂŶĚƚŚĂƚƚŚĞLJĂƌĞMonoBehaviour
ŵĞƚŚŽĚƐ͍,ĞƌĞ͕ƚŚĞhŶŝƚLJ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ
/ ? - + < . E . / A @ C D

[ 54 ]
Ä  ¾  Æ Á ä W

,ĞƌĞΖƐũƵƐƚĂƉŽƌƟŽŶŽĨƚŚĞŵĞƚŚŽĚƐhŶŝƚLJĐĂŶĐĂůůŝŶĂƐĐƌŝƉƚ͘dŚŝƐŝƐĨƌŽŵƚŚĞ^ĐƌŝƉƟŶŐ
MonoBehavior
 D O < ? 2 ? A 9 . : 1 E + . I
$

 %     

>ŽŽŬĂƚůŝŶĞϰŽĨ>ĞĂƌŶŝŶŐ^ĐƌŝƉƚ
I

public class LearningScript : MonoBehaviour

LearningScript MonoBehaviour
1 / ? > / @ A ? 9 - ? 2 1 9 2 / @ 1 A . / 2 ? E . + F D @ - ? : . / , 2 2 1 9 2 / @ 1 A . / 2 ?
 '

MonoBehaviourǁŝůůĂƵƚŽŵĂƟĐĂůůLJĐĂůůƚŚĞŵĞƚŚŽĚƐUpdate() Start()
E . + F 9 @ C / E 2 1 A - 9 . A

ŝŶƚŚĞƐĐƌŝƉƚ͘dŚĞƌĞĨŽƌĞ͕ŝĨLJŽƵǁĂŶƚ͕LJŽƵĐĂŶĐƌĞĂƚĞĂƐĐƌŝƉƚŝŶDŽŶŽĞǀĞůŽƉŝŶƐƚĞĂĚŽĨhŶŝƚLJ͕
MonoBehavior : MonoBehaviourĂŌĞƌƚŚĞĐůĂƐƐŶĂŵĞ͘
 < ? 2 1 9 B A / 2 / @ 1 A . / 2 E . + F = - 9 C C / @ 0 I

WůĞĂƐĞŶŽƟĐĞƚŚĞĐŽůŽŶ
 ú  ü   ÿ    ý ü   

The Start method is called one time


hŶŝƚLJĐĂůůƐƚŚŝƐŵĞƚŚŽĚŽŶůLJŽŶĞƟŵĞ͘tŚĞŶƚŚĞ'ĂŵĞKďũĞĐƚLJŽƵƌƐĐƌŝƉƚŝƐĂƩĂĐŚĞĚƚŽŝƐ
ĮƌƐƚƵƐĞĚŝŶLJŽƵƌƐĐĞŶĞ͕ƚŚĞStart()
F A 2 1 + C / ? : 9 > > A C D 1 / ? F A 2 1 + C / ? , . / F 9 . / > - < ? A C 2 +


ŝŶŝƟĂůŝnjĞ͕ŽƌƐĞƚƵƉ͕ƚŚĞŵĞŵďĞƌǀĂƌŝĂďůĞƐŝŶLJŽƵƌƐĐƌŝƉƚ͘dŚŝƐĂůůŽǁƐĞǀĞƌLJƚŚŝŶŐŝŶLJŽƵƌƐĐƌŝƉƚ
Update()ŝƐĐĂůůĞĚĨŽƌƚŚĞĮƌƐƚƟŵĞ͘
2 + = A . A 9 C - 2 + 0 + = A E + . A

zŽƵΖǀĞƉƌŽďĂďůLJŶŽƟĐĞĚ LearningScript
9 . A F 9 ; / @ 0
2 1 9 2 F 9 @ - + E 2 1 A A ì 9 F , > A ? < ? A C / @
!

Start()͘dŚĞƐĞĞdžĂŵƉůĞƐǁĞƌĞŶΖƚŝŶŝƟĂůŝnjŝŶŐĂŶLJĐŽĚĞ͕/ǁĂƐũƵƐƚƚĂŬŝŶŐĂĚǀĂŶƚĂŐĞ
< ? A + E

Start()ŝƐŽŶůLJĐĂůůĞĚŽŶĐĞ͕ĚŝƐƉůĂLJŝŶŐŽƵƚƉƵƚƚŽƚŚĞŽŶƐŽůĞǁŽƵůĚ͕
+ E 2 1 A E 9 : 2 2 1 9 2 ? / @ : A

ƚŚĞƌĞĨŽƌĞ͕ŽŶůLJďĞĚŝƐƉůĂLJĞĚŽŶĐĞ͕ǁŚŝĐŚũƵƐƚŵĂĚĞŝƚĞĂƐŝĞƌƚŽƐĞĞƚŚĞŽƵƚƉƵƚĚŝƐƉůĂLJĞĚ͘

The Update method is called over and over and over…


^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ͕LJŽƵǁŝůůŶŽƟĐĞƚŚĂƚĂǀĂƐƚŵĂũŽƌŝƚLJ
? - + < ? 2 < C - 2 1 A ? 9 F , > A : + C A / @ 2 1 A
'

Update()
+ E 2 1 A : + C A / ? / @ 2 1 A F A 2 1 + C D ? - + < . 0 9 F A . < @ ? G 2 1 A J : A @ A / ? C / ? , > 9 - A C F 9 @ -
'

ƟŵĞƐƉĞƌƐĞĐŽŶĚ͘dŚŝƐŝƐĐĂůůĞĚ&ƌĂŵĞƐƉĞƌ^ĞĐŽŶĚ &W^ ŌĞƌĞĂĐŚĨƌĂŵĞŝƐĚŝƐƉůĂLJĞĚ͕


G + . D

Update()
2 1 A F A 2 1 + C / ? : 9 > > A C = - @ / 2 - 2 + . < @ - + < . : + C A D
)

[ 55 ]
'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ

Update() ĐĂůůĞĚĞǀĞƌLJĨƌĂŵĞ͕ŝƚĂůůŽǁƐLJŽƵƌŐĂŵĞƚŽĚĞƚĞĐƚŝŶƉƵƚ͕ƐƵĐŚĂƐŵŽƵƐĞ
J / @ : A / ?

ĐůŝĐŬƐĂŶĚŬĞLJƉƌĞƐƐĞƐ͕ĞǀĞƌLJĨƌĂŵĞ͘hƐĞƌŝŶƉƵƚŝƐŽŶĞŽĨƚŚĞƚŽƉŝĐƐǁĞĂƌĞĂďŽƵƚƚŽĐŽǀĞƌŝŶ
2 1 A @ A ì 2 : 1 9 , 2 A . D

3RSTXL]²XQGHUVWDQGLQJPHWKRGRSHUDWLRQ
Yϭ͘tŚĂƚĂƌĞƚŚĞŵŝŶŝŵƵŵƌĞƋƵŝƌĞŵĞŶƚƐĨŽƌĚĞĮŶŝŶŐĂŵĞƚŚŽĚ͍

YϮ͘tŚĂƚŝƐƚŚĞƉƵƌƉŽƐĞŽĨƚŚĞƉĂƌĞŶƚŚĞƐĞƐĂƚƚŚĞĞŶĚŽĨƚŚĞŵĞƚŚŽĚΖƐŶĂŵĞ͍

Yϯ͘tŚĂƚĚŽĞƐǀŽŝĚŵĞĂŶŝŶĂŵĞƚŚŽĚĚĞĮŶŝƟŽŶ͍

Yϰ͘/ŶĂhŶŝƚLJƐĐƌŝƉƚ͕ŚŽǁŝƐƚŚĞUpdate()ĐĂůůĞĚ͍

Summary
/ŶƚŚŝƐĐŚĂƉƚĞƌ͕ǁĞůĞĂƌŶĞĚƚŚĂƚĂŵĞƚŚŽĚĚĞĮŶŝƟŽŶĞŶĚƐǁŝƚŚĂĐŽĚĞďůŽĐŬďĞƚǁĞĞŶƚǁŽ
ĐƵƌůLJďƌĂĐĞƐ͕ŶŽƚǁŝƚŚĂƐĞŵŝĐŽůŽŶ͘dŚĞƉĂƌĞŶƚŚĞƐĞƐĂƌĞƉĂƌƚŽĨĂŵĞƚŚŽĚΖƐŶĂŵĞ͘tĞĂůƐŽ
ůĞĂƌŶĞĚŚŽǁƚŽĐĂůůĂŵĞƚŚŽĚŝŶƚŽĂĐƟŽŶ͕ŚŽǁƚŽƵƐĞĚĂƚĂƌĞƚƵƌŶĞĚĨƌŽŵĂŵĞƚŚŽĚ͕ĂŶĚ
ƚŚĂƚhŶŝƚLJĐĂůůƐƐŽŵĞŵĞƚŚŽĚƐĂƵƚŽŵĂƟĐĂůůLJ͕ƐƵĐŚĂƐƚŚĞStart() Update()
9 @ C F A 2 1 + C ? G

ǁŚĞŶƚŚĞƐĐƌŝƉƚŝŶŚĞƌŝƚƐĨƌŽŵƚŚĞMonoBehaviour
: > 9 ? ? D

zŽƵŶŽǁŬŶŽǁƚŚĞƚǁŽŵĂũŽƌďƵŝůĚŝŶŐďůŽĐŬƐŽĨƐĐƌŝƉƟŶŐ͕ǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͘&ƌŽŵŶŽǁ
ŽŶ͕ĞǀĞƌLJƚŚŝŶŐĞůƐĞLJŽƵĚŽǁŝůůũƵƐƚďĞŵĂŬŝŶŐƵƐĞŽĨǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͘EŽǁƚŚĂƚLJŽƵ
ƵŶĚĞƌƐƚĂŶĚƚŚĞƐĞƚǁŽďƵŝůĚŝŶŐďůŽĐŬƐ͕LJŽƵĂƌĞƌĞĂĚLJĨŽƌƚŚĞŶĞdžƚĐŚĂƉƚĞƌƚŚĂƚĚĞĂůƐǁŝƚŚ
F 9 ; / @ 0 C A : / ? / + @ ? / @ - + < . : + C A D

[ 56 ]
Making Decisions in Code
5
KŶĞŽĨƚŚĞƉƌŝŵĂƌLJĚƵƚŝĞƐŽĨĂĐŽŵƉƵƚĞƌŝƐĐŽŶƚƌŽůůŝŶŐǁŚĂƚŚĂƉƉĞŶƐŶĞdžƚ
ǁŚĞŶĐĞƌƚĂŝŶĐŽŶĚŝƚŝŽŶƐĂƌĞŵĞƚ͘dŚĂƚΖƐǁŚĂƚĐŽŵƉƵƚĞƌƐĚŽǁŚĞƚŚĞƌƚŚĞĐŽĚĞ
ŝƐĐŽŶƚƌŽůůŝŶŐĂŶĂƉƉůŝĐĂƚŝŽŶŽƌĂŐĂŵĞ͘tĞǁƌŝƚĞƐĐƌŝƉƚƐƚŽŵĂŬĞ'ĂŵĞKďũĞĐƚƐ
ďĞŚĂǀĞĂĐĞƌƚĂŝŶǁĂLJŽŶĞŵŽŵĞŶƚ͕ƚŚĞŶƚŚĞďĞŚĂǀŝŽƌƐŚŽƵůĚĐŚĂŶŐĞǁŚĞŶƚŚĞ
ĐŽŶĚŝƚŝŽŶƐĐŚĂŶŐĞ͘ƐĐƌŝƉƚŚĂƐƚŽĚĞƚĞĐƚǁŚĞŶƚŚĞĐŽŶĚŝƚŝŽŶƐĐŚĂŶŐĞ͕ƚŚĞŶ
ŵĂŬĞƚŚĞĂƉƉƌŽƉƌŝĂƚĞĐŽĚĞĞdžĞĐƵƚĞďĂƐĞĚŽŶƚŚĞŶĞǁĐŽŶĚŝƚŝŽŶƐ͘dŚŝƐĐŚĂƉƚĞƌ
ůŽŽŬƐĂƚƐŽŵĞĞdžĂŵƉůĞƐŽĨƚŚĞǁĂLJƐƚŚĂƚĐŽŶĚŝƚŝŽŶƐĐĂŶĐŚĂŶŐĞ͕ĂŶĚƚŚĞĐŽĚĞ
ƚŽĚĞƚĞĐƚƚŚĞƐĞĐŚĂŶŐĞƐ͘dŚŝƐŝŶƚƵƌŶĚĞƚĞƌŵŝŶĞƐǁŚŝĐŚĐŽĚĞŝŶƚŚĞƐĐƌŝƉƚŝƐ
ĞdžĞĐƵƚĞĚŶĞdžƚ͘

/ŶƚŚŝƐĐŚĂƉƚĞƌǁĞǁŝůůĚŝƐĐƵƐƐ͗
E ? 2 9 2 A F A @ 2 C A : / ? / + @ ?
!

‹ ŚĞĐŬŝŶŐĨŽƌŵĂŶLJĐŽŶĚŝƟŽŶƐ
E A > ? A ? 2 9 2 A F A @ 2 C A : / ? / + @ ?
! (

‹ hƐĞƌΖƐŝŶƉƵƚĐŽŶĚŝƟŽŶĐŚĂŶŐĞƐ
‹ >ŽŽƉŝŶŐƚŚŽƵŐŚĚĂƚĂŝŶĂŶƌƌĂLJ͕>ŝƐƚ͕ŽƌŝĐƟŽŶĂƌLJ

>ĞƚΖƐďĞŐŝŶ͘͘͘
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

7HVWLQJFRQGLWLRQVZLWKDQLIVWDWHPHQW
E G / E G / E D E C + 2 1 / ? \ / E C + 2 1 9 2 \ Ž 1 9 2 1 9 , , A @ ? / E \
! ! ! !

LJŽƵΖǀĞŚĂĚƚŽŵĂŬĞĚĞĐŝƐŝŽŶƐĂďŽƵƚĂůůŬŝŶĚƐŽĨƚŚŝŶŐƐŝŶLJŽƵƌůŝĨĞĞǀĞƌLJĚĂLJ͘tĞĂůů
* A . 2 9 / @ > -

ĚŽŝƚĂůůƚŚĞƟŵĞǁŝƚŚŽƵƚĂĐƚƵĂůůLJŐŝǀŝŶŐƚŚĞƉƌŽĐĞƐƐŽĨŵĂŬŝŶŐĂĚĞĐŝƐŝŽŶŵƵĐŚƚŚŽƵŐŚƚ͕ŝĨ
ĂŶLJ͘ƐǁĞŵĂŬĞĚĂŝůLJĚĞĐŝƐŝŽŶƐ͕ŵŽƐƚŽĨƚŚĞƟŵĞǁĞũƵƐƚĚŽƚŚĞĚĞĐŝƐŝŽŶƉƌŽĐĞƐƐŝŶŐŝŶŽƵƌ
ŚĞĂĚ͘hŶŝƚLJĚŽĞƐŶΖƚŚĂǀĞƚŚĂƚŚƵŵĂŶůƵdžƵƌLJ͕ƐŽǁĞŚĂǀĞƚŽǁƌŝƚĞŝƚŽƵƚƐŽhŶŝƚLJĐĂŶŬŶŽǁ
ƚŚĞĐŽŶĚŝƟŽŶƐƚŚĂƚůĞĂĚƚŽĐĞƌƚĂŝŶĐŚŽŝĐĞƐ͘,ĂǀŝŶŐƚŽǁƌŝƚĞƚŚĞůŽŐŝĐŝƐƚŚĞƐƚƌĂŶŐĞƉĂƌƚŽĨ
ǁƌŝƟŶŐĐŽĚĞĨŽƌďĞŐŝŶŶĞƌƐ͕ƐŝŵƉůLJďĞĐĂƵƐĞƉĞŽƉůĞƵƐƵĂůůLJŵĂŬĞƚŚĞǀĂƐƚŵĂũŽƌŝƚLJŽĨĚĞĐŝƐŝŽŶ
ǁŝƚŚŽƵƚǁƌŝƟŶŐĂŶLJƚŚŝŶŐĚŽǁŶĮƌƐƚ͘,ŽǁĞǀĞƌ͕ŝƚŝƐǀĞƌLJƐŝŵƉůĞƚŽĚŽ͘

ƚŚĞŵŽƐƚĐŽŵŵŽŶǁĂLJ'ĂŵĞKďũĞĐƚƐŵĂŬĞĚĞĐŝƐŝŽŶƐ͘ĂƚĂƵƐĞĚƚŽŵĂŬĞ
if
@ ? 2 9 2 A F A @ 2 / ?
'

ƚŚĞƐĞĚĞĐŝƐŝŽŶƐŝƐƚŚĞŝŶĨŽƌŵĂƟŽŶƵƐƵĂůůLJƐƚŽƌĞĚŝŶƐŽŵĞǀĂƌŝĂďůĞƐ͘&ŽƌĂŶŝĨƐƚĂƚĞŵĞŶƚŝƚΖƐĂƐ
ĞĂƐLJĂƐƐĂLJŝŶŐΗ/ĨŵLJĐŽŶĚŝƟŽŶŝƐŵĞƚ͕ƚŚĞŶĞdžĞĐƵƚĞŵLJĐŽĚĞďůŽĐŬ͘Η

7HVWLQJLIFRQGLWLRQVDUHWUXHRUIDOVH
ĐŽŶĚŝƟŽŶƐƚŚĂƚĐĂŶďĞƚƌƵĞŽƌĨĂůƐĞ͗
? 9 F , > / @ 0 + E
'

‹ dŚĞƵƐĞƌƉƌĞƐƐĞĚĂďƵƩŽŶ
1 A 2 A F , A . 9 2 < . A / ? : + > C


‹
1 A : 1 9 . 9 : 2 A . C / A C


‹ dŚĞďĞĂƌŵĂĚĞďŝŐƉŽƩLJŝŶƚŚĞǁŽŽĚƐ

'ĞŶĞƌĂůƋƵĞƐƟŽŶƐůŝŬĞƚŚĞƐĞĂƌĞĂŶƐǁĞƌĞĚďLJŚƵŵĂŶƐ͕ƵƐƵĂůůLJ͕ǁŝƚŚĞŝƚŚĞƌĂLJĞƐŽƌŶŽ͘&Žƌ
hŶŝƚLJ͕ƚŚĞĂŶƐǁĞƌƐǁŝůůďĞĞŝƚŚĞƌƚƌƵĞŽƌĨĂůƐĞ͘&ŽƌĞdžĂŵƉůĞ͗ΗƚŚĞďĞĂƌŵĂĚĞďŝŐƉŽƩLJŝŶƚŚĞ
ǁŽŽĚƐΗŝƐĞŝƚŚĞƌƚƌƵĞ͕ŽƌĨĂůƐĞ͘

7LPHIRUDFWLRQ²FUHDWHDFRXSOHRILIVWDWHPHQWV
ƐƚĂƚĞŵĞŶƚƐǁŽƌŬďLJĚĞƚĞƌŵŝŶŝŶŐǁŚĞƚŚĞƌĂĐŽŶĚŝƟŽŶŝŶƐŝĚĞĂƉĂŝƌŽĨƉĂƌĞŶƚŚĞƐĞƐŝƐ
1 A


" %

2 . < A + . E 9 > ? A D

LearningScriptĂƐƐŚŽǁŶŝŶƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚ͘
ó ô

+ C / E -
#

^ĂǀĞƚŚĞĮůĞ͘
õ ô

ö ô

@ @ / 2 - G : > / : ; + @ 8 > 9 - D
! )

[ 58 ]
Ä  ¾  Æ Á ä ]

What just happened?


,ĞƌĞΖƐƚŚĞŽƵƚƉƵƚŝŶƚŚĞ ŽŶƐŽůĞ
@ / 2 - I
)

* + C A 9 @ 9 > - ? / ? I

‹ dŚĞĐŽĚĞŽŶůŝŶĞϴŝƐĂƐĨŽůůŽǁƐ͗
bool theBearMadeBigPottyInTheWoods = true;

true
1 / ? + + > A 9 @ B 9 . / 9 = > A / ? C A : > 9 . A C 9 @ C 9 ? ? / 0 @ A C 2 1 A B 9 > < A + E D


ŽŶůŝŶĞϭϬĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
1 A : + C A


if( theBearMadeBigPottyInTheWoods)

ifƐƚĂƚĞŵĞŶƚƚŽƚĞƐƚŝĨƚŚĞĐŽŶĚŝƟŽŶďĞƚǁĞĞŶƚŚĞƉĂƌĞŶƚŚĞƐŝƐŝƐtrue false
@ + . D
'

theBearMadeBigPottyInTheWoods true
1 A B 9 . / 9 = > A / ? ? 2 + . / @ 0 9 B 9 > < A G


ƚŚĞƌĞĨŽƌĞ͘dŚĞĐŽĚĞďůŽĐŬŽŶůŝŶĞƐϭϭƚŽϭϯŝƐĞdžĞĐƵƚĞĚ͕ĂƐƐŚŽǁŶŝŶƚŚĞ
ŽŶƐŽůĞ
? : . A A @ ? 1 + 2 D

[ 59 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

Using the NOT operator to change the condition


,ĞƌĞΖƐĂůŝƩůĞĐƵƌǀĞďĂůůƚŽǁƌĂƉLJŽƵƌŵŝŶĚĂƌŽƵŶĚ͕ƚŚĞEKdůŽŐŝĐĂůŽƉĞƌĂƚŽƌ͘/ƚΖƐǁƌŝƩĞŶŝŶ
ĐŽĚĞƵƐŝŶŐĂŶĞdžĐůĂŵĂƟŽŶŵĂƌŬ͘dŚŝƐŵĂŬĞƐĂƚƌƵĞĐŽŶĚŝƟŽŶĨĂůƐĞ͕ŽƌĂĨĂůƐĞĐŽŶĚŝƟŽŶƚƌƵĞ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϱĂůŽŶŐǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
theBearMadeBigPottyInTheWoods = false;

false theBearMadeBigPottyInTheWoods
? ? / 0 @ ? 2 1 A B 9 > < A 2 + D
'

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϳǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
if( ! theBearMadeBigPottyInTheWoods)

ŶŽƚŚĞƌŝĨƐƚĂƚĞŵĞŶƚ͕ďƵƚƚŚŝƐƟŵĞtheBearMadeBigPottyInTheWoods
/ ? E 9 > ? A D

,ŽǁĞǀĞƌ͕ƚŚĞƌĞΖƐĂEKdůŽŐŝĐĂůŽƉĞƌĂƚŽƌŝŶĨƌŽŶƚŽĨƚŚĞǀĂƌŝĂďůĞ͘^ĞĞƚŚĞĞdžĐůĂŵĂƟŽŶ
ŵĂƌŬŝŶƚŚĞƌĞĚĐŝƌĐůĞƐŚŽǁŶŝŶƚŚĞƉƌĞǀŝŽƵƐƐĐƌĞĞŶƐŚŽƚ͘
dŚŝƐŵĞĂŶƐƚŚĞŝĨƐƚĂƚĞŵĞŶƚĐŽŶĚŝƟŽŶŝƐEKdĨĂůƐĞ͕ǁŚŝĐŚŝƐƚŚĞƐĂŵĞĂƐƐĂLJŝŶŐ
ƚƌƵĞ͘dŚĞƌĞĨŽƌĞƚŚĞĐŽĚĞďůŽĐŬŽŶůŝŶĞƐϭϴƚŽϮϬǁŝůůďĞĞdžĞĐƵƚĞĚ͕ĂƐƐŚŽǁŶŝŶ
2 1 A * + @ ? + > A ? : . A A @ ? 1 + 2

dŚĞĐŽĚĞďůŽĐŬŽŶůŝŶĞƐϭϴƚŽϮϬǁŝůůďĞĞdžĞĐƵƚĞĚ͕ĂƐƐŚŽǁŶŝŶƚŚĞŽŶƐŽůĞƐĐƌĞĞŶƐŚŽƚ

/ĐĂŶĂůƌĞĂĚLJŚĞĂƌLJŽƵƌƋƵĞƐƟŽŶ͕ǁŚLJŶŽƚũƵƐƚĐŚĞĐŬĨŽƌƚƌƵĞ͍ƐLJŽƵǁŝůůĚŝƐĐŽǀĞƌǁŚĞŶ
ǁƌŝƟŶŐŝĨƐƚĂƚĞŵĞŶƚƐ͕LJŽƵŶĞĞĚƚŽďĞĂďůĞƚŽŵĂŬĞĚĞĐŝƐŝŽŶƐďĂƐĞĚŽŶǁŚĞƚŚĞƌĂĐŽŶĚŝƟŽŶ
ŝƐƚƌƵĞ͕ŽƌŝĨƚŚĞĐŽŶĚŝƟŽŶŝƐĨĂůƐĞ͘zŽƵǁĂŶƚƚŚĞŽƉƟŽŶƚŽĞdžĞĐƵƚĞĂĐŽĚĞďůŽĐŬĨŽƌĞŝƚŚĞƌŽĨ
ƚŚĞƐĞƚǁŽĐŽŶĚŝƟŽŶƐ͘&ŽƌĞdžĂŵƉůĞ͕LJŽƵŵĂLJǁĂŶƚƚŽĞdžĞĐƵƚĞƐŽŵĞĐŽĚĞďĂƐĞĚŽŶǁŚĞƚŚĞƌ
ĂƵƐĞƌĚŝĚŶΖƚƉƌĞƐƐĂďƵƩŽŶĂƚĂƉĂƌƟĐƵůĂƌƟŵĞ͘/ĨƚŚĞƵƐĞƌĚŝĚŶŽƚƉƌĞƐƐƚŚĞďƵƩŽŶ͕ƚŚĞŶ
A ì A : < 2 A 2 1 A : + C A = > + : ; D

&KHFNLQJPDQ\FRQGLWLRQVLQDQLIVWDWHPHQW
^ŽŵĞƟŵĞƐLJŽƵǁŝůůǁĂŶƚLJŽƵƌŝĨƐƚĂƚĞŵĞŶƚƐƚŽĐŚĞĐŬŵĂŶLJĐŽŶĚŝƟŽŶƐďĞĨŽƌĞĂŶLJĐŽĚĞďůŽĐŬ
dŚŝƐŝƐǀĞƌLJĞĂƐLJƚŽĚŽ͘dŚĞƌĞĂƌĞƚǁŽŵŽƌĞůŽŐŝĐĂůŽƉĞƌĂƚŽƌƐƚŚĂƚLJŽƵĐĂŶƵƐĞ͗
/ ? A ì A : < 2 A C D

‹ E͗/ƚŝƐƵƐĞĚďLJƉƵƫŶŐ&&ďĞƚǁĞĞŶƚŚĞĐŽŶĚŝƟŽŶƐďĞŝŶŐĐŚĞĐŬĞĚ͘
‹ KZ͗/ƚŝƐƵƐĞĚďLJƉƵƫŶŐ||ďĞƚǁĞĞŶƚŚĞĐŽŶĚŝƟŽŶƐďĞŝŶŐĐŚĞĐŬĞĚ͘

7LPHIRUDFWLRQ²FUHDWHLIVWDWHPHQWVZLWKPRUHWKDQRQH
condition to check
LearningScriptĂƐƐŚŽǁŶŝŶƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚ͘
ó ô

+ C / E -
#

^ĂǀĞƚŚĞĮůĞ͘
õ ô

ö ô

@ @ / 2 - G : > / : ; + @ 8 > 9 - D
! )

[ 60 ]
Ä  ¾  Æ Á ä ]

EŽƟĐĞůŝŶĞϭϭŝƐƵƐŝŶŐƚŚĞEŽƉĞƌĂƚŽƌ͕ĂŶĚůŝŶĞϭϲŝƐ
 ÿ ý ü þ   ^ _   û ú  û

What just happened?


ŽŶƐŽůĞ
A . A / ? 2 1 A + < 2 , < 2 - + < 0 A 2 / @ 2 1 A @ / 2 - I
& )

* + C A 9 @ 9 > - ? / ? I

ŽŶůŝŶĞϴĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
1 A : + C A


bool theBearMadeBigPottyInTheWoods = true;

bool true
B 9 . / 9 = > A / ? C A : > 9 . A C 9 @ C 9 ? ? / 0 @ A C 2 1 A B 9 > < A + E D
'

‹ dŚĞĐŽĚĞŽŶůŝŶĞϵǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
int temperature = 40;

int 40
@ B 9 . / 9 = > A / ? C A : > 9 . A C 9 @ C 9 ? ? / 0 @ A C 2 1 A B 9 > < A D
'

[ 61 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϭǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
if(temperature >= 35 && theBearMadeBigPottyInTheWoods)

ifƐƚĂƚĞŵĞŶƚƚŽƚĞƐƚŝĨďŽƚŚĐŽŶĚŝƟŽŶƐĂƌĞtrue
@ D
'

dŚĞĮƌƐƚƚĞƐƚŝƐĐŚĞĐŬŝŶŐŝĨƚŚĞtemperature 35
/ ? 0 . A 9 2 A . 2 1 A @ G + . A  < 9 > 2 + G D

temperature 40͕ƐŽƚŚŝƐĐŽŶĚŝƟŽŶŝƐƚƌƵĞ͘
1 A B 9 > < A ? 2 + . A C / @ / ?


theBearMadeBigPottyInTheWoodsŝƐƚƌƵĞ͘dŚĞƌĞĨŽƌĞƚŚĞĮƌƐƚ
1 A B 9 > < A ? 2 + . A C / @


ĐŽŶĚŝƟŽŶĂŶĚƚŚĞƐĞĐŽŶĚĐŽŶĚŝƟŽŶĂƌĞƚƌƵĞ͕ƐŽƚŚĞĐŽĚĞďůŽĐŬĞdžĞĐƵƚĞƐ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϲǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
if(temperature >= 35 || theBearMadeBigPottyInTheWoods)

ifƐƚĂƚĞŵĞŶƚƚŽƚĞƐƚŝĨĞŝƚŚĞƌŽĨƚŚĞĐŽŶĚŝƟŽŶƐĂƌĞƚƌƵĞ͘
@
'

tĞĂůƌĞĂĚLJŬŶŽǁƚŚĂƚďŽƚŚƚŚĞĐŽŶĚŝƟŽŶƐĂƌĞƚƌƵĞ͕ĂŶĚĞŝƚŚĞƌƚŚĞĮƌƐƚĐŽŶĚŝƟŽŶ
ŽƌƚŚĞƐĞĐŽŶĚĐŽŶĚŝƟŽŶŶĞĞĚƐƚŽďĞƚƌƵĞ͘dŚĞƌĞĨŽƌĞƚŚĞĐŽĚĞďůŽĐŬǁŝůůĞdžĞĐƵƚĞ͘

+DYHDJRKHUR²FKDQJHWKHYDOXHDVVLJQHGWRWHPSHUDWXUH
temperatureƚŽĂůŽǁĞƌǀĂůƵĞƐƵĐŚĂƐ30 ifƐƚĂƚĞŵĞŶƚƐǁŝůů
. - : 1 9 @ 0 / @ 0 D # @ > - + @ A + E 2 1 A


= A 2 . < A I

dŚĞĨŽůůŽǁŝŶŐŝƐƚŚĞĂŶĂůLJƐŝƐŽĨĐŽĚĞ͗

ŽŶůŝŶĞϭϭĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
1 A : + C A


if(temperature >= 35 && theBearMadeBigPottyInTheWoods)

KŶůLJŽŶĞŽĨƚŚĞĐŽŶĚŝƟŽŶƐŝƐŶŽǁƚƌƵĞ͕ĂƐϯϬŝƐŶŽƚŐƌĞĂƚĞƌƚŚĞŶ͕ŽƌĞƋƵĂůƚŽ͕ϯϱ͘
dŚĞƌĞĨŽƌĞƚŚĞĮƌƐƚĐŽŶĚŝƟŽŶŝƐĨĂůƐĞ͘^ŝŶĐĞďŽƚŚĐŽŶĚŝƟŽŶƐŚĂǀĞƚŽďĞƚƌƵĞ͕ƚŚĞ
: + C A = > + : ; C + A ? @ + 2 A ì A : < 2 A D

[ 62 ]
Ä  ¾  Æ Á ä ]

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϲĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
if(temperature >= 35 || theBearMadeBigPottyInTheWoods)

KŶůLJŽŶĞŽĨƚŚĞĐŽŶĚŝƟŽŶƐŝƐŶŽǁƚƌƵĞ͘
ϯϬŝƐŶŽƚŐƌĞĂƚĞƌƚŚĞŶŽƌĞƋƵĂůƚŽϯϱ͕ƚŚĞƌĞĨŽƌĞƚŚĞĮƌƐƚĐŽŶĚŝƟŽŶŝƐĨĂůƐĞ͘
dŚĞƐĞĐŽŶĚĐŽŶĚŝƟŽŶŝƐƚƌƵĞ͘
^ŝŶĐĞŽŶůLJŽŶĞŽĨƚŚĞƚǁŽĐŽŶĚŝƟŽŶƐŚĂƐƚŽďĞƚƌƵĞ͕ĚŽĞƐŶΖƚŵĂŬĞĂŶLJĚŝīĞƌĞŶĐĞ
ǁŚŝĐŚŽŶĞ͕ƚŚĞĐŽĚĞďůŽĐŬĞdžĞĐƵƚĞƐ͘

+DYHDJRKHUR²FKDQJHWKH%HDU0DGH%LJ3RWW\,Q7KH:RRGVWRIDOVH
EŽǁĐŚĂŶŐĞ theBearMadeBigPottyInTheWoodsƚŽĨĂůƐĞĂƐǁĞůů͘EŽǁLJŽƵƐĞĞƚŚĂƚ
ŶĞŝƚŚĞƌŽĨƚŚĞŝĨƐƚĂƚĞŵĞŶƚƐǁŝůůĞdžĞĐƵƚĞƚŚĞŝƌĐŽĚĞďůŽĐŬƐ͘

8VLQJDQLIHOVHVWDWHPHQWWRH[HFXWHDOWHUQDWHFRGH
ifƐƚĂƚĞŵĞŶƚƐŚĂǀĞŶĞĞĚĞĚĐĞƌƚĂŝŶĐŽŶĚŝƟŽŶƐƚŽďĞtrue
J + E 9 . G 2 1 A E + . 2 1 A : + C A = > + : ; 2 +

ŽƉƟŽŶƚŚĂƚĂůůŽǁƐLJŽƵƚŽŚĂǀĞĂŶĂůƚĞƌŶĂƚĞĐŽĚĞďůŽĐŬĞdžĞĐƵƚĞǁŚĞŶ
A ì A : < 2 A D 1 A . A / ? 9 @


ifƐƚĂƚĞŵĞŶƚĐŽŶĚŝƟŽŶƐĂƌĞfalse
2 1 A D

‹ /ĨŵLJĐŽŶĚŝƟŽŶƐĂƌĞŵĞƚ͕ĞdžĞĐƵƚĞƚŚĞĨŽůůŽǁŝŶŐĐŽĚĞďůŽĐŬ͕ĞůƐĞĞdžĞĐƵƚĞƚŚĞ
9 > 2 A . @ 9 2 A : + C A = > + : ;

dŚŝƐŝƐǀĞƌLJƐŝŵƉůĞĐŽŶĐĞƉƚ͕ũƵƐƚůŝŬĞĂůŝƩůĞŬŝĚƐĂLJŝŶŐ͗Η/ĨLJŽƵŐŝǀĞŵĞĂŶŝĐĞ
ĐƌĞĂŵĐŽŶĞ͕/ΖůůďĞŶŝĐĞ͕ĞůƐĞ/ΖŵŐŽŝŶŐƚŽďĞŶĂƵŐŚƚLJ͘Η

7LPHIRUDFWLRQ²DGGHOVHWRWKHLIVWDWHPHQW
ŝĨͲĞůƐĞƐƚĂƚĞŵĞŶƚƐ ŝĨƐƚĂƚĞŵĞŶƚƐǁŝƚŚƚŚĞelseŽƉƟŽŶĂĚĚĞĚ͘
9 . A  < ? 2 > / ; A . A 0 < > 9 .

LearningScriptĂƐƐŚŽǁŶŝŶƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚ͘
ó ô

+ C / E -
#

^ĂǀĞƚŚĞĮůĞ͘
õ ô

[ 63 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

ö ô

@ @ / 2 - G : > / : ; + @ 8 > 9 - D
! )

>ŝŶĞϭϰƐŚŽǁƐŚŽǁelse͕ĂŶĚŝƚƐĐŽĚĞďůŽĐŬŝƐƐŝŵƉůLJĂĚĚĞĚĂŌĞƌƚŚĞif
: + C A = > + : ; D

What just happened?


ŽĨĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗
1 A 9 @ 9 > - ? / ?


‹ dŚĞĐŽĚĞŽŶůŝŶĞϴĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
bool theBearMadeBigPottyInTheWoods = false;

theBearMadeBigPottyInTheWoods
1 A B 9 . / 9 = > A / ? 9 ? ? / 0 @ A C 2 1 A B 9 > < A + E E 9 > ? A D


‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϬĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
if( theBearMadeBigPottyInTheWoods)

^ŝŶĐĞƚŚĞĐŽŶĚŝƟŽŶŝƐĨĂůƐĞ͕ƚŚĞĐŽĚĞďůŽĐŬŽŶůŝŶĞƐϭϭƚŽϭϯŝƐŶŽƚĞdžĞĐƵƚĞĚ͕ĂŶĚƚŚĞ
ƐĐƌŝƉƚĐŽŶƟŶƵĞƐƚŽůŝŶĞϭϰŽĨƚŚĞŝĨͲĞůƐĞƐƚĂƚĞŵĞŶƚ͘
dŚĞƌĞĨŽƌĞ͕ƚŚĞĐŽĚĞďůŽĐŬŽŶůŝŶĞƐϭϱƚŽϭϳŝƐĞdžĞĐƵƚĞĚŝŶƐƚĞĂĚ͗

[ 64 ]
Ä  ¾  Æ Á ä ]

3RSTXL]²XQGHUVWDQGLQJLIVWDWHPHQWV
Yϭ͘,ƵŵĂŶƐĐĂŶĂŶƐǁĞƌƋƵĞƐƟŽŶƐǁŝƚŚĂLJĞƐŽƌŶŽ͘tŚĂƚĚŽηŝĨƐƚĂƚĞŵĞŶƚƐŶĞĞĚ
ĂƐĂŶƐǁĞƌƐ͍

trueĐŽŶĚŝƟŽŶŝŶƚŽfalse falseĐŽŶĚŝƟŽŶ
` 4 D Ž 1 9 2 > + 0 / : 9 > + , A . 9 2 + . : 9 @ 2 < . @ 9 G + . 9

true͍
/ @ 2 +

Yϯ͘/ĨƚǁŽĐŽŶĚŝƟŽŶƐŚĂǀĞƚŽďĞtrueƚŽŵĂŬĞĂŶŝĨƐƚĂƚĞŵĞŶƚΖƐĐŽĚĞĞdžĞĐƵƚĞ͕ǁŚĂƚůŽŐŝĐĂů
ŽƉĞƌĂƚŽƌǁŽƵůĚLJŽƵƵƐĞƚŽũŽŝŶƚŚĞĐŽŶĚŝƟŽŶƐ͍

Yϰ͘/ĨŽŶůLJŽŶĞŽĨƚǁŽĐŽŶĚŝƟŽŶƐŶĞĞĚĞĚƚŽďĞƚƌƵĞƚŽŵĂŬĞĂŶŝĨƐƚĂƚĞŵĞŶƚΖƐĐŽĚĞĞdžĞĐƵƚĞ͕
ǁŚĂƚůŽŐŝĐĂůŽƉĞƌĂƚŽƌǁŽƵůĚLJŽƵƵƐĞƚŽũŽŝŶƚŚĞƚǁŽĐŽŶĚŝƟŽŶƐ͍

Making decisions based on user input


ĂůǁĂLJƐŚĂǀĞƚŽďĞŵĂĚĞǁŚĞŶƚŚĞƵƐĞƌƉƌŽǀŝĚĞƐŝŶƉƵƚ͘/Ŷ
¤ A : / ? / + @ ? Þ ß à G a

— ’ á – S  ’ – ™ b c • ‘  @

ƚŚĞƵŝůĚŝŶŐůŽĐŬƐĨŽƌhŶŝƚLJ^ĐƌŝƉƚƐ͕ǁĞƵƐĞĚĂŶĞdžĂŵƉůĞǁŚĞƌĞƚŚĞƵƐĞƌŚĂĚƚŽƉƌĞƐƐƚŚĞ
ZĞƚƵƌŶͬŶƚĞƌ AddTwoNumbers()
; A - 2 + : 9 > > 2 1 A F A 2 1 + C I

if(Input.GetKeyUp(Keycode.Return))
AddTwoNumbers();

ifƐƚĂƚĞŵĞŶƚĐŽŶĚŝƟŽŶďĞĐŽŵĞƐƚƌƵĞŽŶůLJǁŚĞŶƚŚĞReturnŬĞLJŝƐƌĞůĞĂƐĞĚĂŌĞƌďĞŝŶŐ
1 A


ƉƌĞƐƐĞĚĚŽǁŶ͘,ĞƌĞΖƐĂƉĂƌƟĂůƐĐƌĞĞŶƐŚŽƚŽĨƚŚĞGetKeyUp()ŵĞƚŚŽĚĂƐƐŚŽǁŶŝŶƚŚĞ
^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ
I

ŌĞƌƚŚĞReturn AddTwoNumbers()
; A - / ? . A > A 9 ? A C G / ? A ì A : < 2 A C D

EŽƟĐĞƚŚĂƚƚŚĞĐŽĚĞ͕AddTwoNumbers()͕ŝƐŶΖƚďĞƚǁĞĞŶƚǁŽĐƵƌůLJďƌĂĐĞƐ͘
ù  ü   û  ý ÿ ü   ü   ý ü          û ú ü ý û ú ü   ÿ    ú ? 

ƚŚĞŽƉƟŽŶƚŽŶŽƚƵƐĞƚŚĞĐƵƌůLJďƌĂĐĞƐ͘

[ 65 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

6WRULQJGDWDLQDQDUUD\D/LVWRUD'LFWLRQDU\
dŚĞƌĞĂƌĞƟŵĞƐƚŚĂƚŵĂŶLJŝƚĞŵƐŶĞĞĚƚŽďĞƐƚŽƌĞĚŝŶƐŽŵĞƚLJƉĞŽĨůŝƐƚ͘WĞƌŚĂƉƐĂƐĞůĞĐƟŽŶŽĨ
ǁĞĂƉŽŶƐƚŚĂƚĂĐŚĂƌĂĐƚĞƌŵĂLJƵƐĞ͘ŶĞdžĂŵƉůĞƵƐĞĚůĂƚĞƌŝŶƚŚŝƐŬŝƐĂůŝƐƚŽĨƐƉůĂƐŚƐĐƌĞĞŶƐ
ĨŽƌƚŚĞ^ƚĂƚĞDĂĐŚŝŶĞƉƌŽũĞĐƚǁĞǁŝůůďƵŝůĚ͘

dŚĞƌĞĂƌĞďĂƐŝĐĂůůLJƚǁŽǁĂLJƐƚŽĂĐĐĞƐƐŝƚĞŵƐŝŶĂůŝƐƚ͗

‹ ŝƌĞĐƚƌĞƚƌŝĞǀĂů͗dŚĞůŽĐĂƟŽŶŽĨĂŶŝƚĞŵŝŶƚŚĞůŝƐƚŝƐĂůƌĞĂĚLJŬŶŽǁŶ͕ƐŽĐŽĚĞŝƐ
ǁƌŝƩĞŶƚŽĂĐĐĞƐƐŝƚĚŝƌĞĐƚůLJ͕Žƌ
‹ >ŽŽƉƌĞƚƌŝĞǀĂů͗dŚĞůŽĐĂƟŽŶŽĨĂŶŝƚĞŵŝŶƚŚĞůŝƐƚŝƐŶŽƚŬŶŽǁŶ͕ŝƚΖƐũƵƐƚŝŶƚŚĞƌĞ
ƐŽŵĞǁŚĞƌĞ͕ƐŽĐŽĚĞŝƐǁƌŝƩĞŶƚŽůŽŽƉƚŚƌŽƵŐŚƚŚĞůŝƐƚƵŶƟůƚŚĞŝƚĞŵĚĞƐŝƌĞĚŝƐĨŽƵŶĚ͘

&ŝƌƐƚƚŚŽƵŐŚ͕ǁĞŶĞĞĚĂůŝƐƚŽĨŝƚĞŵƐďĞĨŽƌĞǁĞĐĂŶƐĞůĞĐƚĂŶLJƚŚŝŶŐĨƌŽŵƚŚĞůŝƐƚ͘ŶĞdžĂŵƉůĞ
ŽĨĐŽůůĞĐƟŶŐŝƚĞŵƐŝŶƚŽĂůŝƐƚ͕ƚŚĞŶůŽŽƉŝŶŐƚŚƌŽƵŐŚƚŚĞůŝƐƚ͕ŝƐƐŚŽǁŶŝŶƚŚĞ^ĐƌŝƉƟŶŐ
GetComponents()
 < @ C A . 2 1 A F A 2 1 + C I
$

 %     

public HingeJoint[] hingeJoints;


void Example() {
hingeJoints = gameObject.GetComponents<HingeJoint>();
...
}

HingeJointsŝŶĂ'ĂŵĞKďũĞĐƚĂƌĞĐŽůůĞĐƚĞĚŝŶƚŽĂŶĂƌƌĂLJ;ůŝƐƚͿ͘KŶĐĞĂůůƚŚĞ
> > 2 1 A
'

HingeJointsĂƌĞŝŶƚŚĞĂƌƌĂLJ͕ŝƚΖƐƵƉƚŽƵƐƚŽĚĞĐŝĚĞǁŚŝĐŚHingeJointsǁĞǁĂŶƚƚŽ
ǁŽƌŬǁŝƚŚŝŶŽƵƌĐŽĚĞ͘

^ŽďŽƩŽŵůŝŶĞ͕ǁŚĂƚĂƌĞǁĞƚĂůŬŝŶŐĂďŽƵƚŚĞƌĞ͍tĞŬŶŽǁƚŚĂƚĂǀĂƌŝĂďůĞƐƚŽƌĞƐĂƐŝŶŐůĞ
ŝƚĞŵ͘&ŽƌŝŶƐƚĂŶĐĞ͕ǁĞĐŽƵůĚƐƚŽƌĞĂƐŝŶŐůĞǁĞĂƉŽŶŝŶĂǀĂƌŝĂďůĞ͘dŚĂƚΖƐŐƌĞĂƚĂƐůŽŶŐĂƐǁĞ
ŽŶůLJŚĂǀĞŽŶĞǁĞĂƉŽŶ͘^ƵƉƉŽƐĞǁĞŚĂǀĞƚŚĞŽƉƟŽŶŽĨƵƐŝŶŐŵĂŶLJĚŝīĞƌĞŶƚǁĞĂƉŽŶƐ͘dŽ
ƐƚŽƌĞƚŚĞƐĞǁĞĂƉŽŶƐǁĞǁŽƵůĚŶĞĞĚĂƐĞƉĂƌĂƚĞǀĂƌŝĂďůĞĨŽƌĞĂĐŚŽŶĞ͘ďĞƩĞƌŽƉƟŽŶǁŽƵůĚ
ďĞƚŽƐƚŽƌĞĂůůƚŚĞǁĞĂƉŽŶƐŝŶƐŽŵĞƐŽƌƚŽĨƐƵƉĞƌͲǀĂƌŝĂďůĞƚŚĂƚĐĂŶƐƚŽƌĞŵĂŶLJŝƚĞŵƐ͕ƚŚĂƚ
ǁĂLJƚŚĞLJΖƌĞĂůůƐƚŽƌĞĚŝŶŽŶĞƉůĂĐĞ͕ŶŽƚŝŶĂǁŚŽůĞďƵŶĐŚŽĨĚŝīĞƌĞŶƚǀĂƌŝĂďůĞƐ͘

dŚĂƚΖƐǁŚĂƚĂŶĂƌƌĂLJ͕Ă>ŝƐƚ͕ŽƌĂŝĐƟŽŶĂƌLJŝƐ͕ĂǀĂƌŝĂďůĞǁŝƚŚƚŚĞĂďŝůŝƚLJƚŽƐƚŽƌĞŵĂŶLJŝƚĞŵƐ͘
K / ; A 9 ? < , A . B 9 . / 9 = > A C / B / C A C / @ 2 + F 9 @ - : < = = - 1 + > A ? D
(

Storing items in an array


GetComponents() ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ͕ůĞƚΖƐƐĞĞŚŽǁĂŶ
K + + ; / @ 0 9 2 2 1 A A ì 9 F , > A + @ 2 1 A

9 . . 9 - / ? : . A 9 2 A C I

[ 66 ]
Ä  ¾  Æ Á ä ]

public HingeJoint[] hingeJoints;


? , A . 2 1 A : + C A + @ > / @ A 6 I
'

publicŵĞĂŶƐƚŚŝƐĂƌƌĂLJǁŝůůĂƉƉĞĂƌŝŶƚŚĞ
    D > ? + 2 1 A 9 . . 9 - / ?
'

‰     

9 : : A ? ? / = > A E . + F + 2 1 A . ? : . / , 2 ? D

‰ HingeJoint[]ŝƐƚŚĞƚLJƉĞŽĨǀĂƌŝĂďůĞďĞŝŶŐĐƌĞĂƚĞĚ͘/ƚΖƐŐŽŝŶŐƚŽďĞĂ
HingeJointƚLJƉĞ;HingeJoint ^ĐƌŝƉƚŝŶŐZĞĨĞƌĞŶĐĞ
N

/ ? 9 : > 9 ? ? / @ 2 1 A D

1 A ?  < 9 . A = . 9 : ; A 2 ? ? , A : / E - 2 1 9 2 2 1 A B 9 . / 9 = > A : . A 9 2 A C / ? 0 + / @ 0 2 + = A 9 @ 9 . . 9 - G


ĂǀĂƌŝĂďůĞǁŝƚŚŵĂŶLJĐƵďďLJͲŚŽůĞƐƚŽƐƚŽƌĞƐĞǀĞƌĂůHingeJoint
+ =  A : 2 ? G 9 @ C

HingeJoint
+ @ > - + =  A : 2 ? D

hingeJoint
/ ? 2 1 A @ 9 F A + E 2 1 A 9 . . 9 - = A / @ 0 : . A 9 2 A C D

dŚĂƚǁĂƐĞĂƐLJĞŶŽƵŐŚ͘/ƚΖƐũƵƐƚůŝŬĞĐƌĞĂƟŶŐĂŶLJŽƚŚĞƌǀĂƌŝĂďůĞ͘dŚĞŽŶůLJĚŝīĞƌĞŶĐĞ
ǁĂƐƚŚĞĂĚĚŝƟŽŶŽĨƚŚĞƐƋƵĂƌĞďƌĂĐŬĞƚƐƚŽƐƉĞĐŝĨLJƚŚĂƚƚŚĞƚLJƉĞŽĨǀĂƌŝĂďůĞďĞŝŶŐ
C A : > 9 . A C / ? 9 : 2 < 9 > > - 0 + / @ 0 2 + = A 9 @ 9 . . 9 - D

EŽǁƚŚĂƚƚŚĞĂƌƌĂLJŝƐĐƌĞĂƚĞĚ͕ƚŚĞGetComponent()
F A 2 1 + C . A 2 . / A B A ? 9 > > 2 1 A

HingeJoints
+ @ 2 1 A 9 F A # =  A : 2 9 @ C ? 2 + . A ? A 9 : 1 + E 2 1 A F / @ 2 + 2 1 A 9 . . 9 - I
%

hingeJoints = gameObject.
? , A . 2 1 A : + C A + @ > / @ A 7 I
'

‹
GetComponents<HingeJoint>();
hingeJoints
/ ? 2 1 A 9 . . 9 -

‰
9 F A # =  A : 2 / ? 2 1 A B 9 . / 9 = > A 2 1 9 2 ? 2 + . A ? 2 1 A 9 F A # =  A : 2 2 1 / ? ? : . / , 2 / ?
% %

‰
9 2 2 9 : 1 A C 2 +

GetComponents<HingeJoint>()
/ ? 2 1 A F A 2 1 + C < ? A C 2 + E / @ C A B A . -

HingeJoint
+ =  A : 2 + @ 2 1 / ? 9 F A # =  A : 2
%

HingeJoint
? A 9 : 1 + =  A : 2 / ? E + < @ C G / 2 / ? ? 2 + . A C / @ 2 + + @ A + E 2 1 A : < = = - 1 + > A ? + E 2 1 A 9 . . 9 - D
'

ĞůĞŵĞŶƚ
1 A ? A : < = = - 1 + > A ? 9 : 2 < 9 > > - 1 9 B A 9 . A 9 > @ 9 F A : 9 > > A C 9 @ D 1 A ? A A > A F A @ 2 ? 9 : 2 < 9 > > -
 

ŚĂǀĞĂƐƉĞĐŝĮĐůŽĐĂƟŽŶŝŶƐŝĚĞƚŚĞhingeJoint
9 . . 9 - D Œ 9 : 1 A > A F A @ 2 / ? 0 / B A @ 9 @ / @ C A ì

ŶƵŵďĞƌ͘dŚĞĮƌƐƚHingeJointĨŽƵŶĚǁŽƵůĚďĞƐƚŽƌĞĚŝŶƚŚĞĞůĞŵĞŶƚĂƚŝŶĚĞdžϬ͕ƚŚĞ
? A : + @ C + @ A E + < @ C / ? ? 2 + . A C / @ 2 1 A A > A F A @ 2 9 2 / @ C A ì 6 D 1 A 2 1 / . C 9 2 / @ C A ì 4 G 9 @ C + @ 9 @ C


ŽŶƵŶƟůĂůůƚŚĞHingeJoints
9 . A E + < @ C + @ 2 1 A 9 F A # =  A : 2 D
%

^ŽŝĨǁĞŬŶĞǁĞdžĂĐƚůLJ͕ǁŚŝĐŚHingeJointŝŶƚŚĞĂƌƌĂLJǁĞǁĂŶƚĞĚƚŽǁŽƌŬǁŝƚŚ͕ƉĞƌŚĂƉƐ
HingeJointǁŚŝĐŚŝƐƐƚŽƌĞĚŝŶƚŚĞĞůĞŵĞŶƚĂƚŝŶĚĞdžϭ͕ǁĞĐĂŶƐŝŵƉůLJƌĞƚƌŝĞǀĞ
2 1 A ? A : + @ C

ŝƚĚŝƌĞĐƚůLJďLJƐĂLJŝŶŐŝƚΖƐƐƚŽƌĞĚŝŶƚŚĞǀĂƌŝĂďůĞ͗
hingeJoint[1]

KŶĐĞĂŐĂŝŶǁĞƵƐĞƚŚĞƐƋƵĂƌĞďƌĂĐŬĞƚƐďĞĐĂƵƐĞƚŚĞǀĂƌŝĂďůĞŝƐĂĐƚƵĂůůLJĂŶĂƌƌĂLJ͕ĂŶĚĂůƐŽƚŽ
? , A : / E - 2 1 A / @ C A ì @ < F = A . D

[ 67 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

WůĞĂƐĞŶŽƟĐĞƚŚĂƚƚŚĞǀĞƌLJĮƌƐƚŝŶĚĞdžŶƵŵďĞƌƐƚĂƌƚƐǁŝƚŚnjĞƌŽ͘dŚŝƐŝƐĐĂůůĞĚ
njĞƌŽŝŶĚĞdžĞĚ͘/ƚΖƐũƵƐƚƐŽŵĞƚŚŝŶŐLJŽƵǁŝůůŚĂǀĞƚŽƌĞŵĞŵďĞƌ͘DĂŶLJƚŚŝŶŐƐŝŶ
ƉƌŽŐƌĂŵŵŝŶŐĂƌĞnjĞƌŽŝŶĚĞdžĞĚ͕ĂŶĚŝƚĐƌĞĂƚĞƐĐŽĚŝŶŐĞƌƌŽƌƐǁŚĞŶLJŽƵĨŽƌŐĞƚ͕
 ÿ   ý ú    û   þ ý ü ü  û ÿ

dŚĂƚΖƐĂůů/ǁĂŶƚƚŽƐĂLJĂďŽƵƚƵƐŝŶŐĂƌƌĂLJƐƚŽƐƚŽƌĞŽďũĞĐƚƐďĞĐĂƵƐĞ/ǁĂŶƚƚŽĚŝƐĐƵƐƐƵƐŝŶŐ
ListŝŶƐƚĞĂĚ͘/ƚΖƐůŝŬĞĂŶĂƌƌĂLJǁŝƚŚĞdžƚƌĂďĞŶĞĮƚƐ͘
9

Storing items in a List


ĂŶĂƌƌĂLJĐĂŶďĞƐŽŵƵĐŚĞĂƐŝĞƌƚŽǁŽƌŬǁŝƚŚŝŶĂƐĐƌŝƉƚ͘>ŽŽŬĂƚ List
? / @ 0 9 / @ ? 2 A 9 C + E
)

ƐŽŵĞĨŽƌƵŵƐŝƚĞƐƌĞůĂƚĞĚƚŽη͕ĂŶĚhŶŝƚLJ͕ĂŶĚLJŽƵΖůůĚŝƐĐŽǀĞƌƚŚĂƚĂŐƌĞĂƚĚĞĂůŽĨ
ƉƌŽŐƌĂŵŵĞƌƐƐŝŵƉůLJĚŽŶΖƚƵƐĞĂŶĂƌƌĂLJƵŶůĞƐƐƚŚĞLJŚĂǀĞƚŽ͕ƚŚĞLJƉƌĞĨĞƌƚŽƵƐĞĂList
D

,ĞƌĞĂƌĞƚŚĞďĂƐŝĐƐŽĨǁŚLJĂ>ŝƐƚŝƐďĞƩĞƌ͕ĂŶĚĞĂƐŝĞƌ͕ƚŽƵƐĞƚŚĂŶĂŶĂƌƌĂLJ͗

‹ ŶĂƌƌĂLJŝƐĂĮdžĞĚƐŝnjĞĂŶĚƵŶĐŚĂŶŐĞĂďůĞ
dŚĞƐŝnjĞŽĨĂList
/ ? 9 C  < ? 2 9 = > A

‹ zŽƵĐĂŶĞĂƐŝůLJĂĚĚƚŽ͕ĂŶĚƌĞŵŽǀĞĞůĞŵĞŶƚƐĨƌŽŵĂList
‹ dŽŵŝŵŝĐĂĚĚŝŶŐĂŶĞǁĞůĞŵĞŶƚƚŽĂŶĂƌƌĂLJ͕ǁĞǁŽƵůĚŶĞĞĚƚŽĐƌĞĂƚĞĂǁŚŽůĞ
ŶĞǁĂƌƌĂLJǁŝƚŚƚŚĞĚĞƐŝƌĞĚŶƵŵďĞƌŽĨĞůĞŵĞŶƚƐ͕ƚŚĞŶĐŽƉLJŽǀĞƌƚŚĞŽůĚĞůĞŵĞŶƚƐ

dŚĞĮƌƐƚƚŚŝŶŐƚŽƵŶĚĞƌƐƚĂŶĚŝƐƚŚĂƚĂList
1 9 ? 2 1 A 9 = / > / 2 - 2 + ? 2 + . A 9 @ - 2 - , A + E + =  A : 2 G

ũƵƐƚůŝŬĞĂŶĂƌƌĂLJ͘ůƐŽ͕ũƵƐƚůŝŬĞĂŶĂƌƌĂLJ͕ǁĞŵƵƐƚƐƉĞĐŝĨLJ͕ǁŚŝĐŚƚLJƉĞŽĨŽďũĞĐƚLJŽƵǁĂŶƚ
ĂƉĂƌƟĐƵůĂƌList dŚŝƐŵĞĂŶƐƚŚĂƚŝĨLJŽƵǁĂŶƚĂList int
2 + ? 2 + . A D + E / @ 2 A 0 A . ? G + E 2 1 A 2 - , A G

ListƚŚĂƚǁŝůůƐƚŽƌĞŽŶůLJƚŚĞint ListŽĨƉŽŶLJŶĂŵĞƐ͍
2 1 A @ - + < : 9 @ : . A 9 2 A 9 2 - , A D Ž 9 @ 2 9

ListƚŚĂƚǁŝůůƐƚŽƌĞŽŶůLJƚŚĞstring
1 A @ : . A 9 2 A 9 2 - , A D


7LPHIRUDFWLRQ²FUHDWHD/LVWRISRQ\QDPHV
List
* . A 9 2 A 9 2 1 9 2 ? 2 + . A ? 2 1 A @ 9 F A ? + E ? + F A , + @ / A ? D J / @ : A 2 1 A - 9 . A @ 9 F A ? G < ? A

string
2 1 A 2 - , A D

LearningScriptĂƐƐŚŽǁŶŝŶƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚ͘
ó ô

+ C / E -
#

EŽƟĐĞƚŚĞĐŚĂŶŐĞŽŶůŝŶĞϮ͘
õ ô

^ĂǀĞƚŚĞĮůĞ͘
ö ô

[ 68 ]
Ä  ¾  Æ Á ä ]

ô
.

@ @ / 2 - G : > / : ; + @ 8 > 9 - D
! )

What just happened?


dŚĞĨŽůůŽǁŝŶŐ ŽŶƐŽůĞŽƵƚƉƵƚ͘EŽƟĐĞƚŚĞĮƌƐƚŽƵƚƉƵƚƚĞůůƐLJŽƵƚŚĞƌĞŝƐĂ
? : . A A @ ? 1 + 2 / ? 2 1 A

List
2 + 2 9 > + E 7 A > A F A @ 2 ? / @ 2 1 A I

[ 69 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

WůĞĂƐĞŶŽƟĐĞƚŚĂƚLJŽƵƌĐŽĚĞŝƐƵƐŝŶŐĚŽƚƐLJŶƚĂdž͕ǁŚŝĐŚǁŝůůďĞĚŝƐĐƵƐƐĞĚŝŶ
ŵŽƌĞĚĞƚĂŝůŝŶƚŚĞŶĞdžƚĐŚĂƉƚĞƌ͘dŚĞŵĂŝŶĐŽŶĐĞƉƚƐ/ǁĂŶƚLJŽƵƚŽĨŽĐƵƐŽŶ
List
 û  ú û     ú   û  ÿ ú

ĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗
1 A 9 @ 9 > - ? / ? + E


‹ dŚĞĐŽĚĞŽŶůŝŶĞϮŝƐĂƐĨŽůůŽǁƐ͗
Using System.Collections.Generic;

List͕ƚŚŝƐƚĞůůƐhŶŝƚLJǁŚĞƌĞƚŽĮŶĚƚŚĞŶĞĐĞƐƐĂƌLJηĐŽĚĞĮůĞƐ
+ = A 9 = > A 2 + < ? A 9


List
E + . < ? / @ 0 9 D

using System.Collections.Generic;
* 1 9 @ 0 A 2 1 A < ? / @ 0 ? 2 9 2 A F A @ 2 2 + D

‹ dŚĞĐŽĚĞŽŶůŝŶĞϴŝƐĂƐĨŽůŽůǁƐ͗
List<string> myFavoritePonies = new List<string>();

List
1 / ? ? 2 9 2 A F A @ 2 : . A 9 2 A ? 9 @ A F , 2 - + =  A : 2 D


&ŝƌƐƚƚŚŝŶŐƚŽŶŽƟĐĞŝƐƚŚĂƚList<string>ƐƉĞĐŝĮĞƐƚŚĂƚLJŽƵĂƌĞĐƌĞĂƟŶŐĂList
string
+ E 2 - , A D

List myFavoritePonies
1 A @ 9 F A + E 2 1 A / ? D


ǀĞƌLJƚŚŝŶŐŽŶƚŚĞůĞŌƐŝĚĞŽĨƚŚĞĂƐƐŝŐŶŵĞŶƚŽƉĞƌĂƚŽƌ;=ͿŝƐĐƌĞĂƟŶŐĂǀĂƌŝĂďůĞ͕
C A : > 9 . / @ 0 2 1 A 2 - , A 9 @ C 2 1 A @ 9 F A D

Œ B A . - 2 1 / @ 0 + @ 2 1 A . / 0 1 2 ? / C A / ?  < ? 2 > / ; A 9 ? ? / 0 @ / @ 0 9 B 9 > < A 2 + 9 B 9 . / 9 = > A G 2 1 A . A E + . A

new List<string()ŝƐĂŵĞƚŚŽĚĐĂůůĞĚƚŽĐƌĞĂƚĞĂŶĞǁList
+ =  A : 2 / @ : + F , < 2 A .

ŵĞŵŽƌLJ͕ĂŶĚŐŝǀĞƚŚĂƚŵĞŵŽƌLJůŽĐĂƟŽŶƚŚĞŶĂŵĞŽĨmyFavoritePonies
D

List
ù ú  ý ÿ ý  û  ü   û  ý ÿ  ú  ý ÿ ú ü  U    ú  ý  ÿ   ú ü ÿ  û  ú  ú ý ü

     ü  ÿ
>  ú þ ý ü  ú ü  þ þ ú û  ü ú ÿ ú ü  U    ú  ú ü ÿ  û     þ þ    

ƌĞĂƚŝŶŐŽďũĞĐƚƐǁŝůůďĞĚŝƐĐƵƐƐĞĚŵŽƌĞŝŶƚŚĞŶĞdžƚĐŚĂƉƚĞƌĂďŽƵƚĚŽƚƐLJŶƚĂdž͘

[ 70 ]
Ä  ¾  Æ Á ä ]

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϭϬƚŽϭϮ͗
myFavoritePonies.Add("Princess Cadence");

strings
1 A ? A 2 1 . A A > / @ A ? + E : + C A 9 . A 9 C C / @ 0 G 2 1 A , + @ - @ 9 F A ? G 2 + 2 1 A


myFavoritePonies List
D

string
O < ? 2 > / ; A 9 @ 9 . . 9 - G A 9 : 1 , + @ - @ 9 F A 9 C C A C / ? 0 / B A @ 9 @ / @ C A ì @ < F = A . E + .

2 1 A A > A F A @ 2 2 1 9 2 A 9 : 1 , + @ - @ 9 F A / ? ? 2 + . A C / @ I

myFavoritePonies
Princess Nightmare
Fluttershy
Cadence Moon
Index 0 Index 1 Index 2

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϰŝƐĂƐĨŽůůŽǁƐ͗
Debug.Log("This List has " + myFavoritePonies.Count + " ponies");

myFavoritePonies.Count List
. A 2 . / A B A ? 2 1 A @ < F = A . + E A > A F A @ 2 ? / @ 2 1 A D

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϭϲĂŶĚϭϴ͗
Debug.Log("The pony's name at index 1 is " + myFavoritePonies[1]);

,ĞƌĞLJŽƵƐĞĞƚŚĞŝŶĚĞdžŶƵŵďĞƌŝŶƐŝĚĞƐƋƵĂƌĞďƌĂĐŬĞƚƐ͘:ƵƐƚůŝŬĞĂŶĂƌƌĂLJ͕ƚŚŝƐŝƐŚŽǁ
ƚŽĚŝƌĞĐƚůLJƌĞƚƌŝĞǀĞƚŚĞĚĂƚĂŝŶĂŶĞůĞŵĞŶƚĂƚĂƐƉĞĐŝĮĐŝŶĚĞdž͘
ĂƌƌĂLJ͕ƚŚĞĮƌƐƚĞůĞŵĞŶƚŝŶĂList
K / ; A 2 1 A / ? 9 2 / @ C A ì 5 D

[ 71 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

+DYHDJRKHUR²DGGDQRWKHUSRQ\WRWKH/LVW
List͕ƚŚĞŶĚŝƐƉůĂLJŝƚΖƐŶĂŵĞ͘ůƐŽ͕ŝŶƚŚĞŽŶƐŽůĞ
C C 9 @ + 2 1 A . , + @ - 2 + 2 1 A G C / ? , > 9 - 2 1 A
'

ListĂŌĞƌĂĚĚŝŶŐƚŚĞĨŽƵƌƚŚƉŽŶLJ͘
@ < F = A . + E A > A F A @ 2 ? / @ 2 1 A

ListƐŚŽǁƐƚŚĞŇĞdžŝďŝůŝƚLJŝƚŚĂƐŽǀĞƌĂŶĂƌƌĂLJ͘
V ý ü þ ú ü      ü    

ý ÿ ý ÿ ý   ÿ ÿ ý      ÿ ý ü þ ú ü ú û û ú 

[ 72 ]
Ä  ¾  Æ Á ä ]

Storing items in a Dictionary


ĚŝĐƟŽŶĂƌLJŚĂƐĂ<ĞLJͬsĂůƵĞƉĂŝƌ͘dŚĞ ŝƐũƵƐƚůŝŬĞĂŶŝŶĚĞdžŝŶĂŶĂƌƌĂLJŽƌůŝƐƚ͕ŝƚΖƐĂƐƐŽĐŝĂƚĞĚ d  e

ǁŝƚŚĂƉĂƌƟĐƵůĂƌǀĂůƵĞ͘dŚĞďŝŐďĞŶĞĮƚŽĨĂĚŝĐƟŽŶĂƌLJŝƐƚŚĂƚǁĞĐĂŶƐƉĞĐŝĨLJǁŚĂƚƚŚĞŬĞLJŝƐ
ŐŽŝŶŐƚŽďĞ͘tĞŚĂǀĞƚŽƐƉĞĐŝĨLJƚŚĞƚLJƉĞĂŶĚƚŚĞŶĂŵĞŽĨƚŚĞŬĞLJƚŚĂƚǁŝůůďĞĂƐƐŽĐŝĂƚĞĚǁŝƚŚ
2 1 A B 9 > < A ? 2 + . A C D

ƌĞĂůǁŽƌůĚĞdžĂŵƉůĞLJŽƵΖƌĞĨĂŵŝůŝĂƌǁŝƚŚŝƐĂĐŽůůĞĐƟŽŶŽĨĐƵƐƚŽŵĞƌƐĂŶĚƚŚĞŝƌ/ŶƵŵďĞƌ͘
:ƵƐƚďLJŬŶŽǁŝŶŐƚŚĞĐƵƐƚŽŵĞƌΖƐ/͕LJŽƵĐŽƵůĚƌĞƚƌŝĞǀĞƚŚĞĐƵƐƚŽŵĞƌΖƐŝŶĨŽƌŵĂƟŽŶ͘

7LPHIRUDFWLRQ²FUHDWHDGLFWLRQDU\RISRQ\QDPHVDQGNH\V
Dictionary int
* . A 9 2 A 9 < ? / @ 0 2 - , A E + . 2 1 A ; A - ? D

LearningScriptĂƐƐŚŽǁŶŝŶƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚ͘
ó ô

+ C / E -
#

^ĂǀĞƚŚĞĮůĞ͘
õ ô

ö ô

@ @ / 2 - G : > / : ; + @ 8 > 9 - D
! )

[ 73 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

What just happened?


ŽƵƚƉƵƚƚŽhŶŝƚLJΖƐŽŶƐŽůĞ
A . A / ? 2 1 A D
&

ŽĨĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗
1 A 9 @ 9 > - ? / ?


‹ dŚĞĐŽĚĞŽŶůŝŶĞϴŝƐĂƐĨŽůůŽǁƐ͗
Dictionary<int, string> myFavoritePonies = new Dictionary<int,
string>();

Dictionary List
¤ A : > 9 . / @ 0 9 / ? B A . - ? / F / > 9 . 2 + C A : > 9 . / @ 0 9 D

Dictionary Key
. A  < / . A ? - + < 2 + ? , A : / E - 2 1 A 2 - , A E + . 2 1 A D
'

1 / ? A ì 9 F , > A < ? A C / @ 2 A 0 A . ? E + . 2 1 A ; A - ? D


‹ dŚĞĐŽĚĞŽŶůŝŶĞƐϭϬĂŶĚϭϭŝƐĂƐĨŽůůŽǁƐ͗
myFavoritePonies.Add(10, "Princess Cadence");
myFavoritePonies.Add(20, "Fluttershy");

,ĞƌĞLJŽƵĂĚĚĞĚƚǁŽƉŽŶŝĞƐƵƐŝŶŐAdd List
G  < ? 2 > / ; A - + < C / C E + . 9 D

‹ dŚĞĐŽĚĞŽŶůŝŶĞƐϭϮĂŶĚϭϴǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
myFavoritePonies[30] = "Nightmare Moon";
myFavoritePonies[40] = "Rainbow Dash";

,ĞƌĞLJŽƵĂĚĚĞĚƉŽŶŝĞƐďLJĂƐƐŝŐŶŝŶŐƚŚĞƉŽŶLJŶĂŵĞƚŽĂƉĂƌƟĐƵůĂƌĚŝĐƟŽŶĂƌLJŬĞLJ͘

[ 74 ]
Ä  ¾  Æ Á ä ]

Using a Collection Initializer to add items to a List or Dictionary


dŚĞƌĞŝƐĂŶŽƚŚĞƌǁĂLJƚŽĂĚĚĞůĞŵĞŶƚƐƚŽĂ>ŝƐƚŽƌŝĐƟŽŶĂƌLJ͘^ŽĨĂƌLJŽƵŚĂǀĞĚĞĐůĂƌĞĚĂŶĚ
ĐƌĞĂƚĞĚĂŶĞǁĞŵƉƚLJ>ŝƐƚĂŶĚŝĐƟŽŶĂƌLJ͕ƚŚĞŶĂĚĚĞĚƉŽŶŝĞƐƚŽƚŚĞŵŽŶƐĞƉĂƌĂƚĞůŝŶĞƐŽĨ
ĐŽĚĞ͘zŽƵĐĂŶĂĚĚƚŚĞƉŽŶŝĞƐĂƚƚŚĞƐĂŵĞƟŵĞLJŽƵĚĞĐůĂƌĞƚŚĞ>ŝƐƚŽƌŝĐƟŽŶĂƌLJǁŝƚŚĂ
ŽůůĞĐƟŽŶ/ŶŝƟĂůŝnjĞƌ͘

7LPHIRUDFWLRQ²DGGLQJSRQLHVXVLQJD&ROOHFWLRQ,QLWLDOL]HU
/ĨǁĞŬŶŽǁƚŚĞŝƚĞŵƐƚŽĂĚĚĂŚĞĂĚŽĨƟŵĞ͕ǁĞĐĂŶĂĚĚƚŚĞŵǁŚĞŶǁĞĐƌĞĂƚĞƚŚĞList
Dictionary
+ . D

LearningScriptĂƐƐŚŽǁŶŝŶƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚ͘
ó ô

+ C / E -
#

^ĂǀĞƚŚĞĮůĞ͘
õ ô

ö ô

@ @ / 2 - G : > / : ; + @ 8 > 9 - D
! )

[ 75 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

What just happened?


,ĞƌĞΖƐƚŚĞŽŶƐŽůĞ
+ < 2 , < 2 I

dŚĞĂŶĂůLJƐŝƐŽĨƚŚĞĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗

‹ dŚĞĐŽĚĞŽŶůŝŶĞƐϴĂŶĚϵǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
List<string> myFavoritePonies = new List<string>() {"Princess
Cadence", Fluttershy"};

dŚŝƐŝƐĂĐƚƵĂůůLJĂƐŝŶŐůĞƐƚĂƚĞŵĞŶƚ͘/ƚΖƐŽŶƚǁŽůŝŶĞƐƚŽŵĂŬĞŝƚĮƚƚŚĞƐĐƌĞĞŶƐŚŽƚ͘
>ŝŶĞϵƐŚŽǁƐƚŚĞŽůůĞĐƟŽŶ/ŶŝƟĂůŝnjĞƌƚŚĂƚΖƐďĞĞŶĂĚĚĞĚƚŽƚŚĞƵƐƵĂů
ListĚĞĐůĂƌĂƟŽŶ͘
EŽƟĐĞƚŚĞƉŽŶLJŶĂŵĞƐĂƌĞďĞƚǁĞĞŶƚǁŽĐƵƌůLJďƌĂĐĞƐ͘dŚŝƐŝƐŶŽƚĂĐŽĚĞďůŽĐŬ͘
1 / ? / ? 9 @ + 2 1 A . < ? A + E : < . > - = . 9 : A ? D


ListŽůůĞĐƟŽŶ/ŶŝƟĂůŝnjĞƌŝƐƚŚĞƚǁŽĐƵƌůLJďƌĂĐĞƐĂŶĚƚŚĞƐƚƌŝŶŐƐ͕ƚŚĞƉŽŶLJ
1 / ?


ŶĂŵĞƐ͕ƚŚĂƚĂƌĞďĞƚǁĞĞŶƚŚĞŵ͘
EŽƟĐĞƚŚĞƌĞŝƐĂƐĞŵŝĐŽůŽŶĂŌĞƌƚŚĞůĂƐƚĐƵƌůLJďƌĂĐĞ͘dŚŝƐĞŶĚƐƚŚĞList
ĚĞĐůĂƌĂƟŽŶ
? 2 9 2 A F A @ 2 D

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϭϰĂŶĚϭϱ͗
Dictionary<int, string> ponyDictionary = new Dictionary<int,
string>() {{10, "Nightmare Moon"}, {20, "Rainbow Dash"}};

dŚŝƐŝƐĂƐŝŶŐůĞƐƚĂƚĞŵĞŶƚ͘/ƚΖƐŽŶƚǁŽůŝŶĞƐƚŽŵĂŬĞŝƚĮƚƚŚĞƐĐƌĞĞŶƐŚŽƚ͘
>ŝŶĞϭϱƐŚŽǁƐƚŚĞŽůůĞĐƟŽŶ/ŶŝƟĂůŝnjĞƌƚŚĂƚΖƐďĞĞŶĂĚĚĞĚƚŽƚŚĞƵƐƵĂů
DictionaryĚĞĐůĂƌĂƟŽŶ͘
ĂĐŚŬĞLJĂŶĚǀĂůƵĞƉŽŶLJŶĂŵĞŝƐďĞƚǁĞĞŶƚǁŽĐƵƌůLJďƌĂĐĞƐ͕ƚŚĞŶĂůůƚŚĞ
ŬĞLJͬǀĂůƵĞƉĂŝƌĐŽŵďŝŶĂƟŽŶƐďĞŝŶŐŝŶŝƟĂůŝnjĞĚĂƌĞďĞƚǁĞĞŶƚǁŽĐƵƌůLJďƌĂĐĞƐ͘

[ 76 ]
Ä  ¾  Æ Á ä ]

3RSTXL]²XQGHUVWDQGLQJDQDUUD\DQGD/LVW
Yϭ͘/ŶĂŶĂƌƌĂLJŽƌĂ>ŝƐƚ͕ǁŚĂƚŝƐĂŶĞůĞŵĞŶƚ͍

YϮ͘/ŶĂŶĂƌƌĂLJŽƌĂ>ŝƐƚ͕ǁŚĂƚŝƐƚŚĞŝŶĚĞdžŶƵŵďĞƌŽĨƚŚĞĮƌƐƚĞůĞŵĞŶƚ͍

Yϯ͘ĂŶĂƐŝŶŐůĞĂƌƌĂLJ͕ŽƌĂƐŝŶŐůĞ>ŝƐƚ͕ƐƚŽƌĞĚŝīĞƌĞŶƚƚLJƉĞƐŽĨĚĂƚĂ͍

Yϰ͘,ŽǁĐĂŶLJŽƵĂĚĚŵŽƌĞĞůĞŵĞŶƚƐƚŽĂŶĂƌƌĂLJƚŽŵĂŬĞƌŽŽŵĨŽƌŵŽƌĞĚĂƚĂ͍

Looping though lists to make decisions


dŚĞƐĞƉƌĞǀŝŽƵƐĂƌƌĂLJ͕>ŝƐƚ͕ĂŶĚŝĐƟŽŶĂƌLJĞdžĂŵƉůĞƐƐŚŽǁĞĚŚŽǁ
2 + 0 A 2 C 9 2 9 / @ 2 + 2 1 A F G

ĂŶĚŚŽǁƚŚĞLJƐƚŽƌĞĚĂƚĂ͘/ƚΖƐŶŽǁƟŵĞƚŽůĞĂƌŶŚŽǁƚŽůŽŽƉƚŚƌŽƵŐŚƚŚĞĚĂƚĂƚŽƌĞƚƌŝĞǀĞ
2 1 A @ A A C A C C 9 2 9 D

,ĞƌĞĂƌĞƐŽŵĞĐŽŵŵŽŶǁĂLJƐƚŽƉĞƌĨŽƌŵůŽŽƉƐ͗

foreach
> + + ,

for
> + + ,

while
> + + ,

8VLQJWKHIRUHDFKORRS
tŚĞŶǁŽƌŬŝŶŐǁŝƚŚŽůůĞĐƟŽŶƐƐƵĐŚĂƐĂŶĂƌƌĂLJ͕ĂůŝƐƚŽƌĚŝĐƟŽŶĂƌLJ͕ƚŚĞƉƌĞĨĞƌƌĞĚǁĂLJƚŽ
foreach
: - : > A 2 1 . + < 0 1 2 1 A A > A F A @ 2 ? 9 @ C . A 2 . / A B A C 9 2 9 / ? 2 + < ? A 2 1 A > + + , D

7LPHIRUDFWLRQ²XVLQJIRUHDFKORRSVWRUHWULHYHGDWD
tĞΖƌĞŐŽŝŶŐƚŽĐƌĞĂƚĞĂŶĂƌƌĂLJ͕ĂůŝƐƚĂŶĚĂĚŝĐƟŽŶĂƌLJ͕ƚŚĞŶůŽŽƉƚŚƌŽƵŐŚĞĂĐŚŽŶĞƚŽƌĞƚƌŝĞǀĞ
foreach
2 1 A C A ? / . A C C 9 2 9 E . + F A 9 : 1 + @ A = - < ? / @ 0 > + + , ? D

LearningScriptĂƐƐŚŽǁŶŝŶƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚ͘
ó ô

+ C / E -
#

^ĂǀĞƚŚĞĮůĞ͘
õ ô

[ 77 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

ö ô

@ @ / 2 - G : > / : ; + @ 8 > 9 - D
! )

What just happened?


ƐǁĞůŽŽƉĞĚƚŚƌŽƵŐŚĞĂĐŚůŝƐƚ͕ǁĞĚĞĐŝĚĞĚǁŚŝĐŚĚĂƚĂƚŽĚŝƐƉůĂLJƚŽƚŚĞŽŶƐŽůĞ
I

[ 78 ]
Ä  ¾  Æ Á ä ]

dŚĞĂŶĂůLJƐŝƐŽĨƚŚĞĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗

ůŝƐƚǁĞĐƌĞĂƚĞĚ͕ǁĞƉŽƉƵůĂƚĞĚƚŚĞŵƵƐŝŶŐĂŽůůĞĐƟŽŶ/ŶŝƟĂůŝnjĞƌ͘
+ . A 9 : 1
H

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϵĂŶĚϭϬǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
string[] ponyArray = new string[] {"AppleJack", "Rarity"};

string ponyArrayŝƐĚĞĐůĂƌĞĚĂŶĚƚǁŽƐƚƌŝŶŐƐĂƌĞĂĚĚĞĚ͘
9 . . 9 - @ 9 F A C
'

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϮǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
foreach(string pony in ponyArray)

foreach
> + + , / ? < ? A C 2 + . A 2 . / A B A + @ A A > A F A @ 2 G 9 , + @ - @ 9 F A ? 2 . / @ 0 G ? 2 + . A C
'

ponyArray
/ @ D

pony
B 9 . / 9 = > A / ? C A : > 9 . A C @ 9 F A C 2 + 1 + > C 2 1 A . A 2 . / A B A C , + @ - @ 9 F A D
'

foreachĐŽĚĞďůŽĐŬ͕ůŝŶĞƐϭϯƚŽϭϲ͕ŝƐĞdžĞĐƵƚĞĚ͘
# @ : A 9 , + @ - @ 9 F A / ? . A 2 . / A B A C G 2 1 A

dŚŝƐůŽŽƉŝŶŐĐŽŶƟŶƵĞƐƵŶƟůĞĂĐŚĞůĞŵĞŶƚŝŶponyArray
1 9 ? = A A @ . A 2 . / A B A C 9 @ C

2 A ? 2 A C / @ 2 1 A : + C A = > + : ; D

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϰǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
if(pony == "Rarity");

pony "Rarity"
E 2 1 A . A 2 . / A B A C ? 2 . / @ 0 ? 2 + . A C / @ / ? A  < 9 > 2 + G 2 1 A @ > / @ A 6 L A ì A : < 2 A ? D
!

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϱǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
Debug.Log("I was looking for " + pony);

dŚĞƐƚƌŝŶŐ/ǁĂƐůŽŽŬŝŶŐĨŽƌƉůƵƐƚŚĞƐƚƌŝŶŐǀĂůƵĞƐƚŽƌĞĚŝŶƉŽŶLJŝƐĚŝƐƉůĂLJĞĚŝŶ
ŽŶƐŽůĞ
2 1 A D

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϭϴĂŶĚϭϵǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
List<string> ponyList = new List<string>() {"Princess Cadence",
"Fluttershy"};

List ponyListŝƐĚĞĐůĂƌĞĚƚŚĂƚǁŝůůƐƚŽƌĞƚŚĞstringƚLJƉĞ͕ĂŶĚƚǁŽ
@ 9 F A C
'

? 2 . / @ 0 ? 9 . A 9 C C A C D

ůŝŶĞϮϭǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
1 A : + C A + @


foreach(string pony in ponyList)

foreach string
> + + , / ? < ? A C 2 + . A 2 . / A B A + @ A A > A F A @ 2 G 9 , + @ - @ 9 F A G ? 2 + . A C
'

ponyList
/ @ D

pony
B 9 . / 9 = > A / ? C A : > 9 . A C @ 9 F A C 2 + 1 + > C 2 1 A . A 2 . / A B A C , + @ - @ 9 F A D
'

[ 79 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

foreachĐŽĚĞďůŽĐŬ;ƚŚĂƚŝƐ͕ůŝŶĞƐϮϮƚŽϮϱͿ
# @ : A 9 , + @ - @ 9 F A / ? . A 2 . / A B A C G 2 1 A

/ ? A ì A : < 2 A C D

dŚŝƐůŽŽƉŝŶŐĐŽŶƟŶƵĞƐƵŶƟůĞĂĐŚĞůĞŵĞŶƚŝŶponyList
1 9 ? = A A @ . A 2 . / A B A C 9 @ C

2 A ? 2 A C / @ 2 1 A : + C A = > + : ; D

‹ dŚĞĐŽĚĞŽŶůŝŶĞϮϯǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
if(pony == "Fluttershy")
pony "Fluttershy"
E 2 1 A . A 2 . / A B A C ? 2 . / @ 0 ? 2 + . A C / @ / ? A  < 9 > 2 + G 2 1 A @ > / @ A
!

ϮϰĞdžĞĐƵƚĞƐ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞϮϰǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
Debug.Log("I was looking for " + pony);

dŚĞƐƚƌŝŶŐ/ǁĂƐůŽŽŬŝŶŐĨŽƌƉůƵƐƚŚĞƐƚƌŝŶŐǀĂůƵĞƐƚŽƌĞĚŝŶpony
/ ? C / ? , > 9 - A C

ŽŶƐŽůĞ
/ @ 2 1 A D

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϮϳĂŶĚϮϴǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
Dictionary<int, string> ponyDictionary = new Dictionary<int,
string>() {{10, "Nightmare Moon"}, {20, "Rainbow Dash"}};

Dictionary ponyDictionaryŝƐĚĞĐůĂƌĞĚǁŝƚŚŬĞLJĂŶĚǀĂůƵĞŽĨƚLJƉĞ
@ 9 F A C
'

<int, string>͕ĂŶĚƚǁŽŬĞLJͬǀĂůƵĞƉĂŝƌƐĂƌĞĂĚĚĞĚ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞϯϬǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
foreach(KeyValuePair<int, string> pony in ponyDictionary)

foreach KeyValuePair
> + + , / ? < ? A C 2 + . A 2 . / A B A + @ A G 9 ; A - 9 @ C B 9 > < A G ? 2 + . A C / @
'

ponyDictionary
D

pony KeyValuePair
B 9 . / 9 = > A / ? C A : > 9 . A C @ 9 F A C 2 + 1 + > C 2 1 A . A 2 . / A B A C D
'

foreach
# @ : A 9 ; A - B 9 > < A 9 @ C 9 , + @ - @ 9 F A ? 2 . / @ 0 9 . A . A 2 . / A B A C G 2 1 A : + C A = > + : ;

;ƚŚĂƚŝƐ͕ůŝŶĞƐϯϭƚŽϯϰͿŝƐĞdžĞĐƵƚĞĚ͘
dŚŝƐůŽŽƉŝŶŐĐŽŶƟŶƵĞƐƵŶƟůĞĂĐŚKeyValuePair ponyDictionary
/ @ 1 9 ? = A A @

. A 2 . / A B A C 9 @ C 2 A ? 2 A C / @ 2 1 A : + C A = > + : ; D

‹ dŚĞĐŽĚĞŽŶůŝŶĞƐϯϮǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
if(pony.Key == 20)

Key 20
E 2 1 A . A 2 . / A B A C ? 2 + . A C / @ , + @ - / ? A  < 9 > 2 + G 2 1 A @ > / @ A 7 7 A ì A : < 2 A ? D
!

ŽŶůŝŶĞϯϯǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
1 A : + C A


Debug.Log("I was looking for " + pony.Value);

I was looking for pony.Key


1 A ? 2 . / @ 0 , > < ? 2 1 A ? 2 . / @ 0 B 9 > < A ? 2 + . A C / @ / ?


ŽŶƐŽůĞ
C / ? , > 9 - A C / @ 2 1 A D

[ 80 ]
Ä  ¾  Æ Á ä ]

8VLQJWKHIRUORRS
dŚĞďĞƐƚĚĞƐĐƌŝƉƟŽŶ/ΖǀĞĨŽƵŶĚĨŽƌĂforůŽŽƉ͗ΗůůŽǁƐĂĐŽĚĞďůŽĐŬƚŽďĞĞdžĞĐƵƚĞĚĂƐƉĞĐŝĮĐ
ŶƵŵďĞƌŽĨƟŵĞƐ͘Η

for
1 A ? - @ 2 9 ì + E 9 > + + , I


for (initializer; condition; iterator)


{
code block
}

EŽƟĐĞƚŚĞƚŚƌĞĞƉĂƌƚƐŝŶƐŝĚĞƚŚĞƉĂƌĞŶƚŚĞƐĞƐĂƌĞ
ÿ   ú û ú     ÿ   ý  ü ÿ ü    ú ÿ

7LPHIRUDFWLRQ²VHOHFWLQJDSRQ\IURPD/LVWXVLQJDIRUORRS
>ĞƚΖƐĂĚĚĨŽƵƌ List
, + @ - @ 9 F A ? 2 + 9 D A 2 . / A B A 9 @ C C / ? , > 9 - 2 1 A @ < F = A . + E A > A F A @ 2 ? / @ 2 1 A
"

List for
D 1 A @ < ? A 9 > + + , 2 + C / ? , > 9 - A 9 : 1 , + @ - @ 9 F A G 9 @ C ? A > A : 2 + @ A + E 2 1 A F I


LearningScriptĂƐƐŚŽǁŶŝŶƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚ͘
ó ô

+ C / E -
#

^ĂǀĞƚŚĞĮůĞ͘
õ ô

ö ô

@ @ / 2 - G : > / : ; + @ 8 > 9 - D
! )

[ 81 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

What just happened?


dŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚƐŚŽǁƐƚŚĞŶƵŵďĞƌŽĨĞůĞŵĞŶƚƐŝŶponyList
G 2 1 A @ 9 F A ? + E 2 1 A

ƉŽŶŝĞƐǁĞĂĚĚĞĚƚŽponyList͕ĂŶĚƚŚĞƉŽŶLJǁĞǁĞƌĞůŽŽŬŝŶŐĨŽƌ͗

ĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗
1 A 9 @ 9 > - ? / ? + E 2 1 A


‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϴĂŶĚϵǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗
List<string> ponyList = new List<string>() {"Princess
Cadence", "Fluttershy", "Rainbow Dash", "Rarity"};

List ponyListŝƐĚĞĐůĂƌĞĚƚŚĂƚǁŝůůƐƚŽƌĞƚŚĞstring
@ 9 F A C 2 - , A D
'

+ < . ? 2 . / @ 0 ? 9 . A 9 C C A C + E 2 1 A , + @ - @ 9 F A ? D
H

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϭǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
Debug.Log("Number of elements in ponyList: " + ponyList.Count);

Number of elements in ponyList:


1 A ? 2 . / @ 0 , > < ? 2 1 A @ < F = A . + E A > A F A @ 2 ?


ponyList ŽŶƐŽůĞ
< ? A C / @ / ? C / ? , > 9 - A C / @ 2 1 A D

ponyList.Count Count
/ ? < ? / @ 0 C + 2 ? - @ 2 9 ì 2 + 9 : : A ? ? 2 1 A , . + , A . 2 - G 9 B 9 . / 9 = > A

List
2 1 9 2 ? 2 + . A ? 2 1 A @ < F = A . + E A > A F A @ 2 ? / @ 9 D

&ŽƵƌŶĂŵĞƐǁĞƌĞĂĚĚĞĚƚŽponyList
G ? + / 2 1 9 ? E + < . A > A F A @ 2 ? 2 + ? 2 + . A 2 1 A

? 2 . / @ 0 @ 9 F A ? D

[ 82 ]
Ä  ¾  Æ Á ä ]

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϯǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
for(int i = 0; i < ponyList.Count; i++)

for loop
1 A / ? : . A 9 2 A C D


dŚĞŝŶŝƟĂůŝnjĞƌŝƐƐŝŵƉůLJĂĚĞĐůĂƌĞĚǀĂƌŝĂďůĞƚŚĂƚΖƐĂƐƐŝŐŶĞĚĂǀĂůƵĞ͘
i int 0͘tŚLJ͍
Ž A C A : > 9 . A C 9 B 9 . / 9 = > A + E 2 - , A G 9 @ C 9 ? ? / 0 @ A C / 2 2 1 A 9 B 9 > < A + E

dŚĞĮƌƐƚŝŶĚĞdžŶƵŵďĞƌŝŶĂList 0
/ ? D

dŚĞĐŽŶĚŝƟŽŶŝƐĐŚĞĐŬĞĚĨŽƌƚƌƵĞďĞĨŽƌĞƚŚĞĐŽĚĞďůŽĐŬ͕ůŝŶĞƐϭϰƚŽϭϵ͕ŝƐĂůůŽǁĞĚ
2 + = A A ì A : < 2 A C D

forůŽŽƉĮƌƐƚďĞŐŝŶƐ͕ƚŚĞǀĂƌŝĂďůĞi 0 ponyList.Count
Ž 1 A @ + < . / ? A  < 9 > 2 + G 9 @ C

4 0 4͕ǁŚŝĐŚŝƐtrue for
/ ? A  < 9 > 2 + G 2 1 A . A E + . A / ? > A ? ? 2 1 9 @ D 1 A . A E + . A 2 1 A > + + , : + C A


ďůŽĐŬŝƐĂůůŽǁĞĚƚŽĞdžĞĐƵƚĞ͘
i++͕ŶŽǁĂĚĚƐϭƚŽi iŶŽǁĞƋƵĂůƚŽ1
1 A / 2 A . 9 2 + . G G F 9 ; / @ 0 D


i++ŝƐƚŚĞƐĂŵĞƚŚŝŶŐĂƐǁƌŝƟŶŐi = i + 1͕ǁŚŝĐŚŵĞĂŶƐƚŚĂƚLJŽƵĂƌĞƚĂŬŝŶŐƚŚĞ
i i
B 9 > < A / @ 9 @ C 9 C C / @ 0 6 G 2 1 A @ 9 ? ? / 0 @ / @ 0 2 1 9 2 2 + D

dŚĞůŽŽƉƌĞƉĞĂƚƐƵŶƟůƚŚĞĐŽŶĚŝƟŽŶďĞĐŽŵĞƐfalse
D

ŌĞƌĨŽƵƌƟŵĞƐƚŚƌŽƵŐŚƚŚĞůŽŽƉ͕iŝƐŶŽǁĞƋƵĂůƚŽϰ͕ƚŚĞƌĞĨŽƌĞƚŚĞĐŽŶĚŝƟŽŶŝƐ
ŶŽǁfalse i 4͕ƐŽƚŚĞůŽŽƉŝƐĮŶŝƐŚĞĚ͘
= A : 9 < ? A / ? @ + 2 > A ? ? 2 1 9 @

dŚĞůĞƩĞƌΗŝΗŝƐƚLJƉŝĐĂůůLJƵƐĞĚĂƐƚŚĞǀĂƌŝĂďůĞŶĂŵĞŝŶĂĨŽƌůŽŽƉ͘/ƚΖƐƚƌĂĚŝƟŽŶ͘/Ĩ
LJŽƵŚĂƉƉĞŶƚŽŚĂǀĞŶĞƐƚĞĚĨŽƌůŽŽƉƐ͕ƚŚĞŶƚŚĞǀĂƌŝĂďůĞŶĂŵĞƐƵƐĞĚǁŝůůďĞƚŚĞ
ůĞƩĞƌƐũ͕Ŭ͕ů͕ĂŶĚƐŽŽŶ͕ĂƐŶĞĞĚĞĚ͘

ůŝŶĞƐϭϱǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
1 A : + C A + @


Debug.Log(ponyList[i]);

ponyList
1 A A > A F A @ 2 ? / @ 9 . A = A / @ 0 9 : : A ? ? < ? / @ 0 2 1 A / @ C A ì @ < F = A . D


forůŽŽƉŝƐĞdžĞĐƵƚĞĚĨŽƌƚŚĞĮƌƐƚƟŵĞ͕i 0
? 2 1 A / ? A  < 9 > 2 + G 2 1 A . A E + . A
'

ponyList[i] ponyList[0]
/ ? 9 : 2 < 9 > > - G 2 1 A A > A F A @ 2 9 2 / @ C A ì 5 D

Princess Cadence
1 A A > A F A @ 2 9 2 / @ C A ì 5 / ? ? 2 + . / @ 0 D


ŌĞƌĞĂĐŚŝƚĞƌĂƟŽŶƚŚƌŽƵŐŚƚŚĞfor i
> + + , G 6 / ? 9 C C A C 2 + G 2 1 A . A E + . A 2 1 A @ A ì 2 2 . / ,

iǁŝůůďĞϭ͘
2 1 . + < 0 1 2 1 A E + . > + + , G

ponyList[i]ǁŝůůĂĐƚƵĂůůLJďĞponyList[1]
G 2 1 A @ A ì 2 A > A F A @ 2 9 2 / @ C A ì 6 D

dŚĞƌĞƐƵůƚŝƐĂůůĨŽƵƌƉŽŶŝĞƐǁŝůůďĞĂĐĐĞƐƐĞĚĂŶĚĚŝƐƉůĂLJĞĚŝŶƚŚĞŽŶƐŽůĞ
D

[ 83 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

‹ dŚĞĐŽĚĞŽŶůŝŶĞƐϭϳǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
if(ponyList[i] == "Fluttershy")

ƵƌŝŶŐĞĂĐŚŝƚĞƌĂƟŽŶƚŚƌŽƵŐŚƚŚĞĐŽĚĞďůŽĐŬ͕ƚŚŝƐŝĨƐƚĂƚĞŵĞŶƚŝƐĐŚĞĐŬŝŶŐƚŽƐĞĞŝĨ
ponyListŝƐĞƋƵĂůƚŽΗFluttershy"
2 1 A @ 9 F A . A 2 . / A B A C E . + F D

tŚĞŶŝƚŝƐ͕ůŝŶĞϭϴŝƐĞdžĞĐƵƚĞĚ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞƐϭϴǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
Debug.Log("I was looking for " + ponyList[i]);

I was looking for Fluttershy


1 A ? 2 . / @ 0 , > < ? 2 1 A @ 9 F A / ? C / ? , > 9 - A C / @


ŽŶƐŽůĞ
2 1 A D

Using the while loop


while ĐŽĚĞďůŽĐŬƵŶƟůĂƐƉĞĐŝĮĞĚĞdžƉƌĞƐƐŝŽŶĞǀĂůƵĂƚĞƐƚŽĨĂůƐĞ͘
1 A > + + , A ì A : < 2 A ? 9


whileůŽŽƉŝƐǀĞƌLJƐŝŵŝůĂƌƚŽĂĨŽƌůŽŽƉ͘/ƚΖƐůŝŬĞďƌĞĂŬŝŶŐƚŚĞfor
V   ý ü    ü  ü   ú û  ÿ f

The syntax of a while loop:


initializer
while (condition)
{
code block
iterator
}

7LPHIRUDFWLRQ²ÀQGLQJGDWDDQGEUHDNRXWRIWKHZKLOHORRS
tĞΖƌĞŐŽŝŶŐƚŽĚŽƐŽŵĞƚŚŝŶŐĂůŝƩůĞĚŝīĞƌĞŶƚŝŶƚŚŝƐůŽŽƉ͘KŶĐĞǁĞĮŶĚƚŚĞƉŽŶLJǁĞǁĂŶƚ͕
ǁĞΖůůďƌĞĂŬŽƵƚŽĨƚŚĞǁŚŝůĞůŽŽƉ͘dŚŝƐŝƐŚĂŶĚLJǁŚĞŶůŽŽƉŝŶŐƚŚƌŽƵŐŚĂůĂƌŐĞůŝƐƚŽĨŽďũĞĐƚƐ͘
tŚĞŶƚŚĞĚĞƐŝƌĞĚĚĂƚĂŝƐĨŽƵŶĚ͕ƚŚĞƌĞΖƐŶŽƐĞŶƐĞŝŶĐŽŶƟŶƵŝŶŐƚŽůŽŽƉ
2 1 . + < 0 1 2 1 A . A ? 2 + E

2 1 A > / ? 2 I

LearningScriptĂƐƐŚŽǁŶŝŶƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚ͘
ó ô

+ C / E -
#

^ĂǀĞƚŚĞĮůĞ͘
õ ô

ö ô

@ @ / 2 - G : > / : ; + @ 8 > 9 - D
! )

[ 84 ]
Ä  ¾  Æ Á ä ]

What just happened?


/ĨǁĞŚĂǀĞ Fluttershy Rainbow Dash
= A A @ ? A 9 . : 1 / @ 0 E + . / @ ? 2 A 9 C + E G 9 @ C @ + 2 / @ : > < C A C 2 1 A

breakŬĞLJǁŽƌĚŽŶůŝŶĞϭϵ͕ƚŚĞŽƵƚƉƵƚǁŽƵůĚŚĂǀĞďĞĞŶĞdžĂĐƚůLJ for
2 1 A ? 9 F A 9 ? 2 1 A > + + ,

breakŬĞLJǁŽƌĚĐŽƵůĚŚĂǀĞĂůƐŽŚĂǀĞďĞĞŶƵƐĞĚƚŽďƌĞĂŬŽƵƚŽĨƚŚĞ
A ì 9 F , > A D @ E 9 : 2 G 2 1 A
!

E + . > + + , D

[ 85 ]
Z ¾ 6 3 Å 4 [ Á å 3 Ç 3 Â Å Ç 3 Å Ä Â 1 Á

/ǁŝůůƐŬŝƉĞdžƉůĂŝŶŝŶŐůŝŶĞƐŽĨĐŽĚĞƚŚĂƚĂƌĞŝĚĞŶƟĐĂůŝŶƚŚĞfor
> + + , A ì 9 F , > A D

dŚĞĂŶĂůLJƐŝƐŽĨƚŚĞĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϭǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
int i = 0;

dŚĞŝŶŝƟĂůŝnjĞƌŝƐĚĞĐůĂƌĞĚĂŶĚĂƐƐŝŐŶĞĚƚŚĞǀĂůƵĞŽĨϭ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϮǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
while(i < ponyList.Count)

whileůŽŽƉŝƐĚĞĐůĂƌĞĚǁŝƚŚƚŚĞĐŽŶĚŝƟŽŶ͘
1 A


i 0 ponyList.Count͕ǁŚŝĐŚŝƐ4͕ƚŚĞĐŽŶĚŝƟŽŶŝƐƚƌƵĞ͘
J / @ : A / ? G / 2 / ? > A ? ? 2 1 9 @

whileůŽŽƉĐŽĚĞďůŽĐŬ;ƚŚĂƚŝƐ͕ůŝŶĞƐϭϯƚŽϮϮͿ͕ŝƐĞdžĞĐƵƚĞĚ͘
1 A


‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϲǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
if(ponyList[i] == "Rainbow Dash")

ƵƌŝŶŐĞĂĐŚŝƚĞƌĂƟŽŶƚŚƌŽƵŐŚƚŚĞĐŽĚĞďůŽĐŬ͕ƚŚŝƐif
? 2 9 2 A F A @ 2 / ? : 1 A : ; / @ 0 2 +

ponyList Rainbow Dash


? A A / E 2 1 A @ 9 F A . A 2 . / A B A C E . + F / ? A  < 9 > 2 + D

tŚĞŶŝƚŝƐ͕ƚŚĞĐŽĚĞďůŽĐŬŽĨůŝŶĞƐϭϳƚŽϮϬŝƐĞdžĞĐƵƚĞĚ͘
tŚĞŶŝƚŝƐŶΖƚ͕ůŝŶĞϮϭŝƐƚŚĞŶĞdžƚůŝŶĞƚŚĂƚŝƐĞdžĞĐƵƚĞĚ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞϮϭǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
i++;

i
1 A / 2 A . 9 2 + . / ? / @ : . A F A @ 2 A C = - 6 9 @ C 2 1 A > + + , . A , A 9 2 ? = 9 : ; 2 + > / @ A 6 4 2 + : 1 A : ;


ƚŚĞĐŽŶĚŝƟŽŶĂŐĂŝŶ͘
dŚĞůŽŽƉƌĞƉĞĂƚƐƵŶƟůiŝƐĞƋƵĂůƚŽϰ͕ŵĂŬŝŶŐƚŚĞĐŽŶĚŝƟŽŶĨĂůƐĞǁŚŝĐŚĞdžŝƚƐ
2 1 A > + + , D

ŽŶůŝŶĞϭϴǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
1 A : + C A


Debug.Log("Stop. I was looking for " + ponyList[i]);

Stop. I was looking for Rainbow Dash


1 A ? 2 . / @ 0 , > < ? 2 1 A @ 9 F A / ?


ŽŶƐŽůĞ
C / ? , > 9 - A C / @ 2 1 A D

[ 86 ]
Ä  ¾  Æ Á ä ]

ŽŶůŝŶĞϭϵǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗
1 A : + C A


break;

breakŝƐĂηŬĞLJǁŽƌĚƚŚĂƚĂůƚĞƌƐĐŽĚĞŇŽǁ͘
ŽĚĞĞdžĞĐƵƟŽŶŝŵŵĞĚŝĂƚĞůLJůĞĂǀĞƐƚŚŝƐwhileůŽŽƉĐŽĚĞďůŽĐŬĂŶĚĐŽŶƟŶƵĞƐƚŽƚŚĞ
ĮƌƐƚƐƚĂƚĞŵĞŶƚĨŽůůŽǁŝŶŐƚŚĞĐŽĚĞďůŽĐŬ͘
dŚĞƌĞŝƐŶŽƐƚĂƚĞŵĞŶƚĨŽůůŽǁŝŶŐƚŚĞǁŚŝůĞůŽŽƉ͕ƚŚĞƐĐƌŝƉƚŝƐĮŶŝƐŚĞĚ͘

+DYHDJRKHUR²FKDQJLQJWKHSRQ\QDPHEHLQJVHDUFKHG
KŶůŝŶĞϭϲ͕ĐŚĂŶŐĞƚŚĞƉŽŶLJŶĂŵĞďĞŝŶŐƐĞĂƌĐŚĞĚĂŶĚŽďƐĞƌǀĞŚŽǁŝƚĐŚĂŶŐĞƐƚŚĞŶƵŵďĞƌ
ŽŶƐŽůĞ
+ E , + @ - @ 9 F A ? C / ? , > 9 - A C / @ 2 1 A = A E + . A ? 2 + , , / @ 0 D

Summary
dŚĞƌĞĂƌĞƵŶůŝŵŝƚĞĚǁĂLJƐƚŽŵĂŬĞĚĞĐŝƐŝŽŶƐŝŶĐŽĚĞ͕ŚŽǁĞǀĞƌ͕ǁĞĐŽǀĞƌĞĚŵĂŶLJŽĨƚŚĞ
ĐŽŵŵŽŶǁĂLJƐ͘dŚĞŝĨƐƚĂƚĞŵĞŶƚŝƐŚŽǁƚŚĞŵĂũŽƌŝƚLJŽĨĚĞĐŝƐŝŽŶƐĂƌĞŵĂĚĞ͕ŝŶĐůƵĚŝŶŐƚŚĞ
ŝĨͲĞůƐĞƐƚĂƚĞŵĞŶƚƐ͘dŚĞŶǁĞĐŽǀĞƌĞĚƐŽŵĞŽĨƚŚĞƐŽƵƌĐĞƐƚŚĂƚƌĞƋƵŝƌĞŵĂŬŝŶŐĚĞĐŝƐŝŽŶƐ͕ůŝŬĞ
ƵƐĞƌŝŶƉƵƚ͕ĂŶĚƵƐŝŶŐůŽŽƉƐƚŽĞǀĂůƵĂƚĞĚĂƚĂƐƚŽƌĞĚŝŶĂƌƌĂLJƐ͕ůŝƐƚƐĂŶĚĚŝĐƟŽŶĂƌŝĞƐ͘EŽŶĞŽĨ
ƚŚŝƐŝƐĐŽŵƉůŝĐĂƚĞĚ͘/ƚΖƐũƵƐƚĂƉƌŽĐĞƐƐŽĨƐŝŵƉůĞ͕ůŽŐŝĐĂůƐƚĞƉƐ͘

EŽǁƚŚĂƚǁĞΖǀĞůĞĂƌŶĞĚĂďŽƵƚƚŚĞĨƵŶĚĂŵĞŶƚĂůƐŽĨƉƌŽŐƌĂŵŵŝŶŐĨŽƌǁƌŝƟŶŐƐĐƌŝƉƚƐ͕ŝƚΖƐƟŵĞ
ƚŽĚŝŐŝŶƚŽƚŚĞǁŽƌůĚŽĨŽďũĞĐƚƐ͘^ŝŶĐĞĞǀĞƌLJƚŚŝŶŐŝŶhŶŝƚLJŝƐĂŶŽďũĞĐƚ͕LJŽƵŶĞĞĚƚŽŬŶŽǁŚŽǁ
ƚŽĂĐĐĞƐƐƚŚĞŽŵƉŽŶĞŶƚƐŽĨĂŶŽďũĞĐƚ͕ĂŶĚŚŽǁƚŽĐŽŵŵƵŶŝĐĂƟŽŶďĞƚǁĞĞŶŽďũĞĐƚƐ͕ďLJ
ƵƐŝŶŐĚŽƚƐLJŶƚĂdž͘zŽƵŚĂǀĞƐĞĞŶƐŽŵĞĚŽƚƐLJŶƚĂdžƵƐĞĚĂůƌĞĂĚLJŝŶƚŚĞĞdžĂŵƉůĞƐǁĞΖǀĞĐŽĚĞĚ͘
/ŶŶĞdžƚĐŚĂƉƚĞƌ͕LJŽƵǁŝůůƐĞĞŚŽǁƚŚŽƐĞĚŽƚƐǁŽƌŬ͘

[ 87 ]
8VLQJ'RW6\QWD[IRU2EMHFW
6
Communication

^ĐƌŝƉƚƐĚŽŵĂŶLJƚŚŝŶŐƐďLJĂĐĐĞƐƐŝŶŐƚŚĞĨĞĂƚƵƌĞƐďƵŝůƚŝŶƚŽhŶŝƚLJĂŶĚƚŚŝƌĚͲƉĂƌƚLJ
ƉůƵŐŝŶƐ͘dŚĞhŶŝƚLJ^ĐƌŝƉƚŝŶŐZĞĨĞƌĞŶĐĞŝƐŽƵƌůŝŶŬƚŽƚŚĞďƵŝůƚͲŝŶhŶŝƚLJĨĞĂƚƵƌĞƐ͘
dŚĞƚŚŝŶŐŝƐ͕ĞdžĂĐƚůLJŚŽǁĚŽǁĞŝŶǀŽŬĞĂůůŽĨƚŚŽƐĞhŶŝƚLJĨĞĂƚƵƌĞƐ͍

^ŽĨĂƌĂůůǁĞΖǀĞĐŽǀĞƌĞĚŝƐďĂƐŝĐηƉƌŽŐƌĂŵŵŝŶŐ͘'ƌĂŶƚĞĚ͕ƚŚĞĞdžĂŵƉůĞĐŽĚĞ
ǁĞΖǀĞƐĞĞŶŚĂƐŝŶĐůƵĚĞĚƐŽŵĞŽƚ^LJŶƚĂdž͕ƐƵĐŚĂƐĞďƵŐ͘>ŽŐ;ͿƚŽƐĞŶĚŽƵƚƉƵƚ
ƚŽhŶŝƚLJΖƐŽŶƐŽůĞ͘dŚŝƐŝƐŽŶĞŽĨƚŚŽƐĞhŶŝƚLJĨĞĂƚƵƌĞƐ͘/ŶƚŚĞůĂƐƚĐŚĂƉƚĞƌ͕ǁĞ
ĞǀĞŶƐĂǁƐŽŵĞŵŽƌĞŽƚ^LJŶƚĂdž͕ƉŽŶLJ͘<ĞLJĂŶĚƉŽŶLJ͘sĂůƵĞ͕ǁŚŝĐŚŚĂƐŶŽƚŚŝŶŐ
ƚŽĚŽǁŝƚŚhŶŝƚLJ͘dŚĞƐĞĂƌĞũƵƐƚηKKW;KďũĞĐƚKƌŝĞŶƚĞĚWƌŽŐƌĂŵŵŝŶŐͿ
ƌĞůĂƚĞĚĨĞĂƚƵƌĞƐ͘

/ŶďŽƚŚĐĂƐĞƐ͕ƚŚĞƌĞΖƐƐŽŵĞƚLJƉĞŽĨĐŽŵŵƵŶŝĐĂƚŝŽŶƚĂŬŝŶŐƉůĂĐĞƚŽĂĐĐĞƐƐ
ŵĞƚŚŽĚƐĂŶĚĚĂƚĂƚŽŵĂŬĞƚŚŝŶŐƐŚĂƉƉĞŶ͘dŽƚŚĞďĞŐŝŶŶĞƌ͕ƚŚŽƐĞĚŽƚƐŵĂLJďĞ
ŽĚĚůŽŽŬŝŶŐĂŶĚĐŽŶĨƵƐŝŶŐ͕ĂŶĚƚŚĞLJŵĂLJĂƐŬ͕ΗtŚĂƚΖƐƚŚĞĚĞĂůǁŝƚŚĂůůƚŚŽƐĞ
ĚĂƌŶĚŽƚƐďĞƚǁĞĞŶǁŽƌĚƐ͍ΗtĞůů͕ŝĨLJŽƵΖǀĞďĞĞŶƵƐŝŶŐƚŚĞ/ŶƚĞƌŶĞƚĂŶĚƉĂŝĚĂŶLJ
ĂƚƚĞŶƚŝŽŶĂƚĂůů͕LJŽƵΖǀĞďĞĞŶƵƐŝŶŐƚŚŽƐĞĚŽƚƐ͕ƉƌŽďĂďůLJĨŽƌLJĞĂƌƐ͕ĂŶĚĚŝĚŶΖƚ
ƉĂLJŵƵĐŚĂƚƚĞŶƚŝŽŶƚŽƚŚĞŵ͘

tĞƐĞĞŚŽǁƚŽĂĐĐĞƐƐƚŚĞƉŽǁĞƌŽĨŽƚ^LJŶƚĂdžĂƐǁĞĐŽǀĞƌƚŚĞĨŽůůŽǁŝŶŐƐĞĐƟŽŶƐ͗
¤ + 2 J - @ 2 9 ì = A / @ 0  < ? 2 9 @ 9 C C . A ? ?

‹ tŽƌŬŝŶŐǁŝƚŚŽďũĞĐƚƐ
? / @ 0 ¤ + 2 J - @ 2 9 ì / @ 9 ? : . / , 2
)

‹ ĐĐĞƐƐŝŶŐ'ĂŵĞKďũĞĐƚƐƵƐŝŶŐĚƌĂŐͲĂŶĚͲĚƌŽƉǀĞƌƐƵƐǁƌŝƟŶŐĐŽĚĞ

^ŽůĞƚΖƐŐĞƚŽŶǁŝƚŚŝƚ͘͘͘
hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

Using Dot Syntax is like addressing a letter


ůŝŬĞƚŚŝƐ͍
ΠB A . ? A A @ ? + F A 2 1 / @ 0

www.unity3d.com

dŚĂƚΖƐƌŝŐŚƚ͕ĂǁĞďĂĚĚƌĞƐƐ͘'ĞĞ͕/ǁŽŶĚĞƌǁŚLJŝƚΖƐĐĂůůĞĚĂǁĞďĂĚĚƌĞƐƐ͍

6LPSOLI\LQJWKHGRWVLQ'RW6\QWD[
ĮĐƟƟŽƵƐ
A . A / ? 9 F 9 / > / @ 0 9 C C . A ? ? I
&

A . . - + . 2 + @
 $

4 4 F - J 2 . A A 2

ƐƐĞdž͕sd

zŽƵΖǀĞƵŶĚĞƌƐƚŽŽĚŚŽǁƚŽƌĞĂĚĂŶĂĚĚƌĞƐƐůŝŬĞƚŚŝƐƐŝŶĐĞLJŽƵǁĞƌĞĂŬŝĚ͘>ĞƚΖƐƚĂŬĞĂůŽŽŬĂƚ
ŝƚĂŐĂŝŶƵƐŝŶŐĂĚŝīĞƌĞŶƚĨŽƌŵĂƚ͗

Post Office Syntax

Terry Norton Specific

22 myStreet

Essex, VT General

Dot Syntax

Essex, VT
. 22 myStreet
. Terry Norton

General Specific

Žƚ^LJŶƚĂdžŝƐŶΖƚƐŽĐŽŶĨƵƐŝŶŐ͘/ƚΖƐũƵƐƚĂŶĂĚĚƌĞƐƐŝŶĂĚŝīĞƌĞŶƚĨŽƌŵĂƚ͕ŝŶĂ
K + + ; / @ 0 9 2 2 1 9 2 G

ǁĂLJƚŽůŽĐĂƚĞƚŚŝŶŐƐ͘,ĞƌĞΖƐĂŶĞdžĂŵƉůĞ͗ŝŵĂŐŝŶĞǁĞŵĞƚŝŶƵƌŽƉĞƐŽŵĞǁŚĞƌĞ͕ĂŶĚ/ĂƐŬ
LJŽƵƚŽŐĞƚŵLJƐƵŶŐůĂƐƐĞƐƵƐŝŶŐŽŶůLJƚŚŝƐŝŶĨŽƌŵĂƟŽŶ͗

h^͘sĞƌŵŽŶƚ͘ƐƐĞdž͘ϮϮŵLJ^ƚƌĞĞƚ͘ϮŶĚ&ůŽŽƌ͘ŽĸĐĞ͘ĚĞƐŬ͘ĐĞŶƚĞƌĚƌĂǁĞƌ͘ƐƵŶŐůĂƐƐĞƐ

tŽƵůĚLJŽƵŚĂǀĞĂŶLJƉƌŽďůĞŵůŽĐĂƟŶŐƚŚĞŵ͍

[ 90 ]
Ä  ¾  Æ Á ä g

8VLQJDFFHVVPRGLÀHUVIRUYDULDEOHVDQGPHWKRGV
ƐƵŶŐůĂƐƐĞƐ͘DLJŚŽƵƐĞŝƐŶΖƚŽƉĞŶƚŽ
: + < > C E + . A ? A A + @ A = / 0 / ? ? < A 2 . - / @ 0 2 + . A 2 . / A B A F -
!

ƚŚĞƉƵďůŝĐ͖ŝƚΖƐĂƉƌŝǀĂƚĞƌĞƐŝĚĞŶĐĞ͕ƐŽƚŚĞĚŽŽƌŝƐůŽĐŬĞĚ͘dŚŝƐŵĞĂŶƐLJŽƵĚŽŶΖƚŚĂǀĞĂĐĐĞƐƐ
2 + 2 1 A ? < @ 0 > 9 ? ? A ? D

1 A ? 9 F A . < > A ? + E 9 : : A ? ? 9 , , > - 2 + F A F = A . B 9 . / 9 = > A ? 9 @ C F A 2 1 + C ? + E 9 : > 9 ? ? + . ? : . / , 2 D




/Ŷη͕ǁŚĞŶǁĞĐƌĞĂƚĞĂŵĞŵďĞƌǀĂƌŝĂďůĞŽƌŵĞƚŚŽĚŝŶĂƐĐƌŝƉƚ͕ŝƚŝƐƉƌŝǀĂƚĞďLJĚĞĨĂƵůƚ͘
tĞĐĂŶĂůƐŽĞdžƉůŝĐŝƚůLJƐƉĞĐŝĨLJƚŚĂƚŝƚΖƐprivate
D

private
A . A G F A 9 @ ? I
&

ǀĂƌŝĂďůĞǁŝůůŶŽƚƐŚŽǁŝŶƚŚĞ
    9 ? 9 * + F , + @ A @ 2 , . + , A . 2 -

‹     

‹ dŚĞǀĂƌŝĂďůĞŽƌŵĞƚŚŽĚǁŝůůŶŽƚďĞĂĐĐĞƐƐŝďůĞĨƌŽŵŽƚŚĞƌƐĐƌŝƉƚƐ

public
Ž A : 9 @ ? , A : / E - 9 B 9 . / 9 = > A + . F A 2 1 + C 2 + = A D

public
A . A G F A 9 @ ? I
&

ǀĂƌŝĂďůĞǁŝůůƐŚŽǁŝŶƚŚĞ
    9 ? 9 * + F , + @ A @ 2 , . + , A . 2 -

‹     

‹ dŚĞǀĂƌŝĂďůĞŽƌŵĞƚŚŽĚǁŝůůďĞĂĐĐĞƐƐŝďůĞĨƌŽŵŽƚŚĞƌƐĐƌŝƉƚƐ

ƚŚĞƐLJƐƚĞŵƵƐĞĚƚŽůŽĐĂƚĞĂŶĚĐŽŵŵƵŶŝĐĂƚĞǁŝƚŚĂǀĂƌŝĂďůĞ
¤ + 2 J - @ 2 9 ì / ? + . F A 2 1 + C / @ 9 @

ŽďũĞĐƚ͘dŽƵŶĚĞƌƐƚĂŶĚŚŽǁƚŽƵƐĞŽƚ^LJŶƚĂdž͕ǁĞŚĂǀĞƚŽŬŶŽǁƚŚĞƌĞůĂƟŽŶƐŚŝƉďĞƚǁĞĞŶ
9 : > 9 ? ? 9 @ C / 2 ? + =  A : 2 ? D

ƐĐƌŝƉƚĂůǁĂLJƐŚĂƐĂĐĐĞƐƐƚŽŝƚƐŽǁŶŵĞŵďĞƌǀĂƌŝĂďůĞĂŶĚŵĞƚŚŽĚƐǁŚĞƚŚĞƌ
ƚŚĞLJΖƌĞprivate public
û

Working with objects is a class act


/ΖŵƚŚƌŽǁŝŶŐƚŚĞǁŽƌĚŽďũĞĐƚ ĂƌŽƵŶĚůŝŬĞLJŽƵǁĞƌĞďŽƌŶǁŝƚŚƚŚĞŬŶŽǁůĞĚŐĞŽĨǁŚĂƚĂŶ
ŽďũĞĐƚŝƐ͘ĐƚƵĂůůLJLJŽƵĚŽŬŶŽǁǁŚĂƚŝƚŵĞĂŶƐ͘dŚĞĐŽīĞĞĐƵƉLJŽƵŵĂLJŚĂǀĞŝŶLJŽƵƌŚĂŶĚ
ŝƐĂŶŽďũĞĐƚ͕ĂƌĞĂůŽŶĞ͘dŚĂƚh&KŇLJŝŶŐĂƌŽƵŶĚĂƚŶŝŐŚƚŝƐĂŶŽďũĞĐƚ͖ĞǀĞŶŝĨLJŽƵĐĂŶΖƚ
ŝĚĞŶƟĨLJŝƚ͘/ŶhŶŝƚLJ͕LJŽƵŵĂLJŚĂǀĞĂŇLJŝŶŐƐĂƵĐĞƌŝŶLJŽƵƌ^ĐĞŶĞ͕ďƵƚŝƚΖƐŽďǀŝŽƵƐůLJŶŽƚĂƌĞĂů
ŇLJŝŶŐƐĂƵĐĞƌ͕ŝƚΖƐĂǀŝƌƚƵĂůŽŶĞ͘,ŽǁĞǀĞƌ͕ŝŶƚŚĞǀŝƌƚƵĂůǁŽƌůĚŽĨŐĂŵŝŶŐ͕ŵŽƐƚƉĞŽƉůĞǁŽƵůĚ
: + @ ? / C A . 2 1 / @ 0 ? 2 1 A - : 9 @ ? A A + @ 2 1 A ? : . A A @ 9 ? + =  A : 2 ? D

/ĨLJŽƵĐĂŶĞdžƉĂŶĚLJŽƵƌŵŝŶĚũƵƐƚĂůŝƩůĞďŝƚŵŽƌĞ͕ƉĞƌŚĂƉƐLJŽƵĐĂŶĂĐĐĞƉƚƚŚĂƚŶŽƚĂůůŽďũĞĐƚƐ
/ @ @ / 2 - 1 9 B A 2 + = A ? + F A 2 1 / @ 0 - + < : 9 @ ? A A / @ 9 0 9 F A J : A @ A D @ E 9 : 2 G 2 1 A B 9 ? 2 F 9  + . / 2 - + E
) !

+ =  A : 2 ? / @ @ / 2 - 9 . A @ + 2 B / ? < 9 > > - / @ 2 1 A J : A @ A D


)

[ 91 ]
hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

/ŶĂĐŽŵƉƵƚĞƌ͕ĂŶŽďũĞĐƚŝƐũƵƐƚĂƐŵĂůůƐĞĐƟŽŶŽĨLJŽƵƌĐŽŵƉƵƚĞƌΖƐŵĞŵŽƌLJƚŚĂƚĂĐƚƐůŝŬĞĂ
ĐŽŶƚĂŝŶĞƌ͘dŚĞĐŽŶƚĂŝŶĞƌĐĂŶŚĂǀĞƐŽŵĞĚĂƚĂƐƚŽƌĞĚŝŶǀĂƌŝĂďůĞƐĂŶĚƐŽŵĞŵĞƚŚŽĚƐƚŽǁŽƌŬ
ǁŝƚŚƚŚĞĚĂƚĂ͘

dŚĞďĞƐƚĞdžĂŵƉůĞ/ĐĂŶƐŚŽǁLJŽƵŝƐƚŚĞŽďũĞĐƚLJŽƵΖǀĞďĞĞŶƵƐŝŶŐƐŝŶĐĞLJŽƵƐƚĂƌƚĞĚƚŚŝƐŬ͘

/ŶDŽŶŽĞǀĞůŽƉ͕ǁĞΖǀĞďĞĞŶǁŽƌŬŝŶŐǁŝƚŚƚŚĞƐĐƌŝƉƚĐĂůůĞĚLearningScript͘/ŶhŶŝƚLJǁĞ
^ĐƌŝƉƚ͕ďƵƚŝƚΖƐĂĐƚƵĂůůLJĂĐůĂƐƐ͕ǁŚŝĐŚŵĞĂŶƐŝƚΖƐĂĚĞĮŶŝƟŽŶŽĨĂƚLJƉĞŽĨ
< ? A 2 1 A 0 A @ A . 9 > 2 A . F

ĐŽŶƚĂŝŶĞƌ͘>ŽŽŬĂƚůŝŶĞϰŽĨƚŚĞĮůĞ͗
public class LearningScript : MonoBehaviour

^ĞĞƚŚĂƚƐĞĐŽŶĚǁŽƌĚ͍dŚĂƚŵĞĂŶƐƚŚĂƚLearningScriptŝƐĂĐůĂƐƐ͘/ŶƚŚŝƐĐůĂƐƐ͕ǁĞĚĞĮŶĞĚ
/ 2 ? F A F = A . B 9 . / 9 = > A ? 9 @ C F A 2 1 + C ? D @ - B 9 . / 9 = > A @ + 2 C A : > 9 . A C / @ 9 F A 2 1 + C / ? 9 F A F = A .
'

B 9 . / 9 = > A + E 2 1 A : > 9 ? ? D

/ŶƚƌŽĚƵĐŝŶŐƚŚĞƵŝůĚŝŶŐůŽĐŬƐĨŽƌhŶŝƚLJ^ĐƌŝƉƚƐ
@ Þ ß à G 2 + > C - + < 9 = + < 2 2 1 A F 9 0 / : 2 1 9 2
! !

— ’ á – S

ŚĂƉƉĞŶƐǁŚĞŶǁĞĂƩĂĐŚƚŚĞƐĐƌŝƉƚ;ĐůĂƐƐͿƚŽĂ'ĂŵĞKďũĞĐƚ͘^ŚĂnjĂŵ͊͊dŚĞƐĐƌŝƉƚďĞĐŽŵĞƐĂ
ŽŵƉŽŶĞŶƚŽďũĞĐƚ͕ĂƚLJƉĞŽĨĐŽŶƚĂŝŶĞƌĨŽƌƚŚĞ'ĂŵĞKďũĞĐƚƚŚĂƚǁĞĚĞĮŶĞĚĂƐŚĂǀŝŶŐƐŽŵĞ
ǀĂƌŝĂďůĞƐƚŽƐƚŽƌĞĚĂƚĂĂŶĚƐŽŵĞŵĞƚŚŽĚƐƚŽǁŽƌŬƚŚĂƚƚŚĂƚĚĂƚĂ͘

ĞƐŝĚĞƐƚŚĞǀŝƐƵĂůŵĞƐŚŝŶƚŚĞ^ĐĞŶĞ͕ĐĂŶLJŽƵǀŝƐƵĂůŝnjĞŝŶLJŽƵƌŵŝŶĚƚŚĂƚĂ'ĂŵĞKďũĞĐƚŝƐ
ũƵƐƚĂďƵŶĐŚŽĨĚŝīĞƌĞŶƚƚLJƉĞƐŽĨŽŵƉŽŶĞŶƚŽďũĞĐƚƐĂƐƐĞŵďůĞĚƚŽŐĞƚŚĞƌƚŽĐŽŶƐƚƌƵĐƚƚŚĂƚ
'ĂŵĞKďũĞĐƚ͍

ĂĐŚŽĨƚŚŽƐĞŝŶĚŝǀŝĚƵĂůŽŵƉŽŶĞŶƚƐƐŚŽǁŶŝŶƚŚĞ ǁŝůůďĞĐŽŵĞĂŶŽďũĞĐƚŝŶŽƵƌ
   

    

ĐŽŵƉƵƚĞƌΖƐŵĞŵŽƌLJǁŚĞŶǁĞĐůŝĐŬŽŶƚŚĞWůĂLJďƵƩŽŶ͘

^ĐĞŶĞ
J A > A : 2 9 @ - 9 F A # =  A : 2 / @ 2 1 A G 2 1 A @ > + + ; 9 2 2 1 A     D + . A ì 9 F , > A G ? A > A : 2
% H

    

DĂŝŶĂŵĞƌĂ DĂŝŶĂŵĞƌĂ
2 1 A 9 F A # =  A : 2 D 1 A . A 9 . A ? A B A . 9 > * + F , + @ A @ 2 ? + @ 2 1 A
% 

'ĂŵĞKďũĞĐƚ͘>ŽŽŬĂƚĞĂĐŚŽĨƚŚŽƐĞĚĞĮŶĞĚŽŵƉŽŶĞŶƚƐ͘ǀĞƌLJŽŶĞŽĨƚŚŽƐĞŽŵƉŽŶĞŶƚƐ
ƐƚĂƌƚĞĚŽīĂƐĂĐůĂƐƐĮůĞŝŶhŶŝƚLJ͕ĚĞĮŶŝŶŐĂƚLJƉĞŽĨĐŽŶƚĂŝŶĞƌŽĨǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͘
tĞĚŽŶΖƚƐĞĞŽƌŵŽĚŝĨLJƚŚŽƐĞhŶŝƚLJĐůĂƐƐĮůĞƐ͕ďƵƚƚŚĞLJΖƌĞŝŶhŶŝƚLJƐŽŵĞǁŚĞƌĞ͘

‹ dŚĞŶĂŵĞŽĨƚŚĞĐůĂƐƐŝƐĂůƐŽŬŶŽǁŶĂƐƚŚĞŽďũĞĐƚƚLJƉĞŽĨƚŚĞŽďũĞĐƚƚŚĂƚǁŝůůďĞ
ĐƌĞĂƚĞĚŝŶŵĞŵŽƌLJĨƌŽŵƚŚĂƚĐůĂƐƐ͕ǁŚĞŶƚŚĞWůĂLJďƵƩŽŶŝƐĐůŝĐŬĞĚ͘
int string
O < ? 2 > / ; A 9 @ G + . 9 / ? 9 2 - , A + E C 9 2 9 G 2 1 A @ 9 F A + E 9 : > 9 ? ? / ? 9 > ? + 9 2 - , A

‹
+ E C 9 2 9 D

‹ dŚŝƐŵĞĂŶƐƚŚĂƚǁŚĞŶǁĞĚĞĐůĂƌĞĂǀĂƌŝĂďůĞĂŶĚƐƉĞĐŝĨLJƚŚĞƚLJƉĞŽĨĚĂƚĂŝƚǁŝůůƐƚŽƌĞ͕
LearningScript
/ 2 : 9 @  < ? 2 9 ? A 9 ? / > - ? 2 + . A 9 . A E A . A @ : A 2 + 9 @ + =  A : 2 + E 2 1 A 2 - , A G 9 ?

ƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐůŝŶĞŽĨĐŽĚĞ͗
LearningScript myVariable;

[ 92 ]
Ä  ¾  Æ Á ä g

‹ ^ƚŽƌŝŶŐĂƌĞĨĞƌĞŶĐĞƚŽĂŶŽďũĞĐƚŝŶĂǀĂƌŝĂďůĞĚŽĞƐŶŽƚŵĞĂŶǁĞĂƌĞƐƚŽƌŝŶŐƚŚĞ
ĂĐƚƵĂůŽďũĞĐƚ͘/ƚŵĞĂŶƐǁĞĂƌĞƐƚŽƌŝŶŐƚŚĞůŽĐĂƟŽŶŝŶŵĞŵŽƌLJŽĨƚŚĂƚŽďũĞĐƚ͘/ƚΖƐ
ũƵƐƚĂƌĞĨĞƌĞŶĐĞƚŚĂƚƉŽŝŶƚƐƚŽƚŚĞŽďũĞĐƚŝŶŵĞŵŽƌLJƐŽƚŚĂƚƚŚĞĐŽŵƉƵƚĞƌŬŶŽǁƐ
ǁŚĞƌĞƚŽĂĐĐĞƐƐƚŚĞŽďũĞĐƚΖƐĚĂƚĂĂŶĚŵĞƚŚŽĚƐ͘dŚŝƐŵĞĂŶƐǁĞĐĂŶŚĂǀĞƐĞǀĞƌĂů
ǀĂƌŝĂďůĞƐƐƚŽƌŝŶŐĂƌĞĨĞƌĞŶĐĞƚŽƚŚĞƐĂŵĞŽďũĞĐƚ͕ďƵƚƚŚĞƌĞΖƐƐƟůůŽŶůLJŽŶĞĂĐƚƵĂů
+ =  A : 2 / @ F A F + . - D

ŝƐũƵƐƚĂĮůĞŽŶLJŽƵƌŚĂƌĚĚƌŝǀĞ͕ĂŶĚƚŚĞƌĞΖƐŽŶůLJĞǀĞƌŽŶĞĮůĞ͘dŚĞĐůĂƐƐ
V ÿ û ý  

ĮůĞƐŝŵƉůLJĚĞĮŶĞƐĂƚLJƉĞŽĨĐŽŶƚĂŝŶĞƌŽĨǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐƚŚĂƚǁŝůůďĞĐŽŵĞ
ĂŽŵƉŽŶĞŶƚŽďũĞĐƚŝŶƚŚĞŵĞŵŽƌLJǁŚĞŶLJŽƵĐůŝĐŬŽŶWůĂLJ͘zŽƵĐĂŶĂƩĂĐŚƚŚĞ
ƐĐƌŝƉƚƚŽŵĂŶLJ'ĂŵĞKďũĞĐƚƐ͕ďƵƚƚŚĞƌĞΖƐƐƟůůŽŶůLJŽŶĞĮůĞŽŶLJŽƵƌŚĂƌĚĚƌŝǀĞ͘

ƩĂĐŚŝŶŐĂ ^ĐƌŝƉƚƚŽĂ'ĂŵĞKďũĞĐƚŝƐůŝŬĞƉůĂĐŝŶŐĂƐƟĐŬLJͲŶŽƚĞŽŶƚŚĞ'ĂŵĞKďũĞĐƚ͘tŚĞŶ
ǁĞĐůŝĐŬŽŶƚŚĞWůĂLJďƵƩŽŶ͕hŶŝƚLJůŽŽŬƐĂƚŽƵƌ'ĂŵĞKďũĞĐƚ͕ƐĞĞƐƚŚĞƐƟĐŬLJͲŶŽƚĞǁŚŝĐŚƐĂLJƐ͕
ΗdŚŝƐ'ĂŵĞKďũĞĐƚŝƐƐƵƉƉŽƐĞĚƚŽŚĂǀĞĂŽŵƉŽŶĞŶƚŽĨƚLJƉĞLearningScript
D 9 ; A ? + F A
#

ƌŽŽŵŝŶƚŚĞĐŽŵƉƵƚĞƌΖƐŵĞŵŽƌLJƚŽŚŽůĚƚŚŝƐŽďũĞĐƚŽĨǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐĂƐĚĞƐĐƌŝďĞĚŝŶ
LearningScriptĐůĂƐƐĮůĞ͘Η
2 1 A

/ĨǁĞǁĞƌĞƚŽĂƩĂĐŚLearningScript WůĂLJ͕ƚŚĞƌĞǁŝůů
2 + 6 5 5 5 9 F A # =  A : 2 ? G 9 @ C : > / : ; + @
%

ďĞϭϬϬϬƐĞƉĂƌĂƚĞƐĞĐƟŽŶƐĐƌĞĂƚĞĚŝŶLJŽƵƌĐŽŵƉƵƚĞƌΖƐŵĞŵŽƌLJƚŚĂƚĞĂĐŚƐƚŽƌĞƐĂŶŽďũĞĐƚ
LearningScript͘ĂĐŚŽŶĞŚĂƐŝƚƐŽǁŶƐĞƚŽĨǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͕ĂƐĚĞƐĐƌŝďĞĚ
+ E 2 - , A

scriptĮůĞ͘ĂĐŚŽŶĞŽĨƚŚŽƐĞϭϬϬϬƐĞĐƟŽŶƐŽĨĐŽŵƉƵƚĞƌŵĞŵŽƌLJŝƐĂƐĞƉĂƌĂƚĞ
= - 2 1 A

ŽŵƉŽŶĞŶƚŽďũĞĐƚŽĨŝƚƐƌĞƐƉĞĐƟǀĞ'ĂŵĞKďũĞĐƚ͘

h ?  ü   þ    U   û  ú   û  ú  ú ÿ ÿ ý ÿ ú    ú T   ü  ü   

hŶŝƚLJ͖ŝŶŵŽƌĞŐĞŶĞƌĂůηƚĞƌŵƐ͕ĞĂĐŚŽďũĞĐƚƚŚĂƚŐĞƚƐĐƌĞĂƚĞĚĨƌŽŵĂ
 ú ÿ ÿ ý ÿ ú    ú ü ý ü ÿ  ú ü   U  
V T   ü  ü   U   ú ü ú ü ý ü ÿ  ú ü 

 U   ú û    ÿ ú    ý ü þ

Using Dot Syntax in a script


EŽǁƚŚĂƚLJŽƵŬŶŽǁƚŚĂƚ
A 9 : 1 * + F , + @ A @ 2 + =  A : 2 . A ? / C A ? / @ : + F , < 2 A . F A F + . - G ? 2 + . / @ 0 C 9 2 9

ŝŶǀĂƌŝĂďůĞƐ͕ŝƚΖƐƟŵĞƚŽƵƐĞŽƚ^LJŶƚĂdžƚŽĂĐĐĞƐƐƚŚŽƐĞŽŵƉŽŶĞŶƚǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͘

Accessing a Component's own variables and methods


¤ + 2 J - @ 2 9 ì : 9 @ = A < ? A C 2 + 9 : : A ? ? 9 @ - , < = / : B 9 . / 9 = > A + . F A 2 1 + C + @ 9 @ - * + F , + @ A @ 2 + @ 9 @ -

'ĂŵĞKďũĞĐƚ͘ǀĞŶƚŚŽƵŐŚĂŽŵƉŽŶĞŶƚĂůǁĂLJƐŚĂƐĂĐĐĞƐƐƚŽŝƚƐŽǁŶǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͕
ǁĞĐĂŶƐƟůůƵƐĞŽƚ^LJŶƚĂdžŝĨǁĞǁĂŶƚ͘

[ 93 ]
hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

/ŶŽƌĚĞƌƚŽŚĂǀĞĂĐĐĞƐƐƚŽĂǀĂƌŝĂďůĞŽƌŵĞƚŚŽĚ͕ǁĞŚĂǀĞƚŽŬŶŽǁŝƚƐůŽĐĂƟŽŶ͘>ĞƚΖƐƐƚĂƌƚďLJ
LearningScript
> + + ; / @ 0 / @ D

,ĞƌĞΖƐĂŶŽǀĞƌǀŝĞǁŽĨŚŽǁƚŽĂĐĐĞƐƐĂǀĂƌŝĂďůĞŽƌŵĞƚŚŽĚĨƌŽŵǁŝƚŚŝŶƚŚĞĐƵƌƌĞŶƚŽŵƉŽŶĞŶƚ͗

Dot Syntax for the current Component


To access the item in bold:

1
variable or method

2
this variable or method

7LPHIRUDFWLRQ²DFFHVVLQJDYDULDEOHLQWKHFXUUHQW&RPSRQHQW
>ĞƚΖƐůŽŽŬĂƚĂĐĐĞƐƐŝŶŐĂ LearningScript LearningScript
B 9 . / 9 = > A / @ E . + F / @ ? / C A D

LearningScriptĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐĮŐƵƌĞ͗
ó ô

+ C / E -
#

[ 94 ]
Ä  ¾  Æ Á ä g

^ĂǀĞƚŚĞĮůĞ͘
õ ô

WůĂLJ͘
ö ô

@ @ / 2 - G : > / : ; + @
! )

What just happened?


ŽŶƐŽůĞ
A . A 9 . A 2 1 A + < 2 , < 2 ? / @ 2 1 A I
&

ŶĂŶĂůLJƐŝƐŽĨƚŚĞĐŽĚĞƐŚŽǁŶŝŶƚŚĞƉƌĞǀŝŽƵƐĐŽĚĞƐĐƌĞĞŶƐŚŽƚŝƐĂƐĨŽůůŽǁƐ͗

>ŝŶĞϲ͗string myString = "Access the variable ";

myString ǀĂƌŝĂďůĞƚŚĂƚǁŝůůďĞĂĐĐĞƐƐĞĚ
/ ? 2 1 A

‹ EŽƟĐĞƚŚĂƚŝƚΖƐprivateďLJĚĞĨĂƵůƚ͕LJĞƚŝƚĐĂŶƐƟůůďĞĂĐĐĞƐƐĞĚ

>ŝŶĞϭϳ͗Debug.Log(myString + "the normal way.");

‹ dŚŝƐŝƐŚŽǁǁĞŚĂǀĞďĞĞŶĂĐĐĞƐƐŝŶŐƚŚĞǀĂůƵĞƐƚŽƌĞĚŝŶĂǀĂƌŝĂďůĞ͕ďLJũƵƐƚƵƐŝŶŐ
2 1 A B 9 . / 9 = > A @ 9 F A

string myString Accessing this variable͕ŝƐƐƵďƐƟƚƵƚĞĚ


1 A B 9 > < A / @ G


‹
E + . 2 1 A B 9 . / 9 = > A @ 9 F A

myStringŝƐďĞŝŶŐĂĐĐĞƐƐĞĚǁŝƚŚŽƵƚƵƐŝŶŐŽƚ^LJŶƚĂdžŽƌGetComponent()
G

‹
ďĞĐĂƵƐĞĂƐĐƌŝƉƚĂůǁĂLJƐŚĂƐĂĐĐĞƐƐƚŽŝƚƐŽǁŶǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ

>ŝŶĞϭϴ͗Debug.Log(this.myString + "using 'this' keyword.");

myString
/ ? = A / @ 0 9 : : A ? ? A C < ? / @ 0 ¤ + 2 J - @ 2 9 ì

thisŬĞLJǁŽƌĚƌĞĨĞƌƐƚŽƚŚĞĐƵƌƌĞŶƚŝŶƐƚĂŶĐĞŽĨƚŚĞĐůĂƐƐ͕
1 A


‹
2 1 A : < . . A @ 2 * + F , + @ A @ 2

[ 95 ]
hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

>ŝŶĞϭϵ͗Debug.Log(GetComponent<LearningScript>().myString + "using
GetComponent.");

myString
/ ? = A / @ 0 9 : : A ? ? A C < ? / @ 0 ¤ + 2 J - @ 2 9 ì 9 0 9 / @

dŚŝƐƟŵĞ͕ƚŚĞŐĞŶĞƌŝĐGetComponent<T>()
F A 2 1 + C / ? . A 2 . / A B / @ 0 2 1 A

‹
LearningScript
* + F , + @ A @ 2

Debug.Log(this);
K / @ A 4 4 I

this ŽŶƐŽůĞƐŽǁĞĐĂŶƐĞĞƚŚĂƚthis
? / @ 0 G 2 1 A * + F , + @ A @ 2 / ? ? A @ 2 2 + 2 1 A / ? 2 1 A
)

‹
LearningScript
: < . . A @ 2 * + F , + @ A @ 2 + =  A : 2

Debug.Log(GetComponent<LearningScript>());
K / @ A 4 7 I

GetComponent<LearningScript>()
? / @ 0 G 2 1 A * + F , + @ A @ 2 / ? ? A @ 2 2 + 2 1 A
)

‹
ŽŶƐŽůĞ͕ƐŽǁĞĐĂŶƐĞĞƚŚŝƐĂůƐŽŝƐƚŚĞĐƵƌƌĞŶƚLearningScript
* + F , + @ A @ 2 + =  A : 2

thisŬĞLJǁŽƌĚĂŶĚGetComponent<LearningScript>()
1 A 9 . A = + 2 1 . A 2 . / A B / @ 0


‹
LearningScript
2 1 A ? 9 F A * + F , + @ A @ 2 + =  A : 2

tŚŽĂ͊͊tŚĂƚΖƐǁŝƚŚůŝŶĞϭϴ͍

EŽƟĐĞŝƚĞŵϭŝŶƚŚĞŐƌĂƉŚŝĐƵŶĚĞƌƚŚĞƐĞĐƟŽŶ͕ĐĐĞƐƐŝŶŐĂŽŵƉŽŶĞŶƚΖƐŽǁŶǀĂƌŝĂďůĞƐĂŶĚ
͍dŚŝƐŝƐƚŚĞƵƐƵĂůǁĂLJǁĞǁŝůůĂĐĐĞƐƐǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐŝŶƚŚĞĐƵƌƌĞŶƚƐĐƌŝƉƚ͖
Q ß

á ’ ™ b œ

ŶŽŽƚ^LJŶƚĂdžƌĞƋƵŝƌĞĚ͘dŚŝƐŝƐŚŽǁǁĞΖǀĞďĞĞŶĚŽŝŶŐŝƚĨƌŽŵƚŚĞďĞŐŝŶŶŝŶŐŽĨƚŚŝƐŬ͘/ƚΖƐ
ŚŽǁǁĞǁŝůůƉƌŽďĂďůLJĐŽŶƟŶƵĞƚŽĂĐĐĞƐƐƚŚĞŵ͘,ŽǁĞǀĞƌ͕ǁĞĚŽŚĂǀĞƚŚĞŽƉƟŽŶŽĨĂĐĐĞƐƐŝŶŐ
2 1 A B 9 . / 9 = > A ? 9 @ C F A 2 1 + C ? / @ 2 1 A : < . . A @ 2 * + F , + @ A @ 2 + =  A : 2 < ? / @ 0 ¤ + 2 J - @ 2 9 ì D

ƐLJŽƵĐĂŶƐĞĞĨƌŽŵƚŚĞŽƵƚƉƵƚŽĨůŝŶĞƐϭϳĂŶĚϭϴ͕ƚŚĞǀĂůƵĞƐƚŽƌĞĚŝŶmyString
/ ?

ƐƵďƐƟƚƵƚĞĚŶŽŵĂƩĞƌŚŽǁǁĞĂĐĐĞƐƐmyString
D

^ŽŝĨǁĞƌĞĂůůLJǁĂŶƚĞĚƚŽ͕ǁĞĐŽƵůĚƵƐĞƚŚĞGetComponent()
F A 2 1 + C 2 + . A 2 . / A B A 2 1 A

LearningScript
: < . . A @ 2 * + F , + @ A @ 2 + =  A : 2 + E 2 1 A : > 9 ? ? / @ F A F + . - G 2 1 A @ < ? A ¤ + 2 J - @ 2 9 ì 2 +

myString͘,ŽǁĞǀĞƌ͕ηƉƌŽǀŝĚĞƐĂƐŚŽƌƚĐƵƚƚŽŐĞƚƚŚĞĐƵƌƌĞŶƚŽŵƉŽŶĞŶƚŽďũĞĐƚďLJ
9 : : A ? ?

thisŬĞLJǁŽƌĚ͘
< ? / @ 0 2 1 A

/ƚĞŵϮŝŶƚŚĞŐƌĂƉŚŝĐŝƐƚŚĞƐLJŶƚĂdžƵƐĞĚŝŶůŝŶĞϭϴ͘/ŶƚŚŝƐĞdžĂŵƉůĞ͕ƚŚĞŬĞLJǁŽƌĚthis
? / F , > -

LearningScript
F A 9 @ ? 2 1 A : < . . A @ 2 / @ ? 2 9 @ : A + =  A : 2 + E 2 1 A : > 9 ? ? G 2 1 A : < . . A @ 2 * + F , + @ A @ 2 D

tŚLJĚŽ/ĞǀĞŶŵĞŶƟŽŶƵƐŝŶŐthisĂƚƚŚŝƐƟŵĞ͍>ĂƚĞƌŽŶǁŚĞŶǁĞŐĞƚ
ŝŶƚŽƚŚĞ^ƚĂƚĞDĂĐŚŝŶĞ͕ǁĞǁŝůůďĞƵƐŝŶŐthis͘/ǁĂŶƚLJŽƵƚŽďĞĂǁĂƌĞŽĨ
ǁŚĂƚthisŝƐ͕ĂƐƵďƐƟƚƵƚĞĨŽƌƚŚĞĐƵƌƌĞŶƚŝŶƐƚĂŶĐĞŽďũĞĐƚŽĨĂĐůĂƐƐ͘

[ 96 ]
i j k l m n o p

Accessing another Component on the current GameObject


EŽǁǁĞƐƚĂƌƚƚŽũƵƐƚƚŽƵĐŚŽŶƚŚĞƌĞĂůƉŽǁĞƌŽĨŽƚ^LJŶƚĂdž͕ĐŽŵŵƵŶŝĐĂƟŶŐǁŝƚŚŽƚŚĞƌ
ŽďũĞĐƚƐƚŽĂĐĐĞƐƐǀĂƌŝĂďůĞĚĂƚĂĂŶĚŵĞƚŚŽĚƐ͘tĞǁŝůůŶŽǁĐŽŵŵƵŶŝĐĂƚĞǁŝƚŚĂŶŽƚŚĞƌ
DĂŝŶĂŵĞƌĂ LearningScript
* + F , + @ A @ 2 + @ 2 1 A ? 9 F A 9 F A # =  A : 2 G 2 1 A D A F A F = A . G / ?
% "

ĂƩĂĐŚĞĚƚŽƚŚĞDĂŝŶĂŵĞƌĂĂůƌĞĂĚLJ͘dŚĞĨŽůůŽǁŝŶŐĚŝĂŐƌĂŵǁŝůůĞdžƉůĂŝŶŚŽǁƚŚŝƐŝƐĚŽŶĞ͗

Dot Syntax for the current GameObject


To access another item in bold:

3
Component

4
Component variable or method

7LPHIRUDFWLRQ²FRPPXQLFDWLQJZLWKDQRWKHU&RPSRQHQWRQ
the Main Camera
>ĞƚΖƐĐƌĞĂƚĞĂŶŽƚŚĞƌƐĐƌŝƉƚǁŝƚŚĂǀĂƌŝĂďůĞĂŶĚĂŵĞƚŚŽĚ͕ĂŶĚĂƩĂĐŚŝƚƚŽƚŚĞDĂŝŶĂŵĞƌĂ
G

LearningScriptĐŽŵŵƵŶŝĐĂƚĞǁŝƚŚŝƚ͗
2 1 A @ 1 9 B A

η^ĐƌŝƉƚ
ó ô

TalkToMe
@ @ / 2 - G : . A 9 2 A 9 @ + 2 1 A . 9 @ C @ 9 F A / 2 D
! )

õ ô

public string hereItIs


9 ; A 9 B 9 . / 9 = > A @ 9 F A C D
#

ö ô

hereItIs
? ? / 0 @ ? + F A 2 A ì 2 2 + D
'

ô
.

public MakeMeTalk()
9 ; A 9 F A 2 1 + C @ 9 F A C D
#

ŽŶƐŽůĞ
ô
/

MakeMeTalk()
9 B A + < 2 , < 2 ? + F A 2 A ì 2 2 + 2 1 A D
&

ƩĂĐŚMakeMeTalk() DĂŝŶĂŵĞƌĂ͘EŽǁƚŚĞĐŽĚĞƐŚŽƵůĚůŽŽŬƐŽŵĞƚŚŝŶŐ
Y ô

2 + 2 1 A

> / ; A 2 1 / ? I

[ 97 ]
hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ
ô
q

LearningScript TalkToMe
+ C / E - 2 + . A 2 . / A B A 2 1 A * + F , + @ A @ 2 D
#

r ô

LearningScript hereItIs.
+ C / E - 2 + . A 2 . / A B A 2 1 A C 9 2 9 / @
#

MakeMeTalk()ŵĞƚŚŽĚ͘EŽǁƚŚĞĐŽĚĞ
s ô

LearningScript
+ C / E - 2 + : 9 > > 2 1 A
#

ƐŶŝƉƉĞƚƐŚŽƵůĚůŽŽŬĂƐĨŽůůŽǁƐ͗

ó t ô

J 9 B A - + < . ? : . / , 2 ? D

WůĂLJ
ó ó ô

* > / : ; + @ / @ @ / 2 - D
)

What just happened?


,ĞƌĞΖƐ
2 1 A + < 2 , < 2 I

LearningScript
1 A * + F , + @ A @ 2 : + C A . A 2 . / A B A C 9 B 9 . / 9 = > A 9 @ C : 9 > > A C 9 F A 2 1 + C + @


TalkToMeŽŵƉŽŶĞŶƚ͘>ĞƚΖƐĨŽůůŽǁƚŚĞĐŽĚĞŇŽǁǁŝƚŚƚŚĞƐĞƚǁŽŽŵƉŽŶĞŶƚƐ͘
2 1 A

[ 98 ]
i j k l m n o p

ŶĂŶĂůLJƐŝƐŽĨƚŚĞĐŽĚĞƐŚŽǁŶŝŶƚŚĞƉƌĞǀŝŽƵƐĐŽĚĞƐĐƌĞĞŶƐŚŽƚŝƐĂƐĨŽůůŽǁƐ͗
LearningScript:
# @

>ŝŶĞϲ͗TalkToMe otherComponent;

otherComponent TalkToMe
B 9 . / 9 = > A / ? C A : > 9 . A C 2 + ? 2 + . A 9 B 9 > < A + E 2 - , A
'

TalkToMeŽŵƉŽŶĞŶƚŽďũĞĐƚǁŝůůďĞĐƌĞĂƚĞĚĂŶĚƐƚŽƌĞĚŝŶƚŚĞǀĂƌŝĂďůĞ
'

‹
otherComponent

otherComponent = GetComponent<TalkToMe>();
K / @ A 6 5 I

Start()ŵĞƚŚŽĚǁŚŝĐŚhŶŝƚLJĐĂůůƐŽŶůLJŽŶĐĞƚŽ
A F A F = A . G 2 1 / ? / ? / @ 2 1 A
"

‹
ŝŶŝƟĂůŝnjĞǀĂƌŝĂďůĞƐ͘
GetComponent<T>()
1 A 0 A @ A . / : B A . ? / + @ + E 2 1 A F A 2 1 + C / ? : 9 > > A C 2 + . A 2 . / A B A 9


‹
TalkToMe
. A E A . A @ : A 2 + 2 1 A * + F , + @ A @ 2 + =  A : 2 D 1 / ? / ? / 2 A F 7 + @ 2 1 A , . A B / + < ? 0 . 9 , 1 / :


ƵŶĚĞƌƚŚĞƐĞĐƟŽŶ͕ĐĐĞƐƐŝŶŐĂŶŽƚŚĞƌŽŵƉŽŶĞŶƚŽŶƚŚĞĐƵƌƌĞŶƚ'ĂŵĞKďũĞĐƚ
D

<T>
1 A , 9 . 2 / ? 2 1 A 2 - , A + E * + F , + @ A @ 2 G 2 1 A : > 9 ? ? @ 9 F A G 2 1 9 2 2 1 A F A 2 1 + C


‹
ǁŝůůƌĞƚƵƌŶ͘
otherComponent͘tŚLJ͍^ŽƚŚĂƚĞǀĞƌLJ
1 / ? . A E A . A @ : A / ? ? 2 + . A C / @ 2 1 A B 9 . / 9 = > A


‹
ƟŵĞǁĞŶĞĞĚƚŽƵƐĞƚŚĞTalkToMeŽŵƉŽŶĞŶƚǁŝƚŚŽƚ^LJŶƚĂdž͕ǁĞĐĂŶ
otherComponent
 < ? 2 < ? A 2 1 A . A E A . A @ : A ? 2 + . A C / @ / @ ? 2 A 9 C + E 1 9 B / @ 0 2 + < ? A

GetComponent<TalkToMe>()ĞĂĐŚƟŵĞ͘

>ŝŶĞϭϵ͗Debug.Log("This is the TalkToMe Component: " + otherComponent);

otherComponent ŽŶƐŽůĞ
1 / ? > / @ A + E : + C A ? A @ C ? 2 1 A B 9 > < A ? 2 + . A C / @ 2 + 2 1 A @ / 2 -
 )

‹
ƐŽǁĞĐĂŶƐĞĞƚŚĞƌĞĨĞƌĞŶĐĞƚŚĂƚΖƐƉŽŝŶƟŶŐƚŽƚŚĞTalkToMe
* + F , + @ A @ 2 + =  A : 2

Debug.Log(otherComponent.hereItIs);
K / @ A 4 5 I

hereItIs
¤ + 2 J - @ 2 9 ì / ? < ? A C 2 + > + : 9 2 A 9 @ C . A 2 . / A B A 2 1 A B 9 > < A ? 2 + . A C / @ 2 1 A B 9 . / 9 = > A

‹
TalkToMeŽŵƉŽŶĞŶƚŽďũĞĐƚ͘dŚŝƐŝƐŝƚĞŵϰŝŶƚŚĞŐƌĂƉŚŝĐƵŶĚĞƌƚŚĞƐĞĐƟŽŶ͕
+ E 2 1 A

ĐĐĞƐƐŝŶŐĂŶŽƚŚĞƌŽŵƉŽŶĞŶƚŽŶƚŚĞĐƵƌƌĞŶƚ'ĂŵĞKďũĞĐƚ
D

hereItIsǀĂƌŝĂďůĞŝƐĚĞĐůĂƌĞĚŽŶůŝŶĞϲŽĨƚŚĞTalkToMe
1 A : > 9 ? ? D


EŽƟĐĞƚŚĂƚhereItIs public
/ ? ? + 2 1 9 2 / 2 : 9 @ = A 9 : : A ? ? A C E . + F + 2 1 A . ? : . / , 2 ? D

‹ /ĨǁĞĚŝĚŶΖƚƵƐĞotherComponent͕ǁĞǁŽƵůĚŚĂǀĞǁƌŝƩĞŶƚŚĞŽƚ^LJŶƚĂdž
ĞdžƉƌĞƐƐŝŽŶůŝŬĞƚŚĞĨŽůůŽǁŝŶŐůŝŶĞŽĨĐŽĚĞ͗
GetComponent<TalkToMe>().hereItIs

dŚĞĨŽůůŽǁŝŶŐŝƐĂƐĐƌĞĞŶƐŚŽƚŽĨƚŚĞ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ
A ì 9 F , > A I

[ 99 ]
hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

ƚƚŚĞƚŝŵĞŽĨƚŚŝƐǁƌŝƚŝŶŐ͕hŶŝƚLJǁĂƐƵƉĚĂƚŝŶŐŝƚƐĚŽĐƵŵĞŶƚĂƚŝŽŶ͘dŚĞƉĂŐĞ
ǁĂƐŶŽƚĐŽŵƉůĞƚĞ͘dŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚŝƐƚŚĞŽůĚƉĂŐĞ͖ŚŽǁĞǀĞƌ͕ƚŚĞ
 ý ÿ ÿ  ý   ? ú  ý

otherComponent.MakeMeTalk();
K / @ A 4 6 I

MakeMeTalk() TalkToMe
¤ + 2 J - @ 2 9 ì / ? < ? A C 2 + > + : 9 2 A 9 @ C : 9 > > 2 1 A F A 2 1 + C + E 2 1 A

‹
* + F , + @ A @ 2 + =  A : 2

‹ ŽĚĞŇŽǁŶŽǁũƵŵƉƐŽǀĞƌƚŽƚŚĞTalkToMeĐůĂƐƐ͘dŚŝƐŝƐĂůƐŽŝƚĞŵϰŝŶƚŚĞŐƌĂƉŚŝĐ
ƵŶĚĞƌƚŚĞƐĞĐƟŽŶ͕ĐĐĞƐƐŝŶŐĂŶŽƚŚĞƌŽŵƉŽŶĞŶƚŽŶƚŚĞĐƵƌƌĞŶƚ'ĂŵĞKďũĞĐƚ
D

[ 100 ]
i j k l m n o p

TalkToMe
# @ I

>ŝŶĞϴ͗public void MakeMeTalk()

MakeMeTalk() public
1 A F A 2 1 + C / ? ? + 2 1 9 2 / 2 : 9 @ = A : 9 > > A C E . + F + 2 1 A . ? : . / , 2 ?


ŽŶƐŽůĞ
2 ? : + C A = > + : ; ? / F , > - ? A @ C ? 9 ? 2 . / @ 0 + E 2 A ì 2 2 + 2 1 A @ / 2 -
! )

dŚĞĐŽĚĞďůŽĐŬĞŶĚƐĂŶĚĐŽĚĞŇŽǁƌĞƚƵƌŶƐƚŽƚŚĞLearningScript
: > 9 ? ?

LearningScript
# @ I

}
K / @ A 4 4 I

ŇŽǁŚĂƐŶŽǁƌĞĂĐŚĞĚƚŚĞĞŶĚŽĨƚŚĞifƐƚĂƚĞŵĞŶƚǁŚŝĐŚďĞŐĂŶŽŶůŝŶĞϭϳ͕
* + C A

‹
ĂŶĚŝƐǁĂŝƟŶŐƚŽĚĞƚĞĐƚŝĨǁĞƉƌĞƐƐƚŚĞZĞƚƵƌŶ
; A - 9 0 9 / @

ĞĨŽƌĞLJŽƵƉƌŽĐĞĞĚĨƵƌƚŚĞƌǁŝƚŚƚŚĞŶĞdžƚƐĞĐƟŽŶ͕ƌĞŵŽǀĞƚŚĞTalkToMe
DĂŝŶĂŵĞƌĂ͘tĞĂƌĞĚŽŶĞǁŝƚŚƚŚŝƐƐĐƌŝƉƚƐŽƚŚĞƌĞΖƐ
T   ü  ü  û   

ü ÿ  ü ÿ  ý ü ú ? ý ü þ ú ü  ý  ÿ T   ü  ü  ÿ ú ü þ ý ü þ ú û  ü

Accessing other GameObjects and their Components


zŽƵũƵƐƚůĞĂƌŶĞĚƚŽĂĐĐĞƐƐŽŵƉŽŶĞŶƚƐŽŶƚŚĞƐĂŵĞ'ĂŵĞKďũĞĐƚ͘EŽǁŝƚΖƐƟŵĞƚŽĂĐĐĞƐƐ
+ 2 1 A . 9 F A + =  A : 2 ? G 9 @ C 2 1 A / . * + F , + @ A @ 2 ? < ? / @ 0 ¤ + 2 J - @ 2 9 ì D
%

Dot Syntax for another GameObject


To access the item in bold:

5
GameObject

6
GameObject Component

7
GameObject Component variable or method

[ 101 ]
hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

7LPHIRUDFWLRQ²FUHDWLQJWZR*DPH2EMHFWVDQGDQHZVFULSW
/ǁĂŶƚLJŽƵƚŽĐƌĞĂƚĞŽŶĞƐĐƌŝƉƚƚŚĂƚǁŝůůďĞĂƩĂĐŚĞĚƚŽƚǁŽ'ĂŵĞKďũĞĐƚƐ͘dŚĞƐĐƌŝƉƚǁŝůůŚĂǀĞ
ƚǁŽŵĞƚŚŽĚƐƚŚĂƚǁŝůůĐĂƵƐĞƚŚĞ'ĂŵĞKďũĞĐƚƐƚŽƌŽƚĂƚĞůĞŌĂŶĚƌŝŐŚƚ͘dŚŝƐǁŝůůƐŚŽǁLJŽƵƚŚĂƚ
ĨƌŽŵĂƐŝŶŐůĞƐĐƌŝƉƚĮůĞ͕ƚǁŽƐĞƉĂƌĂƚĞŽŵƉŽŶĞŶƚŽďũĞĐƚƐǁŝůůďĞĐƌĞĂƚĞĚŝŶƚŚĞŵĞŵŽƌLJ͘ĂĐŚ
ŽŵƉŽŶĞŶƚŽďũĞĐƚŝƐĂƐĞƉĂƌĂƚĞŝŶƐƚĂŶĐĞŽďũĞĐƚǁŝƚŚŶŽĂďƐŽůƵƚĞůLJŬŶŽǁůĞĚŐĞŽĨƚŚĞŽƚŚĞƌ͘

^ĐĞŶĞ͕ĐƌĞĂƚĞƚǁŽ'ĂŵĞKďũĞĐƚƐ͕Capsule
ó ô

Cube
@ - + < . 9 @ C D
!

ŝƌĞĐƟŽŶĂů>ŝŐŚƚ ^ĐĞŶĞ
õ ô

C C 9 2 + 2 1 A ? + - + < : 9 @ A 9 ? / > - ? A A 2 1 A 9 F A # =  A : 2 ? D
' %

,ĞƌĞΖƐŵLJ^ĐĞŶĞ
ö ô

9 ? 9 @ A ì 9 F , > A I

ƌĞĂƚĞĂŶĞǁη^ĐƌŝƉƚĂŶĚŶĂŵĞŝƚ^ƉŝŶŶĞƌ͘
ô
.

ŽĚĞƚŚĞƐĐƌŝƉƚĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͗
ô
/

[ 102 ]
i j k l m n o p

ƩĂĐŚƚŚĞSpinner ĂƉƐƵůĞ ƵďĞ


Y ô

? : . / , 2 2 + 2 1 A 9 @ C 2 1 A 9 F A # =  A : 2 ? D
%

LeaningScriptĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͗
ô
q

+ C / E -
#

ĮůĞ͘
r ô

J 9 B A 2 1 A

WůĂLJ
s ô

@ @ / 2 - G : > / : ; + @ D
! )

[ 103 ]
hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

What just happened?


,ĞƌĞΖƐƚŚĞŽƵƚƉƵƚƚŽƚŚĞŽŶƐŽůĞ
I

EŽǁƉƌĞƐƐƚŚĞůĞŌĂŶĚƌŝŐŚƚĂƌƌŽǁŬĞLJƐƚŽŵĂŬĞƚŚĞĂƉƐƵůĞƐƉŝŶ͕ĂŶĚƚŚĞƵƉĂŶĚĚŽǁŶ
ĂƌƌŽǁŬĞLJƐƚŽŵĂŬĞƚŚĞƵďĞƐƉŝŶ͘

zŽƵĐƌĞĂƚĞĚŽŶĞ Spinner͕ƚŚĞŶĂƩĂĐŚĞĚƚŚĞƐĐƌŝƉƚƚŽƚǁŽƐĞƉĂƌĂƚĞ
? : . / , 2 @ 9 F A C

WůĂLJ͕ƚǁŽƐĞƉĂƌĂƚĞSpinner
9 F A # =  A : 2 ? D Ž 1 A @ - + < : > / : ; + @ * + F , + @ A @ 2 + =  A : 2 ? 9 . A
%

ĐƌĞĂƚĞĚŝŶƚŚĞĐŽŵƉƵƚĞƌŵĞŵŽƌLJ͘dŚŝƐŝƐĂŶĞdžĂŵƉůĞŽĨŚŽǁƚŚĞSpinner
: > 9 ? ? / ?  < ? 2

ĂďůƵĞƉƌŝŶƚ͕ĂĚĞƐĐƌŝƉƟŽŶ͕ŽĨǁŚĂƚĞĂĐŚŽŵƉŽŶĞŶƚŽďũĞĐƚĐƌĞĂƚĞĚǁŝůůďĞ͘

LearningScript Spinner
+ 9 : : A ? ? A 9 : 1 * + F , + @ A @ 2 E . + F 2 1 A * + F , + @ A @ 2 G - + < @ A A C


ƚŽŬŶŽǁĂďŽƵƚĞĂĐŚ'ĂŵĞKďũĞĐƚƚŚĂƚƚŚĞSpinnerŽŵƉŽŶĞŶƚŝƐĂƩĂĐŚĞĚƚŽ͘

dŚŝƐĐŽĚĞŝƐũƵƐƚĂƐŝŵƉůĞĚĞŵŽŶƐƚƌĂƟŽŶƚŽƐŚŽǁŚŽǁŽƚ^LJŶƚĂdžǁŽƌŬƐ͘
> ü û  ú   ý     ú  ú ?   ú T   ü  ü       ÿ  û ý ü   
^ ü  

ŽƚŚĞƌŚĂŶĚ͕ƉĞƌŚĂƉƐLJŽƵŵĂLJǁĂŶƚĂĐůĂƐƐĚĞĚŝĐĂƚĞĚƚŽƉƌŽĐĞƐƐŝŶŐƵƐĞƌ
ŝŶƉƵƚ͘dŚĂƚΖƐƚŚĞŶĞĂƚƚŚŝŶŐĂďŽƵƚǁƌŝƟŶŐĐŽĚĞ͕ƚŚĞƌĞĂƌĞĂnjŝůůŝŽŶǁĂLJƐƚŽ
ú    ý ÿ ú  ú ÿ 

ŶĂŶĂůLJƐŝƐŽĨƚŚĞĐŽĚĞƐŚŽǁŶŝŶƚŚĞƉƌĞǀŝŽƵƐĐŽĚĞƐĐƌĞĞŶƐŚŽƚŝƐĂƐĨŽůůŽǁƐ͗

LearningScript
# @ I

>ŝŶĞϲ͗GameObject capsuleGO;

GameObject
B 9 . / 9 = > A + E 2 - , A / ? C A : > 9 . A C
'

dŚĞǀĂůƵĞƚŚŝƐǁŝůůƐƚŽƌĞŝƐĂƌĞĨĞƌĞŶĐĞƚŽƚŚĞĂƉƐƵůĞ ^ĐĞŶĞ
/ @ 2 1 A

>ŝŶĞϳ͗Spinner cubeComp;

Spinner
B 9 . / 9 = > A + E 2 - , A / ? C A : > 9 . A C
'

dŚĞǀĂůƵĞƚŚŝƐǁŝůůƐƚŽƌĞŝƐĂƌĞĨĞƌĞŶĐĞƚŽĂSpinner
* + F , + @ A @ 2 + =  A : 2 : . A 9 2 A C E . + F

‹
Spinner
2 1 A : > 9 ? ?

[ 104 ]
i j k l m n o p

>ŝŶĞϵ͗void Start()

Start()ŵĞƚŚŽĚŝƐƵƐĞĚƚŽĂůůŽǁƚŚĞƚǁŽǀĂƌŝĂďůĞƐƚŽďĞŝŶŝƟĂůŝnjĞĚ
1 A


‹
A F A F = A . G 2 1 / ? F A 2 1 + C / ? : 9 > > A C + @ > - + @ : A
"

capsuleGO = GameObject.Find("Capsule");
K / @ A 6 6 I

Find() GameObject ^ĐĞŶĞ


1 A F A 2 1 + C + E 2 1 A : > 9 ? ? > + : 9 2 A ? 9 9 F A # =  A : 2 / @ + < .
 %

ĂƉƐƵůĞ capsuleGO
1 A . A E A . A @ : A 2 + 2 1 A 9 F A # =  A : 2 / ? 9 ? ? / 0 @ A C 2 + 2 1 A B 9 . / 9 = > A
 %

‹
1 / ? / ? / 2 A F L / @ 2 1 A , . A B / + < ? 0 . 9 , 1 / : 9 @ C 9 > ? + + @ 2 1 A , . A B / + < ? : + C A ? : . A A @ ? 1 + 2


Debug.Log(capsuleGO);
K / @ A 6 4 I

dŚŝƐůŝŶĞǁĂƐĂĚĚĞĚũƵƐƚƚŽƐŚŽǁƚŚĂƚƚŚĞĂƉƐƵůĞ
9 F A # =  A : 2 / ? / @ E 9 : 2 . A E A . A @ : A C
%

‹
capsuleGO
/ @ 2 1 A B 9 . / 9 = > A

cubeComp = GameObject.Find("Cube").GetComponent<Spinner>();
K / @ A 6 7 I

‹ dŚŝƐůŝŶĞƐŚŽǁƐŚŽǁƚŽƌĞƚƌŝĞǀĞĂŽŵƉŽŶĞŶƚŽŶĂ'ĂŵĞKďũĞĐƚ
Spinner
1 / ? . A 2 . / A B A C . A E A . A @ : A 2 + 2 1 A * + F , + @ A @ 2 + =  A : 2 / ? + @ 2 1 A


‹
ƵďĞ
9 F A # =  A : 2
%

ŝƚĞŵϲŽŶƚŚĞƉƌĞǀŝŽƵƐŐƌĂƉŚŝĐĂŶĚĂůƐŽŽŶƚŚĞƉƌĞǀŝŽƵƐĐŽĚĞƐĐƌĞĞŶƐŚŽƚ
1 / ? / ?


>ŝŶĞϭϰ͗Debug.Log(cubeComp);

dŚŝƐůŝŶĞǁĂƐĂĚĚĞĚũƵƐƚƚŽƐŚŽǁƚŚĂƚƚŚĞSpinner ƵďĞ
* + F , + @ A @ 2 / ? , 9 . 2 + E 2 1 A

‹
cubeComp
9 F A # =  A : 2 G 9 @ C / ? / @ E 9 : 2 . A E A . A @ : A C / @ 2 1 A B 9 . / 9 = > A
%

>ŝŶĞϭϵ͗if(Input.GetKey(KeyCode.LeftArrow)

ifƐƚĂƚĞŵĞŶƚĐŚĞĐŬƐƚŽƐĞĞŝĨƚŚĞƵƐĞƌŚĂƐƉƌĞƐƐĞĚƚŚĞůĞŌĂƌƌŽǁŬĞLJ
1 / ?


E , . A ? ? A C G K / @ A 4 6 + E 2 1 A : + C A = > + : ; / ? A ì A : < 2 A C
!

capsuleGO.GetComponent<Spinner>().SpinLeft();
K / @ A 4 6 I

‹ dŚŝƐůŝŶĞƐŚŽǁƐƵƐŝŶŐŽƚ^LJŶƚĂdžƚŽůŽĐĂƚĞĂŵĞƚŚŽĚŝŶĂŽŵƉŽŶĞŶƚŽĨ
9 @ + 2 1 A . 9 F A # =  A : 2 D
%

CapsuleGOǀĂƌŝĂďůĞƐƵďƐƟƚƵƚĞƐƚŚĞƌĞĨĞƌĞŶĐĞƚŽƚŚĞĂƉƐƵůĞ
1 A 9 F A # =  A : 2
 %

Spinner ĂƉƐƵůĞ
1 A * + F , + @ A @ 2 + =  A : 2 / ? > + : 9 2 A C + @ 2 1 A 9 F A # =  A : 2
 %

SpinLeft() Spinner
1 A F A 2 1 + C / ? : 9 > > A C / @ 2 1 A * + F , + @ A @ 2 + E 2 1 A


‹
ĂƉƐƵůĞ
9 F A # =  A : 2
%

ŽĚĞŇŽǁŶŽǁũƵŵƉƐƚŽƚŚĞSpinner
* + F , + @ A @ 2 + =  A : 2

[ 105 ]
hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

^ƉŝŶŶĞƌ;ŽŶƚŚĞĂƉƐƵůĞͿ͗

>ŝŶĞϲ͗public void SpinLeft()

SpinLeft() LearningScript
1 / ? / ? 2 1 A F A 2 1 + C : 9 > > A C E . + F 2 1 A + =  A : 2


‹ >ŝŶĞϴŝŶƚŚĞĐŽĚĞďůŽĐŬŝƐĞdžĞĐƵƚĞĚ

>ŝŶĞϴ͗transform.Rotate(0, 0, 60 * Time.deltaTime);

Rotate() TransformŽŵƉŽŶĞŶƚŽďũĞĐƚŝƐĐĂůůĞĚǁŚŝĐŚ
1 A F A 2 1 + C + @ 2 1 A : 9 < ? A ?


‹
ƚŚĞĂƉƐƵůĞƚŽƐƉŝŶĂƌŽƵŶĚƚŚĞnjͲĂdžŝƐ
EŽƟĐĞƚŚŽƵŐŚ͕ƚŚĂƚƚŚĞǀĂƌŝĂďůĞŶĂŵĞĚtransform
/ ? < ? A C / @ 2 1 A ¤ + 2 J - @ 2 9 ì

‹
GetComponent<Transform>()
? 2 9 2 A F A @ 2 / @ ? 2 A 9 C + E 2 1 A F A 2 1 + C

Transform
@ / 2 - 1 9 ? ? A B A . 9 > = < / > 2 / @ * + F , + @ A @ 2 ? G ? < : 1 9 ? 2 1 A * + F , + @ A @ 2 : > 9 ? ?
) (

GameObject ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞĂŶĚŶŽƟĐĞƚŚĂƚŽŶĞŽĨƚŚĞ
/ @ C 2 1 A : > 9 ? ? / @ 2 1 A
H

‹
transform
B 9 . / 9 = > A ? / ? @ 9 F A C

GetComponent()
@ ? 2 A 9 C + E 1 9 B / @ 0 2 + < ? A 2 1 A F A 2 1 + C + @ 9 9 F A # =  A : 2 G
! %

‹
@ / 2 - 1 9 ? , . + B / C A C 9 : + @ B A @ / A @ 2 B 9 . / 9 = > A 9 > . A 9 C - 9 ? ? / 0 @ A C 2 1 A B 9 > < A + E 2 1 A
)

Transform
* + F , + @ A @ 2

dŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚƐŚŽǁƐƚŚĞtransform
B 9 . / 9 = > A C A ? : . / = A C / @ 2 1 A

‹
^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ
I

Rotate()ŵĞƚŚŽĚƐŚŽǁƐϯĂƌŐƵŵĞŶƚƐďĞŝŶŐƐĞŶƚƚŽƚŚĞŵĞƚŚŽĚ͘
1 A


‹ /ŶƚŚŝƐĞdžĂŵƉůĞ͕ƚŚĞĂƉƐƵůĞŝƐƌŽƚĂƟŶŐϲϬĚĞŐƌĞĞƐƉĞƌƐĞĐŽŶĚŽŶƚŚĞnjͲĂdžŝƐ͘
ŽĚĞŇŽǁŶŽǁƌĞƚƵƌŶƐƚŽƚŚĞLearningScript
+ =  A : 2 D

[ 106 ]
i j k l m n o p

On LearningScript:
>ŝŶĞϮϰ͗if(Input.GetKey(KeyCode.RightArrow)

ifƐƚĂƚĞŵĞŶƚĐŚĞĐŬƐŝĨƚŚĞƵƐĞƌŚĂƐƉƌĞƐƐĞĚƚŚĞƌŝŐŚƚĂƌƌŽǁŬĞLJ
1 / ?


‹ /ĨƉƌĞƐƐĞĚ͕ůŝŶĞϮϲŽĨƚŚĞĐŽĚĞďůŽĐŬŝƐĞdžĞĐƵƚĞĚ

>ŝŶĞϮϲ͗capsuleGO.GetComponent<Spinner>().SpinRight();

SpinRight()
1 / ? / ? 9 > F + ? 2 9 @ A ì 9 : 2 . A , A 9 2 + E > / @ A 4 6 G A ì : A , 2 2 1 A F A 2 1 + C


‹
/ ? = A / @ 0 : 9 > > A C

>ŝŶĞϮϵ͗if(Input.GetKey(KeyCode.UpArrow)

ifƐƚĂƚĞŵĞŶƚĐŚĞĐŬƐŝĨƚŚĞƵƐĞƌŚĂƐƉƌĞƐƐĞĚƚŚĞƵƉĂƌƌŽǁŬĞLJ
1 / ?


‹
E , . A ? ? A C G > / @ A 7 6 + E 2 1 A : + C A = > + : ; / ? A ì A : < 2 A C
!

cubeComp.SpinLeft();
K / @ A 7 6 I

‹ dŚŝƐŝƐĚŝīĞƌĞŶƚƚŚĂŶůŝŶĞƐϮϭĂŶĚϮϲ
cubeComp
A E A . = 9 : ; 2 + > / @ A 6 7 D 1 A B 9 . / 9 = > A 9 > . A 9 C - ? 2 + . A ? 2 1 A . A E A . A @ : A 2 + 2 1 A
" 

‹
ƵďĞ Spinner
9 F A # =  A : 2 9 @ C 2 1 A * + F , + @ A @ 2 + =  A : 2 G 2 1 A . A E + . A O < ? 2 2 1 A B 9 . / 9 = > A
%

cubeComp SpinLeft()
/ ? @ A A C A C / @ 2 1 A ¤ + 2 J - @ 2 9 ì 2 + : 9 > > 2 1 A F A 2 1 + C + @ 2 1 A

ƵďĞ
9 F A # =  A : 2
%

‹ ŽĚĞŇŽǁŝƐƐŝŵŝůĂƌƚŽůŝŶĞϴ͕ĞdžĐĞƉƚƚŚĂƚƚŚĞƵďĞƌŽƚĂƚĞƐŶŽǁ

>ŝŶĞϯϰ͗if(Input.GetKey(KeyCode.DownArrow)

ifƐƚĂƚĞŵĞŶƚĐŚĞĐŬƐƚŽƐĞĞŝĨƚŚĞƵƐĞƌŚĂƐƉƌĞƐƐĞĚƚŚĞĚŽǁŶĂƌƌŽǁŬĞLJ
1 / ?


‹ /ĨƉƌĞƐƐĞĚ͕ůŝŶĞϯϲŽĨƚŚĞĐŽĚĞďůŽĐŬŝƐĞdžĞĐƵƚĞĚ͕ƐƉŝŶŶŝŶŐƚŚĞƵďĞƌŝŐŚƚ

+DYHDJRKHUR²FUHDWLQJDQGXVLQJDQHZYDULDEOHQDPHGFDSVXOH&RPS
LearningScript͕ůŝŶĞƐϮϭĂŶĚϯϭƉĞƌĨŽƌŵƚŚĞƐĂŵĞĨƵŶĐƟŽŶĂůŝƚLJŽĨĐĂůůŝŶŐƚŚĞ
@
!

SpinLeft() SpinnerŽŵƉŽŶĞŶƚƐ͘zĞƚƚŚĞĐŽĚĞŽŶĞĂĐŚůŝŶĞŝƐǀĞƌLJ
F A 2 1 + C + @ 2 1 A / .

ĚŝīĞƌĞŶƚ͘dŚĞĚŝīĞƌĞŶĐĞŝƐƚŚĂƚcubeCompĂůƌĞĂĚLJƐƚŽƌĞƐĂƌĞĨĞƌĞŶĐĞƚŽƚŚĞƵďĞΖƐSpinner
capsuleCompǀĂƌŝĂďůĞƚŽƐƚŽƌĞĂƌĞĨĞƌĞŶĐĞƚŽƚŚĞĂƉƐƵůĞΖƐ
* + F , + @ A @ 2 D 1 A . A / ? @ +


Spinner
* + F , + @ A @ 2 D

dƌLJĐƌĞĂƟŶŐĂcapsuleCompǀĂƌŝĂďůĞĂŶĚƐƚŽƌĞĂƌĞĨĞƌĞŶĐĞƚŽƚŚĞĂƉƐƵůĞΖƐSpinner
ŽŵƉŽŶĞŶƚ͘dŚĞŶĐŚĂŶŐĞůŝŶĞƐϮϭĂŶĚϮϲƚŽƵƐĞcapsuleComp
D

[ 107 ]
hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

Accessing GameObjects using drag-and-drop versus


writing code
hŶŝƚLJŚĂƐĂƌĂƚŚĞƌŶĞĂƚĨĞĂƚƵƌĞƚŚĂƚĂůůŽǁƐƵƐƚŽĂƐƐŝŐŶ'ĂŵĞKďũĞĐƚƐƚŽǀĂƌŝĂďůĞƐǁŝƚŚŽƵƚ
ǁƌŝƟŶŐƚŚĞĐŽĚĞ͘/ƚĚĞĮŶŝƚĞůLJŚĂƐŝƚƐƵƐĞƐ͕ŚŽǁĞǀĞƌ͕ŝĨŝƚΖƐŶŽƚƌĞĂůůLJŶĞĐĞƐƐĂƌLJ͕/ƌĞĐŽŵŵĞŶĚ
ĂƐƐŝŐŶŝŶŐ'ĂŵĞKďũĞĐƚƐŝŶĐŽĚĞ͘tŚLJ͍

^ŝdžŵŽŶƚŚƐĨƌŽŵŶŽǁ͕ǁŚĞŶLJŽƵĂƌĞƚŚĞƐƚƌĂŶŐĞƌůŽŽŬŝŶŐĂƚLJŽƵƌŽǁŶĐŽĚĞ͕
LJŽƵŵĂLJůŽŽŬĂƚŝƚĂŶĚǁŽŶĚĞƌǁŚLJLJŽƵƌĐŽĚĞůŽŽŬƐŝŶĐŽŵƉůĞƚĞ͘/ƚΖƐLJŽƵƌ
ŐĂŵĞƚŚŽƵŐŚ͕ƐŽLJŽƵĐĂŶĐƌĞĂƚĞŝƚĂŶLJǁĂLJLJŽƵƉůĞĂƐĞ͘/ΖŵũƵƐƚƐĂLJŝŶŐ͕ĚŽŶΖƚ
ŐŽŚŽŐǁŝůĚǁŝƚŚĚƌĂŐͲĂŶĚͲĚƌŽƉĂŶĚƚŚĞŶůĂƚĞƌǁŽŶĚĞƌǁŚĂƚŝƚǁĂƐLJŽƵǁĞƌĞ
 û  ý ü þ  ú    ý ÿ

7LPHIRUDFWLRQ²WU\LQJGUDJDQGGURSWRDVVLJQD*DPH2EMHFW
>ĞƚΖƐĐŚĂŶŐĞĂĨĞǁ LearningScriptƚŽƐŚŽǁŚŽǁƚŽ ĂƉƐƵůĞ
> / @ A ? + E : + C A / @ 9 ? ? / 0 @ 2 1 A

capsuleGO
9 F A # =  A : 2 2 + 2 1 A B 9 . / 9 = > A < ? / @ 0 C . 9 0 9 @ C C . + , D
% ( (

ŝƚŚĞƌĐŽŵŵĞŶƚŽƵƚůŝŶĞϭϭƵƐŝŶŐϮĨŽƌǁĂƌĚƐůĂƐŚĞƐ;//
ó ô

G + . . A F + B A / 2 D

KŶůŝŶĞϲ͕ĂĚĚƚŚĞĂĐĐĞƐƐŵŽĚŝĮĞƌpublic
õ ô

public
> / ; A 2 1 / ? I

GameObject capsuleGO;
^ĂǀĞƚŚĞĮůĞ͘
ö ô

DĂŝŶĂŵĞƌĂ
ô
.

@ @ / 2 - G ? A > A : 2 2 1 A 9 F A # =  A : 2 D
! ) %

ĂƉƐƵůĞ ĂƉƐƵůĞ'KĮĞůĚŝŶƚŚĞ
ô
/

¤ . 9 0 2 1 A 2 + 2 1 A     D 1 A


    

ĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚƐŚŽǁƐŚŽǁƚŚŝƐŝƐĚŽŶĞ͘
WůĂLJ
Y ô

* > / : ; + @ D

[ 108 ]
i j k l m n o p

What just happened?


ĂƉƐƵůĞ 'ĂŵĞKďũĞĐƚŝƐŶŽǁĂƐƐŝŐŶĞĚƚŽƚŚĞcapsuleGO ĚŝĚŶΖƚŚĂǀĞƚŽ
1 A B 9 . / 9 = > A D Ž A


ǁƌŝƚĞƚŚĞĐŽĚĞďĞĐĂƵƐĞhŶŝƚLJŚĂƐĚŽŶĞƚŚĞĂƐƐŝŐŶŵĞŶƚŝŶƚĞƌŶĂůůLJĨŽƌƵƐ͘ůƐŽ͕ƚŚŝƐĚŽĞƐŶΖƚ
LearningScriptŝŶĂŶLJǁĂLJ͘
: 1 9 @ 0 A

3RSTXL]²XQGHUVWDQGLQJFRPPXQLFDWLRQEHWZHHQREMHFWV
Yϭ͘tŚĂƚŝƐŽƚ^LJŶƚĂdž͕ĂŶĚǁŚĂƚĚŽĞƐŝƚĂůůŽǁLJŽƵƚŽĚŽ͍

YϮ͘tŚĞŶĂŶŽďũĞĐƚŝƐĂƐƐŝŐŶĞĚƚŽĂǀĂƌŝĂďůĞ͕ǁŚĂƚŝƐĂĐƚƵĂůůLJƐƚŽƌĞĚŝŶƚŚĞǀĂƌŝĂďůĞ͍

Yϯ͘ƌĞƚŚĞƌĞĂŶLJůŝŵŝƚƐƚŽƵƐŝŶŐŽƚ^LJŶƚĂdžǁŚĞŶƚƌLJŝŶŐƚŽĂĐĐĞƐƐǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͍

Yϰ͘tŚĂƚŝƐĂŶŽƚŚĞƌǁĂLJƚŽĂƐƐŝŐŶ'ĂŵĞKďũĞĐƚƐƚŽǀĂƌŝĂďůĞƐďĞƐŝĚĞƐǁƌŝƟŶŐĐŽĚĞ͍

Summary
1 + , A - + < 1 9 B A C / ? : + B A . A C 2 1 9 2 ¤ + 2 J - @ 2 9 ì / ? 9 : 2 < 9 > > - 9 ? / F , > A , . + : A ? ? E + . 9 : : A ? ? / @ 0 + 2 1 A .
!

ŽďũĞĐƚƐ͘/ƚΖƐƚŚŝƐĂďŝůŝƚLJƚŽĐŽŵŵƵŶŝĐĂƚĞďĞƚǁĞĞŶŽďũĞĐƚƐƚŚĂƚŵĂŬĞKKWƐŽƉŽǁĞƌĨƵů͘ĂƚĂŝƐ
; A , 2 / @ + =  A : 2 ? G 9 @ C F A 2 1 + C ? 9 . A : 9 > > A C + @ 9 @ + =  A : 2 2 + 0 A 2 2 1 / @ 0 ? C + @ A D ¤ + 2 J - @ 2 9 ì / ?  < ? 2 9 @

9 C C . A ? ? 2 + A 9 ? / > - 9 : : A ? ? C 9 2 9 9 @ C F A 2 1 + C ? + @ + =  A : 2 ? D

ůůƌŝŐŚƚ͕ǁĞΖǀĞĐŽǀĞƌĞĚƚŚĞǀĞƌLJďĂƐŝĐƐŽĨηƐĐƌŝƉƟŶŐĨŽƌhŶŝƚLJ͘ŽŶŐƌĂƚƵůĂƟŽŶƐ͊

/ŶƚŚĞŶĞdžƚĐŚĂƉƚĞƌ͕/ΖŵŐŽŝŶŐƚŽƚĂŬĞLJŽƵƚŚƌŽƵŐŚĂĐŽŵďŝŶĂƟŽŶŽĨhŶŝƚLJĐŽĚŝŶŐĂŶĚŐĞŶĞƌĂů
ηĐŽĚŝŶŐƚŽĂĐƚƵĂůůLJĂƉƉůLJLJŽƵƌŶĞǁŬŶŽǁůĞĚŐĞ͘tĞǁŝůůƐƚĂƌƚůŽŽŬŝŶŐĂƚĂ^ƚĂƚĞDĂĐŚŝŶĞƚŽ
ǁŽƌŬǁŝƚŚhŶŝƚLJ͘zĞƐ͕ŝƚΖƐŐŽŝŶŐƚŽďĞĂƐŝŵƉůĞƐƚĂƚĞŵĂĐŚŝŶĞƚŽƐŚŽǁƚŚĞĐŽŶĐĞƉƚƐ͘zŽƵΖǀĞ
ũƵƐƚďĂƌĞůLJůĞĂƌŶĞĚηƐĐƌŝƉƟŶŐ͕ƐŽ/ΖŵŐŽŝŶŐƚŽĞĂƐĞLJŽƵŝŶƚŽƐŽŵĞŐĂŵĞĐƌĞĂƟŽŶǁŚŝĐŚǁŝůů
ŚĞůƉLJŽƵƐĞĞŚŽǁƚŽĂƉƉůLJƚŚĞĐŽŶĐĞƉƚƐƚŚĂƚLJŽƵΖǀĞũƵƐƚůĞĂƌŶĞĚ͘ĞƐŝĚĞƐ͕ďĞƚLJŽƵΖƌĞĚĂƌŶ
ƐŝĐŬĂŶĚƟƌĞĚŽĨĐŽŶƐƚĂŶƚůLJŵŽĚŝĨLJŝŶŐ͕ŽƌĐŽŵƉůĞƚĞůLJĐŚĂŶŐŝŶŐLearningScript
D

[ 109 ]

You might also like