Learning # by Developing Games

with 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 + , 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 N ŽǀĞƌ/ŵĂŐĞďLJƌƟĞEŐ; [email protected]

Credits

P Q S T

O WƌŽũĞĐƚŽŽƌĚŝŶĂƚŽƌ

z u v o d { o p p

V j [ \ j U V W W X Y Z W [ Z \

T b

^ _ ` ^ a ^

] 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 \

} T ~  R b €

>ĞĂĚdĞĐŚŶŝĐĂůĚŝƚŽƌ `

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

[ \ j

m ĚŝƟ'ĂũũĂƌ

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 WZ 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Ƶď

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

ŬĐƵƐƚŽŵĞƌ͕LJŽƵĂƌĞĞŶƟƚůĞĚƚŽĂĚŝƐĐŽƵŶƚŽŶƚŚĞĞŽŽŬĐŽƉLJ͘'ĞƚŝŶƚŽƵĐŚǁŝƚŚƵƐĂƚ

+ . F + . A C A 2 9 / > ? D

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

ĨŽƌĂƌĂŶŐĞŽĨĨƌĞĞŶĞǁƐůĞƩĞƌƐĂŶĚƌĞĐĞŝǀĞĞ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

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

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 ϮϮϳ

[ ]

½ ¾ ¿ À Á Â Ã Ä Â Å ÆÁ Å Æ Ç

ƉƉĞŶĚŝ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

Þ ß à G

’ á – ⠗ ŝƐĐŽǀĞƌŝŶŐzŽƵƌ,ŝĚĚĞŶ^ĐƌŝƉƟŶŐ^ŬŝůůƐ͕ ĞdžƉůĂŝŶƐƚŚĂƚƚŚĞǀĞƌLJĮƌƐƚƚŚŝŶŐLJŽƵ ŶĞĞĚƚŽĚŽŝƐŽǀĞƌĐŽŵĞLJŽƵƌƉĞƌĐĞŝǀĞĚĨĞĂƌŽĨǁƌŝƟŶŐƐĐƌŝƉƚƐ͘zŽƵΖůůƐĞĞƚŚĂƚǁƌŝƟŶŐƐĐƌŝƉƚƐ ŝƐǀĞƌLJƐŝŵŝůĂƌƚŽŵĂŶLJŽĨLJŽƵƌĚĂŝůLJƌŽƵƟŶĞƐ͘tĞĂůƐŽŚĂǀĞĂĮƌƐƚůŽŽŬĂƚhŶŝƚLJΖƐƐĐƌŝƉƟŶŐ ĚŽĐƵŵĞŶƚĂƟŽŶ͘&ŝŶĂůůLJ͕ǁĞƐĞĞŚŽǁƚŽĐƌĞĂƚĞĂηƐĐƌŝƉƚĮůĞŝŶhŶŝƚLJ͘

ã ä Á Ã ¾ å Á

Þ ß à 4 G

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

&ŝŶĂůůLJ͕ĐŽŵŵƵŶŝĐĂƟŽŶďĞƚǁĞĞŶ'ĂŵĞKďũĞĐƚƐŝƐĚŝƐĐƵƐƐĞĚďLJŝŶƚƌŽĚƵĐŝŶŐŽƚ^LJŶƚĂdž͘

Þ ß à G

’ á – é — 'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨsĂƌŝĂďůĞƐ͕ ĞdžƉůĂŝŶƐƵƐŝŶŐǀĂƌŝĂďůĞƐŝŶĚĞƚĂŝů͘tĞƐĞĞŚŽǁ ƚŚĞLJΖƌĞƵƐĞĚĨŽƌƐƚŽƌŝŶŐĚĂƚĂ͕ĂŶĚŚŽǁƚŚĞŵĂŐŝĐǁŽƌŬƐƚŽƚƵƌŶǀĂƌŝĂďůĞƐŝŶƚŽŽŵƉŽŶĞŶƚ

ƉƌŽƉĞƌƟĞƐǁŚŝĐŚĂƉƉĞĂƌŝŶƚŚĞhŶŝƚLJ/ŶƐƉĞĐƚŽƌƉĂŶĞů͘

Þ ß à G

’ á – ê — 'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ͕ ĞdžƉůĂŝŶƐŚŽǁŵĞƚŚŽĚƐƉĞƌĨŽƌŵƚŚĞĂĐƟŽŶƐƚŚĂƚ ƚĂŬĞƉůĂĐĞŽŶ'ĂŵĞKďũĞĐƚƐ͘tĞƐĞĞŚŽǁƚŽĐƌĞĂƚĞĂŶĚƵƐĞŵĞƚŚŽĚƐŝŶĚĞƚĂŝů͘tĞĂůƐŽůŽŽŬŝŶƚŽ

ƚǁŽŽĨhŶŝƚLJΖƐŵŽƐƚŽŌĞŶƵƐĞĚŵĞƚŚŽĚƐ͕ƚŚĞ^ƚĂƌƚ;ͿŵĞƚŚŽĚĂŶĚƚŚĞhƉĚĂƚĞ;ͿŵĞƚŚŽĚ͘

Þ ß à G A ì , > 9 / @ ? 2 1 9 2 C < . / @ 0 0 9 F A , > 9 - G C A : /? / + @ ? 1 9 B A 2 + = A

’ á – ë — DĂŬŝŶŐĞĐŝƐŝŽŶƐŝŶŽĚĞ͕ ŵĂĚĞĂďŽƵƚŵĂŶLJƚŚŝŶŐƐ͕ũƵƐƚůŝŬĞLJŽƵĚŽŝŶLJŽƵƌĚĂŝůLJůŝĨĞ͘tĞůŽŽŬĂƚŵĂŶLJŽĨƚŚĞǁĂLJƐ

ĐŚŽŝĐĞƐĂƌĞŵĂĚĞĂŶĚƐŽŵĞŽĨƚŚĞĐŽŵŵŽŶƌĞĂƐŽŶƐĨŽƌǁŚŝĐŚĚĞĐŝƐŝŽŶƐĂƌĞƌĞƋƵŝƌĞĚ͘

Þ ß à G

’ á – í — hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ͕ ƐŚŽǁƐƵƐǁŚĂƚŽƚ^LJŶƚĂdžĂĐƚƵĂůůLJŝƐ͕

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

Þ ß à G

’ á – î — ƌĞĂƟŶŐƚŚĞ'ĂŵĞƉůĂLJŝƐ:ƵƐƚĂWĂƌƚŽĨƚŚĞ'ĂŵĞ͕ ƐŚŽǁƐƚŚĂƚĚĞǀĞůŽƉŝŶŐƚŚĞ ŐĂŵĞƉůĂLJŝƐĨƵŶ͕ďƵƚƚŚĞƌĞĂƌĞŽƚŚĞƌƉĂƌƚƐŶĞĞĚĞĚƚŽŵĂŬĞĂĨƵůůLJĨƵŶĐƟŽŶĂůŐĂŵĞ͘tĞůŽŽŬ

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

< ? A + E 9 J 2 9 2 A 9 : 1 / @ A D

#

Þ ß à G

’ á – ï — ĞǀĞůŽƉŝŶŐƚŚĞ^ƚĂƚĞDĂĐŚŝŶĞ͕ ĐƌĞĂƚĞƐĂƐŝŵƉůĞ^ƚĂƚĞDĂĐŚŝŶĞƚŽƐŚŽǁŚŽǁŝƚ ǁŽƌŬƐ͕ĂŶĚƐĞĞƚŚĞƐŝŵƉůŝĐŝƚLJŝƚďƌŝŶŐƐĨŽƌĐŽŶƚƌŽůůŝŶŐĂŐĂŵĞ͘tĞƐŚŽǁŚŽǁƚŽĐŚĂŶŐĞ^ĐĞŶĞƐ

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

Þ ß à G

’ á – ð — ^ƚĂƌƚƵŝůĚŝŶŐĂ'ĂŵĞĂŶĚ'ĞƚƚŚĞĂƐŝĐ^ƚƌƵĐƚƵƌĞZƵŶŶŝŶŐ͕ ƚĞĂĐŚĞƐƵƐŚŽǁƚŽ ĂĐĐĞƐƐĂŶĚƵƐĞhŶŝƚLJΖƐ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞĂŶĚƚŚĞZĞĨĞƌĞŶĐĞDĂŶƵĂůĨŽƌƚŚĞĨĞĂƚƵƌĞƐǁĞ ǁĂŶƚ͘dŚĞŶǁĞďĞŐŝŶĐƌĞĂƟŶŐĂŵƵůƟͲůĞǀĞůŐĂŵĞƵƐŝŶŐƚŚĞƐƚĂƚĞŵĂĐŚŝŶĞĂŶĚƚŚƌĞĞƐĐĞŶĞƐ͘

WůĂLJĞƌ'ĂŵĞKďũĞĐƚŝƐĂĚĚĞĚĂŶĚǁĞůĞĂƌŶŚŽǁƚŽĐŽŶƚƌŽůŝƚ͘

Þ ß à G

’ á – â ñ — DŽǀŝŶŐƌŽƵŶĚ͕ŽůůŝƐŝŽŶƐ͕ĂŶĚ<ĞĞƉŝŶŐ^ĐŽƌĞ͕ ƐŚŽǁƐŚŽǁƚŽŵŽǀĞƚŚĞWůĂLJĞƌ ĂƌŽƵŶĚƵƐŝŶŐhŶŝƚLJΖƐƉŚLJƐŝĐƐƐLJƐƚĞŵ͕ĂŶĚŚĂǀĞĐĂŵĞƌĂƐĨŽůůŽǁƚŚĞWůĂLJĞƌΖƐŵŽǀĞŵĞŶƚƐ͘tĞ ĚĞǀĞůŽƉĂ'h/ƐĐŽƌŝŶŐƐLJƐƚĞŵ͕ƐƚĂƌƚƐŚŽŽƟŶŐƉƌŽũĞĐƟůĞƐĂƚĞŶĞŵLJŽďũĞĐƚƐ͕ĂŶĚƐĞĞŚŽǁƚŽ ǁŝŶŽƌůŽƐĞƚŚĞŐĂŵĞ͘hůƟŵĂƚĞůLJ͕ǁĞƐĞĞŚŽǁĂůůƚŚĞƐĞƉĂƌĂƚĞƉŝĞĐĞƐŽĨĐŽĚĞĐŽŵĞƚŽŐĞƚŚĞƌ

ĂŶĚǁŽƌŬƚŽŐĞƚŚĞƌ͘

Þ ß à G

’ á – â ⠗ ^ƵŵŵĂƌŝnjŝŶŐzŽƵƌEĞǁŽĚŝŶŐ^ŬŝůůƐ͕ ƌĞǀŝĞǁƐƚŚĞŵĂŝŶƉŽŝŶƚƐLJŽƵůĞĂƌŶĞĚĂďŽƵƚ ƉƌŽŐƌĂŵŵŝŶŐǁŝƚŚηĂŶĚǁŽƌŬŝŶŐǁŝƚŚŽďũĞĐƚƐ͘/ƚĞůů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ŽƵ͘

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

ŵŽǀĞƐLJŽƵƚŽƚŚĞŶĞdžƚƐĐƌĞĞŶΗ͘

ù ú û ü ý ü þ ÿ û ý ¡ ¢ û £ ú ü £ ü £ ¤ ÿ ú ¢ ¢ ¤ ú û ý ü ú ¥ ¦ § ý ¨ ¤ £ © ý ÿ

ý ¢ ÿ ú ü £ û ý ¨ ÿ ú ¢ ¢ ¤ ú û § ý ¨ ¤ £ © ý ÿ

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

ĚĞǀĞůŽƉƟƚůĞƐƚŚĂƚLJŽƵƌĞĂůůLJŐĞƚƚŚĞŵŽƐƚŽƵƚŽĨ͘

+ ? A @ C < ? 0 A @ A . 9 > E A A C = 9 : ; G ? / F , > - ? A @ C 9 @ A F 9 / > 2 + G (  [email protected] ĂŶĚŵĞŶƟŽŶƚŚĞŬƟƚůĞǀŝĂƚŚĞƐƵďũĞĐƚŽĨ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ŽƵƌ

: : + < @ 2 9 2

9 http://www.packtpub.com͘/ĨLJŽƵƉƵƌĐŚĂƐĞĚƚŚŝƐŬĞůƐĞǁŚĞƌĞ͕LJŽƵĐĂŶ

/? / 2

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

2 + - + < D

æ ø è

ã ä Á Ã ¾ å Á

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

ĂŶLJĞƌƌĂƚĂ͕ƉůĞĂƐĞƌĞƉŽƌƚƚŚĞŵďLJǀŝƐŝƟŶŐ http://www.packtpub.com/submit-errataG

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

     ƐĞůĞĐƟŶŐLJŽƵƌŬ͕ĐůŝĐŬŝŶŐŽŶƚŚĞ  ƐƵďŵŝƐƐŝŽŶ ĨŽƌŵ 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͘

> A 9 ? A : + @ 2 9 : 2 < ? 9 2

8 [email protected]ǁŝƚŚĂůŝŶŬƚŽƚŚĞƐƵƐƉĞĐƚĞĚ

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

tĞĂƉƉƌĞĐŝĂƚĞLJŽƵƌŚĞůƉŝŶƉƌŽƚĞĐƟŶŐŽƵƌĂƵƚŚŽƌƐ͕ĂŶĚŽƵƌĂďŝůŝƚLJƚŽďƌŝŶŐLJŽƵ

B 9 > < 9 = > A : + @ 2 A @ 2 D

Questions zŽƵĐĂŶĐŽŶƚĂĐƚƵƐĂƚ [email protected]ŝĨLJŽƵĂƌĞŚĂǀŝŶŐĂƉƌŽďůĞŵǁŝƚŚĂŶLJ

ĂƐƉĞĐƚŽĨƚŚĞŬ͕ĂŶĚǁĞǁŝůůĚŽŽƵƌďĞƐƚƚŽĂĚĚƌĞƐƐŝƚ͘

æ  è 1 Discovering Your Hidden 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ŽƵƌ ^ĐĞŶĞ ͕ĂŶĚŚŽǁƚŽ

> + : 9 2 A / @ 2 1 A     D

    ŽŵƉŽŶĞŶƚƐ ĂŶĚǀŝĞǁƚŚĞŝƌ WƌŽƉĞƌƟĞƐ 

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ŝƐƐŝŵŝůĂƌƚŽĚŽŝŶŐ

1 / @ 0 ? - + < 2 ĂůƌĞĂĚLJĚŽĞǀĞƌLJĚĂLJ͘/ΖŵƐƵƌĞLJŽƵǁŝůůŚĂǀĞŵĂŶLJΗŚͲ,ĂΗŵŽŵĞŶƚƐĂƐLJŽƵůĞĂƌŶ ĂŶĚŽǀĞƌĐŽŵĞ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

9 B A 9 > + + ; 9 2

& ƚŚĞĨŽůůŽǁŝŶŐďƵůůĞƚůŝƐƚ͕ŝƚǁŝůůŚĞůƉLJŽƵƵŶĚĞƌƐƚĂŶĚƚŚĞƌĞĂƐŽŶ

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

- + < 1 9 B A / @ - + < . @ / 2 - 8 . +  A : 2 E + > C A .G 2 1 9 2 9 . A @ + 2 @ / 2 - ? : . / , 2 ? G

) ) ‹ ŶLJηĮůĞƐ ĂƌĞĂĐĐĞƐƐŝďůĞǁŝƚŚŽƵƚƚŚĞŶĞĞĚŽĨĂƩĂĐŚƚŚĞŵƚŽ'ĂŵĞ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ŽƵΖƌĞ

+ / @ 0 2 +

0 ĚŽƚŚĂƚ͕ƚŚĞŶLJŽƵŵĂLJĂƐǁĞůůďĞƵƐŝŶŐηĂŶLJǁĂLJ͕ǁŚŝĐŚďƌŝŶŐƐƵƐďĂĐŬ

2 + A 9 ? + @ 6 D "

Maneuvering around Unity's documentation tŚĞŶǁĞďĞŐŝŶǁƌŝƟŶŐƐĐƌŝƉƚƐ͕ǁĞǁŝůůďĞůŽŽŬŝŶŐĂƚhŶŝƚLJΖƐĚŽĐƵŵĞŶƚĂƟŽŶƋƵŝƚĞŽŌĞŶ͕ ƐŽŝƚΖƐďĞŶĞĮĐŝĂůƚŽŬŶŽǁŚŽǁƚŽĂĐĐĞƐƐƚŚĞŝŶĨŽƌŵĂƟŽŶǁĞŶĞĞĚ͘&ŽƌĂŶŽǀĞƌǀŝĞǁŽĨĂ

ƚŽƉŝĐǁĞΖůůƵƐĞƚŚĞ ZĞĨĞƌĞŶĐĞDĂŶƵĂů ͘&ŽƌƐƉĞĐŝĮĐĐŽĚŝŶŐĚĞƚĂŝůƐĂŶĚĞdžĂŵƉůĞƐǁĞΖůůƵƐĞ

1 A D

2 ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ

£ © ¤  ¢ û ¥ ú ¥ §  ù © ¤ ü   § ¨ ú £ £ © ¤ ¤ ¤ ¦ ú ¡ ¢ § ¤ ÿ ý ü £ © ¤

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

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

 © ú ÿ ý ÿ ¢ § ú  ý ü þ ÿ ¡ ¤  £ ¢  £ ƚŽƵƐĞĂĨĞǁƚŚŝŶŐƐŝŶƚŚĞ ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ ÿ

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

§ ¤ ú û ü ý ü þ £ © ¤ ¤ £ ú ý § ý £ § ú £ ¤ û

7LPHIRUDFWLRQ²RSHQLQJWKH5HIHUHQFH0DQXDOGRFXPHQWDWLRQ

IRUWKHWUDQVIRUP&RPSRQHQW

+ 0 A 2 9 E A A > E + . 



 "

ĂĐĐĞƐƐŝŶŐhŶŝƚLJΖƐĚŽĐƵŵĞŶƚĂƟŽŶĨƌŽŵǁŝƚŚŝŶhŶŝƚLJ͕ǁĞΖůůƵƐĞƚŚĞ !

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ƌĂŶƐĨŽƌŵ

@ 2 1 A 9 @ C 2 1 A

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



$

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

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

& '

@ 2 1 A 2 9 = G ? A > A : 2 2 1 A D ! ,ŝĞƌĂƌĐŚLJ DĂŝŶĂŵĞƌĂ

[ 11 ]

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

( '

D > /: ; + @ 2 1 A = + + ; /: + @ E + . 2 1 A * dƌĂŶƐĨŽƌŵ

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

7LPHIRUDFWLRQ²RSHQLQJWKHVFULSWLQJUHIHUHQFH

GRFXPHQWDWLRQIRUWKHWUDQVIRUPFRPSRQHQW

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

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

ó ô

> /: ; 2 1 A > / @ ; * ^ǁŝƚĐŚƚŽ^ĐƌŝƉƟŶŐ ŝŶƚŚĞƵƉƉĞƌƌŝŐŚƚͲŚĂŶĚƐŝĚĞŽĨƚŚĞďƌŽǁƐĞƌǁŝŶĚŽǁ ĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͗

[ 12 ]

Ä  ¾  Æ Á ä 

What just happened?

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

$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

? + < . @ / 2 - ) ' ƉƌŽũĞĐƚƉƌŽŐƌĞƐƐĞƐ͕ǁĞǁŝůůŚĂǀĞƐĞǀĞƌĂůĨŽůĚĞƌƐƚŽŽƌŐĂŶŝnjĞĂŶĚƐƚŽƌĞĂůůŽĨ

ŽƵƌηĮůĞƐ͘

ó ô

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

õ ô

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

" (

 -   

 Code

ö ô

/ 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 (

" Code Scripts

ô

.

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

! Scripts C# Script

ô

/

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

What just happened?

A : . A 9 2 A C + @ A + E 2 1 A ? < = E + > C A . ? G @ 9 F A C Ž Code Scripts͕ƚŚĂƚǁĞǁŝůůďĞƵƐŝŶŐƚŽŽƌŐĂŶŝnjĞ ŽƵƌηĮůĞƐ͘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 ? /:

) )

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

6\QFLQJ&ÀOHVEHWZHHQ0RQR'HYHORSDQG8QLW\

J / @ : A @ / 2 - 9 @ C ) DŽŶŽĞǀĞůŽƉĂƌĞƐĞƉĂƌĂƚĞĂƉƉůŝĐĂƟŽŶƐ͕hŶŝƚLJǁŝůůŬĞĞƉDŽŶŽĞǀĞůŽƉĂŶĚ hŶŝƚLJƐLJŶĐŚƌŽŶŝnjĞĚǁŝƚŚĞĂĐŚŽƚŚĞƌ͘dŚŝƐŵĞĂŶƐƚŚĂƚŝĨLJŽƵĂĚĚ͕ĚĞůĞƚĞ͕ŽƌĐŚĂŶŐĞĂƐĐƌŝƉƚ ĮůĞŝŶŽŶĞĂƉƉůŝĐĂƟŽŶ͕ƚŚĞŽƚŚĞƌĂƉƉůŝĐĂƟŽŶǁŝůůƐĞĞƚŚĞĐŚĂŶŐĞƐĂƵƚŽŵĂƟĐĂůůLJ͘

7LPHIRUDFWLRQ²RSHQLQJ/HDUQLQJ6FULSWLQ0RQR'HYHORS

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

@ 2 1 A E + > C A . D

dŚĞƐŝŵƉůĞƐƚǁĂLJƚŽĚŽƚŚŝƐŝƐũƵƐƚĚŽƵďůĞͲĐůŝĐŬŽŶ LearningScript / Scripts

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

What just happened?

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

[ 15 ] ŝƐĐŽǀĞƌŝŶŐzŽƵƌ,ŝĚĚĞŶ^ĐƌŝƉƟŶŐ^ŬŝůůƐ :DWFKLQJIRUDSRVVLEOHJRWFKDZKHQFUHDWLQJVFULSWÀOHV in Unity EŽƟĐĞůŝŶĞϰŝŶƚŚĞƉƌĞǀŝŽƵƐƐĐƌĞĞŶƐŚŽƚ͗

public class LearningScript : MonoBehaviour

D 1 /? 1 A : > 9 ? ? @ 9 F A   LearningScriptŝƐƚŚĞƐĂŵĞĂƐƚŚĞĮůĞŶĂŵĞ LearningScript.cs ŝƐĂƌĞƋƵŝƌĞŵĞŶƚ͘zŽƵƉƌŽďĂďůLJĚŽŶΖƚŬŶŽǁǁŚĂƚĂĐůĂƐƐŝƐLJĞƚ͕ƚŚĂƚΖƐŽŬ͘:ƵƐƚƌĞŵĞŵďĞƌƚŚĂƚ

ƚŚĞĮůĞŶĂŵĞĂŶĚƚŚĞĐůĂƐƐŶĂŵĞŵƵƐƚďĞƚŚĞƐĂŵĞ͘

, 2 9 = G /? / @ ΠC / 2 F + C A G

 -   

tŚĞŶLJŽƵĐƌĞĂƚĞĂηƐĐƌŝƉƚĮůĞŝŶhŶŝƚLJ͕ƚŚĞĮůĞŶĂŵĞ͕ŝŶƚŚĞ 

. 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ŽƵƐǁŝƚĐŚďĂĐŬͲĂŶĚͲĨŽƌƚŚ

ďĞƚǁĞĞŶƚŚĞƚŚĞŵ͕ĨŽƌǁŚĂƚĞǀĞƌƌĞĂƐŽŶ͕ĚŽƚŚŝƐ͗

, D

 -    ‹ ZŝŐŚƚͲĐůŝĐŬŽŶhŶŝƚLJΖƐ  ǁŝŶĚŽǁĂŶĚƐĞůĞĐƚ ^LJŶĐDŽŶŽĞǀĞůŽƉWƌŽũĞĐƚ 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 ]

2 Introducing the Building Blocks 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

@ C

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

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

dŚĞǁŽƌĚƐĨƵŶĐƟŽŶĂŶĚŵĞƚŚŽĚƚƌƵůLJŵĞĂŶƚŚĞƐĂŵĞ

£ © ý ü þ ý ü : ü ý £  © ¤  £ © ¤ ÿ ú ¡ ¤ £ © ý ü þ

N

/ @ : A - + < 9 . A ? 2 < C - / @ 0 * ž G 9 @ C * ž /? 9 @ > 9 @ 0 < 9 0 A G J KďũĞĐƚͲKƌŝĞŶƚĞĚWƌŽŐƌĂŵŵŝŶŐ ; KKW

/ǁŝůůƵƐĞƚŚĞǁŽƌĚΗŵĞƚŚŽĚΗƚŚƌŽƵŐŚŽƵƚƚŚŝƐŬ͕ũƵƐƚƚŽďĞĐŽŶƐŝƐƚĞŶƚǁŝƚŚηŐƵŝĚĞůŝŶĞƐ͘

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

! ' )

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

&ƌŽŵŶŽǁŽŶ/ΖŵŐŽŝŶŐƚŽƵƐĞƚŚĞǁŽƌĚƐŵĞƚŚŽĚŽƌŵĞƚŚŽĚƐŝŶƚŚŝƐŬ͘ 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ĂďĞů͕

? , /C A .G

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

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

Naming a variable

? / @ 0 2 1 A , /: 2 < . A + E 2 1 A ) ĐŽƵŶƚƌLJŵĂŝůďŽdžĞƐ͕ŝĨ/ĂƐŬĞĚLJŽƵƚŽƐĞĞǁŚĂƚŝƐŝŶƚŚĞŵĂŝůďŽdž͕ƚŚĞ ĮƌƐƚƚŚŝŶŐ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ŽƵĐĂŶΖƚĂĚĚĂŶƵŵďĞƌĂŶĚĂǁŽƌĚ͘'ŽŝŶŐďĂĐŬƚŽƚŚĞ

9 / > = + ì 9 @ 9 > + 0 - G F ǁƌŝƚĞƚŚĞŶƵŵďĞƌϵŽŶĂƉŝĞĐĞŽĨƉĂƉĞƌ͘WƵƚŝƚŝŶƚŚĞŵĂŝůďŽdžŶĂŵĞĚ myNumber͘EŽǁLJŽƵĐĂŶƐŽůǀĞƚŚĞĞƋƵĂƟŽŶ͘tŚĂƚΖƐƚŚĞǀĂůƵĞŝŶ myNumber͍dŚĞǀĂůƵĞ

ŝƐϵ͘^ŽŶŽǁƚŚĞĞƋƵĂƟŽŶůŽŽŬƐŶŽƌŵĂů͗ϭϭнϵсϮϬ

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  myNumber ;ŝŶĨŽƌŵĂƟŽŶͿ͘^ŽĂŶ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

ó ô

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

! ) (

 -   

 LearningScript

õ ô

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

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

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



  < " 

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

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

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

ó ô

+ @ 2 + 2 1 A D . 9 0

¤ LearningScript DĂŝŶĂŵĞƌĂ

õ ô

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

   

DĂŝŶĂŵĞƌĂ 

ö ô

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

ô

.

# , A @ 2 1 A @ / 2 -

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

ô

/

> /: ; + @ D * WůĂLJ

[ 22 ]

Ä  ¾  Æ Á ä ; dŚĞƉƌĞĐĞĚŝŶŐƐƚĞƉƐĂƌĞƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͗

What just happened?

/ŶƚŚĞĨŽůůŽǁŝŶŐ ŽŶƐŽůĞ ƉĂŶĞůŝƐƚŚĞƌĞƐƵůƚŽĨŽƵƌĞƋƵĂƟŽŶƐ͘ƐLJŽƵĐĂŶƐĞĞ͕ƚŚĞĞƋƵĂƟŽŶ

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

7LPHIRUDFWLRQ²FKDQJLQJWKHQXPEHUWRDGLIIHUHQWQXPEHU

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

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

ó ô

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

J ϵ ϭϵ

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

[ 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

+ . 2 1 A 2 - , A ? + E tĞĚŝĚŶΖƚŐĞƚŝŶƚŽƚŚĞĚĞƚĂŝůƐŽĨƚŚĞǁŽƌĚŝŶŐƵƐĞĚƚŽĐƌĞĂƚĞ myNumberG ǀĂƌŝĂďůĞƐLJŽƵĐĂŶĐƌĞĂƚĞ͕ďƵƚƚŚĂƚǁĂƐŶΖƚƚŚĞŝŶƚĞŶƚ͘dŚŝƐǁĂƐũƵƐƚƚŽƐŚŽǁLJŽƵŚŽǁĂǀĂƌŝĂďůĞ

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

Þ ß à G D

’ á – é ĮŶĞƌĚĞƚĂŝůƐŽĨǀĂƌŝĂďůĞƐŝŶ — sĂƌŝĂďůĞƐŝŶĞƚĂŝů

+DYHDJRKHUR²FKDQJLQJWKHYDOXHRIP\1XPEHU

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

!

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

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

What is a method? tŚĞŶǁĞǁƌŝƚĞĂƐĐƌŝƉƚ͕ǁĞĂƌĞŵĂŬŝŶŐůŝŶĞƐŽĨĐŽĚĞƚŚĂƚƚŚĞĐŽŵƉƵƚĞƌŝƐŐŽŝŶŐƚŽĞdžĞĐƵƚĞ͕ ŽŶĞůŝŶĞĂƚĂƟŵĞ͘ƐǁĞǁƌŝƚĞŽƵƌĐŽĚĞ͕ƚŚĞƌĞǁŝůůďĞƚŚŝŶŐƐǁĞǁĂŶƚŽƵƌŐĂŵĞƚŽĞdžĞĐƵƚĞ ŵŽƌĞƚŚĂŶŽŶĐĞ͘&ŽƌĞdžĂŵƉůĞ͕ǁĞĐĂŶǁƌŝƚĞĂĐŽĚĞƚŚĂƚĂĚĚƐƚǁŽŶƵŵďĞƌƐ͘^ƵƉƉŽƐĞŽƵƌ

ŐĂŵĞŶĞĞĚƐƚŽĂĚĚƚŚĞƚǁŽŶƵŵďĞƌƐƚŽŐĞƚŚĞƌĂŚƵŶĚƌĞĚĚŝīĞƌĞŶƚƟŵĞƐĚƵƌŝŶŐƚŚĞŐĂŵĞ͘

+ - + < ? 9 - G J ΗtŽǁ͕/ŚĂǀĞƚŽǁƌŝƚĞƚŚĞƐĂŵĞĐŽĚĞĂŚƵŶĚƌĞĚƟŵĞƐƚŚĂƚĂĚĚƐƚǁŽŶƵŵďĞƌƐ ƚŽŐĞƚŚĞƌ͘dŚĞƌĞŚĂƐƚŽďĞĂďĞƩĞƌǁĂLJ͘Η

>ĞƚĂŵĞƚŚŽĚƚĂŬĞĂǁĂLJLJŽƵƌƚLJƉŝŶŐƉĂŝŶ͘zŽƵũƵƐƚŚĂǀĞƚŽǁƌŝƚĞƚŚĞĐŽĚĞƚŽĂĚĚƚǁŽ

< 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 @ AddTwoNumbers()

EŽǁ͕ĞǀĞƌLJƟŵĞŽƵƌŐĂŵĞŶĞĞĚƐƚŽĂĚĚƚǁŽŶƵŵďĞƌƐ͕ĚŽŶΖƚǁƌŝƚĞƚŚĞĐŽĚĞŽǀĞƌĂŶĚ

B A .G  < ? 2 : 9 > > 2 1 A F A 2 1 + C D + AddTwoNumbers()

7LPHIRUDFWLRQ²OHDUQLQJKRZDPHWKRGZRUNV

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

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

Þ ß à G D / 0 1 2

"

’ á – ê ŝŶƚŚŝƐĐŚĂƉƚĞƌ͘tĞǁŝůůĚŝƐĐƵƐƐƚŚĂƚŝŶ — 'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ

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

ó ô

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

! LearningScriptĨŽƌĞĚŝƟŶŐ͘

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

[ 24 ]

Ä  ¾  Æ Á ä ;

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

:KDW VLQWKLVVFULSWÀOH"

/ŶƚŚĞƉƌĞǀŝŽƵƐƐĐƌĞĞŶƐŚŽƚ͕ůŝŶĞƐϲĂŶĚϳǁŝůůůŽŽŬĨĂŵŝůŝĂƌƚŽLJŽƵ͖ƚŚĞLJĂƌĞǀĂƌŝĂďůĞƐũƵƐƚĂƐ

+ < > A 9 . @ A C

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

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ŽƵƌƐĞůĨƌŝŐŚƚŶŽǁǁŝƚŚŚŽǁƚŚŝƐǁŽƌŬƐ͘

; A - /?

=

’ á –

:ƵƐƚŬŶŽǁƚŚĂƚŝƚΖƐĂůŝŶĞŽĨĐŽĚĞƚŚĂƚůĞƚƐƚŚĞƐĐƌŝƉƚŬŶŽǁǁŚĞŶƚŚĞ ZĞƚƵƌŶ ͬ 

, . A ? ? A C D 8 . A ? ? 2 1 A

=

’ á – ZĞƚƵƌŶ ͬ  ŬĞLJǁŚĞŶLJŽƵǁĂŶƚƚŽĂĚĚƚŚĞƚǁŽŶƵŵďĞƌƐƚŽŐĞƚŚĞƌ͘

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

ĞdžĂĐƚůLJŚŽǁƚŽĚĞƐĐƌŝďĞŝƚ͘dŚŝƐůŝŶĞŽĨĐŽĚĞĐĂůůƐƚŚĞŵĞƚŚŽĚ͘

/ @ A ? 4 5 G 4 6 G 4 4 G 9 @ C 4 7 F 9 ; A < , 2 1 A K AddTwoNumbers()ŵĞƚŚŽĚ͘ŽŶΖƚďĞĐŽŶĐĞƌŶĞĚĂďŽƵƚ ƚŚĞĐŽĚĞĚĞƚĂŝůƐ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  Æ Ç

/? 2 1 A @ 9 F A + E 2 1 A F A 2 1 + C D K / ; A 9 B 9 . / 9 = > A G /? 1 A  AddTwoNumbers() AddTwoNumbers() ŶŽƚŚŝŶŐŵŽƌĞƚŚĂŶĂŶĂŵĞĚƉůĂĐĞŚŽůĚĞƌŝŶƚŚĞŵĞŵŽƌLJ͕ďƵƚƚŚŝƐƟŵĞŝƚƐƚŽƌĞƐƐŽŵĞůŝŶĞƐŽĨ ĐŽĚĞŝŶƐƚĞĂĚ͘^ŽĂŶLJǁŚĞƌĞǁĞǁŽƵůĚůŝŬĞƚŽƵƐĞƚŚĞĐŽĚĞŽĨƚŚŝƐŵĞƚŚŽĚŝŶŽƵƌƐĐƌŝƉƚ͕ũƵƐƚ ǁƌŝƚĞ AddTwoNumbers()͕ĂŶĚƚŚĞĐŽĚĞǁŝůůďĞƐƵďƐƟƚƵƚĞĚ͘ >ŝŶĞϮϭŚĂƐĂŶŽƉĞŶŝŶŐĐƵƌůLJͲďƌĂĐĞĂŶĚůŝŶĞϮϯŚĂƐĂĐůŽƐŝŶŐĐƵƌůLJͲďƌĂĐĞ͘ǀĞƌLJƚŚŝŶŐďĞƚǁĞĞŶ

ƚŚĞƚǁŽĐƵƌůLJͲďƌĂĐĞƐŝƐƚŚĞĐŽĚĞƚŚĂƚŝƐĞdžĞĐƵƚĞĚǁŚĞŶƚŚŝƐŵĞƚŚŽĚŝƐĐĂůůĞĚŝŶ

+ < . ? : . / , 2 D

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

AddTwoNumbers();

1 A F A 2 1 + C @ 9 F A

 AddTwoNumbers()ŝƐĐĂůůĞĚ͘dŚŝƐŵĞĂŶƐƚŚĂƚƚŚĞĐŽĚĞďĞƚǁĞĞŶƚŚĞ

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

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

ůŝŶĞϭϳ͘

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

# AddTwoNumbers()

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

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

D 1 A @ G ŝƐĂĚĚŝŶŐƚŚĞƚǁŽǀĂƌŝĂďůĞƐƚŽŐĞƚŚĞƌĂŶĚĚŝƐƉůĂLJŝŶŐƚŚĞĂŶƐǁĞƌƚŽƚŚĞhŶŝƚLJ ŽŶƐŽůĞ 

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

6 D + = 9 : ; 2 + @ / 2 - 9 @ C 1 9 B A 2 1 A )

% ŽŶƐŽůĞ ƉĂŶĞůƐŚŽǁŝŶŐ͘

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

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 ]

Ä  ¾  Æ Á ä ;

; A -

=

’ á – >ŝŶĞϭϲǁĂŝƚĞĚĨŽƌLJŽƵƚŽƉƌĞƐƐƚŚĞ ZĞƚƵƌŶ ͬ  ͘tŚĞŶLJŽƵĚŽƚŚŝƐ͕ůŝŶĞϭϳĞdžĞĐƵƚĞƐ

ǁŚŝĐŚĐĂůůƐƚŚĞ AddTwoNumbers()ŵĞƚŚŽĚ͘dŚŝƐĂůůŽǁƐƚŚĞĐŽĚĞďůŽĐŬŽĨƚŚĞŵĞƚŚŽĚ͕ůŝŶĞ

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 4 number1 number2

+DYHDJRKHUR²FKDQJLQJWKHRXWSXWRIWKHPHWKRG

Ž 1 / > A @ / 2 - /? / @ 2 1 A F + C A G ? A > A : 2 2 1 A

) WůĂLJ DĂŝŶĂŵĞƌĂ ƐŽŝƚƐŽŵƉŽŶĞŶƚƐƐŚŽǁŝŶƚŚĞ

    D @ 2 1 A     , 9 @ A > G > + : 9 2 A

!

        

 >ĞĂƌŶŝŶŐ^ĐƌŝƉƚ ĂŶĚŝƚƐƚǁŽǀĂƌŝĂďůĞƐ͘ŚĂŶŐĞƚŚĞ

9 > < A ? G : < . . A @ 2 > - 9 @ C

B Ϯ ϵ͕ƚŽĚŝīĞƌĞŶƚǀĂůƵĞƐ͘DĂŬĞƐƵƌĞƚŽĐůŝĐŬLJŽƵƌŵŽƵƐĞŝŶƚŚĞ 'ĂŵĞ

, 9 @ A > ? + / 2 1 9 ? E + : < ? G 2 1 A @ , . A ? ? 2 1 A

=

’ á – ZĞƚƵƌŶ ͬ  ŬĞLJĂŐĂŝŶ͘zŽƵǁŝůůƐĞĞƚŚĞƌĞƐƵůƚŽĨƚŚĞ ŶĞǁĂĚĚŝƟŽŶŝŶƚŚĞ ŽŶƐŽůĞ D

zŽƵũƵƐƚůĞĂƌŶĞĚŚŽǁĂŵĞƚŚŽĚǁŽƌŬƐƚŽĂůůŽǁĂƐƉĞĐŝĮĐďůŽĐŬŽĨĐŽĚĞƚŽƚŽďĞĐĂůůĞĚƚŽ

, A . E + . F 9 2 9 ? ; D

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

Þ ß à G

’ á – ê ĨƵŶĚĂŵĞŶƚĂůůLJŚŽǁƚŚĞLJǁŽƌŬ͘tĞΖůůŐĞƚŝŶƚŽƚŚĞĮŶĞƌĚĞƚĂŝůƐŽĨŵĞƚŚŽĚƐŝŶ — 'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ D

Introducing the class

1 A , > 9 -  ĐůĂƐƐ ƐĂŵĂũŽƌƌŽůĞŝŶhŶŝƚLJ͘/ŶĨĂĐƚ͕ǁŚĂƚhŶŝƚLJĚŽĞƐǁŝƚŚĂĐůĂƐƐĂůŝƩůĞƉŝĞĐĞŽĨ ŵĂŐŝĐǁŚĞŶ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  Æ Ç

@ Þ ß à G

!

’ á – î — ƌĞĂƟŶŐƚŚĞ'ĂŵĞƉůĂLJŝƐ:ƵƐƚĂWĂƌƚŽĨƚŚĞ'ĂŵĞ ͕ǁĞǁŝůůďĞĐƌĞĂƟŶŐƐŽŵĞ ĐůĂƐƐĞƐĨŽƌĂ^ƚĂƚĞ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

ƐĐƌŝƉƚŝƐůŝŬĞĂďůƵĞƉƌŝŶƚŽƌĂǁƌŝƩĞŶĚĞƐĐƌŝƉƟŽŶ͘/ŶŽƚŚĞƌǁŽƌĚƐ͕ŝƚΖƐũƵƐƚĂƐŝŶŐůĞĮůĞŝŶĂ

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 , 

 -     ƉĂŶĞů͘/ƚĐĂŶΖƚĚŽĂŶLJƚŚŝŶŐ ũƵƐƚƐŝƫŶŐƚŚĞƌĞ͘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ĐůĂƐƐŝƐŝŶŚĞƌŝƟŶŐ

= 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 / + < .

# MonoBehaviour 

ĐůĂƐƐŝƐŵĂŬŝŶŐĨĞǁŽĨŝƚƐǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐĂǀĂŝůĂďůĞƚŽƚŚĞ>ĞĂƌŶŝŶŐ^ĐƌŝƉƚĐůĂƐƐ͘/ƚΖƐ

@ + : + / @ : /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

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

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

> ? + ? A 9 . : 1 E + .

' MonoBehaviour͘dŚŝƐǁŝůůƐŚŽǁLJŽƵƚŚĂƚƐŝŶĐĞŽƵƌƐĐƌŝƉƚŝŶŚĞƌŝƚƐĨƌŽŵ

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

Components communicating using the Dot Syntax KƵƌƐĐƌŝƉƚŚĂƐǀĂƌŝĂďůĞƐƚŽŚŽůĚĚĂƚĂ͕ĂŶĚŽƵƌƐĐƌŝƉƚŚĂƐŵĞƚŚŽĚƐƚŽĂůůŽǁƚĂƐŬƐƚŽďĞ

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

@ C 2 1 A 9 ŽŵƉŽŶĞŶƚƐƚŚĞLJĐŽŶƚĂŝŶ͘ŽŵŵƵŶŝĐĂƟŽŶďĞƚǁĞĞŶŽŶĞ'ĂŵĞKďũĞĐƚΖƐŽŵƉŽŶĞŶƚƐ ĂŶĚĂŶŽƚŚĞƌ'ĂŵĞ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ŚŽƵƐĞ͘

Þ ß à G à B

’ á – í  œ ‘  @ A ™ ’ ” “  ’ ˜ ™ – tĞΖůůŐĞƚŝŶƚŽŵƵĐŚŵŽƌĞŽƚ^LJŶƚĂdžĚĞƚĂŝůŝŶ — 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 ] 3 *HWWLQJLQWRWKH'HWDLOVRI9DULDEOHV

/ŶŝƚŝĂůů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ŽƵĚŽŶŽƌŵĂůǁƌŝƟŶŐ͕ŝƚΖƐŝŶƚŚĞĨŽƌŵŽĨĂƐĞŶƚĞŶĐĞǁŝƚŚĂƉĞƌŝŽĚƵƐĞĚƚŽĞŶĚƚŚĞ

A @ 2 A @ : A D Ž 1 A @

? LJŽƵǁƌŝƚĞĂůŝŶĞŽĨĐŽĚĞ͕ŝƚΖƐĐĂůůĞĚĂƐƚĂƚĞŵĞŶƚǁŝƚŚĂƐĞŵŝͲĐŽůŽŶƵƐĞĚƚŽ

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

9 F A # =  A : 2 ? 1 9 B A ? + F A

% ŽŵƉŽŶĞŶƚƐƚŚĂƚŵĂŬĞƚŚĞŵďĞŚĂǀĞŝŶĂĐĞƌƚĂŝŶǁĂLJ͘&ŽƌŝŶƐƚĂŶĐĞ͕

? 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

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

[ 32 ]

Ä  ¾  Æ Á ä E

9DULDEOHVEHFRPH&RPSRQHQWSURSHUWLHV

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

ƚŚĞƐĐƌŝƉƚŽƌƚŚĞhŶŝƚLJΖƐƉƌŽŐƌĂŵŵĞƌĚŝĚ͘tĞũƵƐƚĂƌĞŶΖƚƐƵƉƉŽƐĞĚƚŽĞĚŝƚƚŚĞƐĐƌŝƉƚƐƚŚĂƚ

    9 . A  < ? 2 B 9 . / 9 = > A ? + E

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

Unity changes script and variable names slightly

   

   

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

9 @ A > 9 ? 9

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

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

    , 9 @ A > 9 ?

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

hŶŝƚLJĚŽĞƐƚŚŝƐŵŽĚŝĮĐĂƟŽŶƚŽƚŚĞǀĂƌŝĂďůĞŶĂŵĞƐ͕ƚŽŽ͘EŽƟĐĞƚŚĂƚƚŚĞǀĂƌŝĂďůĞ number1

9 @ C 9 ?

ŝƐƐŚŽǁŶĂƐ EƵŵďĞƌϭ G number2 EƵŵďĞƌϮ ͘hŶŝƚLJĐĂƉŝƚĂůŝnjĞƐƚŚĞĮƌƐƚůĞƩĞƌĂƐǁĞůů͘

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

1 A . A 9 . A

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

¤ < . / @ 0 2 1 A F + C A

‹ WůĂLJ

N

F + C A

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

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

ƌĞĂůƟŵĞ͘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ĂƌŝĂďůĞƐ

    , 9 @ A > G - + < : 9 @ . A ? A 2 2 1 A B 9 > < A ?

    /ĨLJŽƵĚĞƐŝƌĞƚŽƵŶĚŽƚŚĞĐŚĂŶŐĞƐLJŽƵΖǀĞŵĂĚĞŝŶƚŚĞ 

ƚŽƚŚĞĚĞĨĂƵůƚǀĂůƵĞƐĂƐƐŝŐŶĞĚŝŶLJŽƵƌƐĐƌŝƉƚ͘ůŝĐŬŽŶƚŚĞŽŐŝĐŽŶ;ƚŚĞŐĞĂƌͿŽŶƚŚĞĨĂƌƌŝŐŚƚŽĨ

 2 1 A * + F , + @ A @ 2 ? : . / , 2 G 9 @ C 2 1 A @ ? A > A : 2

$

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

Displaying public variables in the Inspector panel

A 9 @ ? 9 2 2 1 A = A 0 / @ @ / @ 0 + E

/ΖŵƐƵƌĞLJŽƵΖƌĞǁŽŶĚĞƌŝŶŐǁŚĂƚƚŚĞǁŽƌĚ public F

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

public int number1 = 2;

2 F A 9 @ ? 2 1 9 2 2 1 A

! ǀĂƌŝĂďůĞǁŝůůďĞǀŝƐŝďůĞĂŶĚĂĐĐĞƐƐŝďůĞ͘/ƚǁŝůůďĞǀŝƐŝďůĞĂƐĂƉƌŽƉĞƌƚLJŝŶƚŚĞ

    , 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ŽƵΖůůůĞĂƌŶŵŽƌĞĂďŽƵƚƚŚĞŽƚ

J - @ 2 9 ì / @ Þ ß à G D

’ á – í — hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

7LPHIRUDFWLRQ²PDNLQJDYDULDEOHSULYDWH

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

$ public͘/ĨƚŚĞƌĞΖƐŶŽŶĞĞĚĨŽƌĂǀĂƌŝĂďůĞƚŽďĞĐŚĂŶŐĞĚŝŶ

2 1 A    

   

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

   

   

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

ó ô ŚĂŶŐĞůŝŶĞϲƚŽƚŚĞĨŽůůŽǁŝŶŐ͗ private int number1 = 2;

[ 34 ]

Ä  ¾  Æ Á ä E

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

int number2 = 9;

ö ô

^ĂǀĞƚŚĞĮůĞ͘

ô

.

D @ @ / 2 - G ? A > A : 2 ) ! DĂŝŶĂŵĞƌĂ

What just happened?

    9 @ C

   

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

9 . A 0 + @ A D

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

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

 number1 private

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;

1 A

 number2ǀĂƌŝĂďůĞŝƐŶŽůŽŶŐĞƌǀŝƐŝďůĞĂƐĂƉƌŽƉĞƌƚLJĞŝƚŚĞƌ͕ďƵƚLJŽƵĚŝĚŶΖƚ

, A : /E - / 2 9 ? D

? private

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

G 1 9 C ǁŚĂƚŝƚŵĞĂŶƐ͘EŽǁƐƵƉƉŽƐĞŝŶƐƚĞĂĚŽĨ theBearMakesBigPottyInTheWoods ! ŶĂŵĞĚƚŚŝƐǀĂƌŝĂďůĞĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐĐŽĚĞ͗

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ŚĞŽŵƉŽŶĞŶƚŶĂŵĞƐ;ĐůĂƐƐŶĂŵĞƐͿ

9 : > 9 ? ? G 9 @ C

ďĞŐŝŶǁŝƚŚĂĐĂƉŝƚĂůůĞƩĞƌ͘&ŽƌĞdžĂŵƉůĞ͕ŝƚΖƐĞĂƐLJƚŽŬŶŽǁƚŚĂƚ Transform /?

9 B 9 . / 9 = > A D transform /? 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

    , 9 @ A > D

    ĂŶĚƐĞĞǁŚĂƚhŶŝƚLJĚŽĞƐǁŝƚŚŝƚŝŶƚŚĞ 

[ 36 ]

Ä  ¾  Æ Á ä E

Declaring a variable and its type

B A . - B 9 . / 9 = > A Œ ǁĞǁĂŶƚƚŽƵƐĞŝŶĂƐĐƌŝƉƚŵƵƐƚďĞĚĞĐůĂƌĞĚŝŶĂƐƚĂƚĞŵĞŶƚ͘tŚĂƚĚŽĞƐƚŚĂƚ ŵĞĂŶ͍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ŚĞĨŽůůŽǁŝŶŐŝƐǁŚĂƚǁĞŚĂǀĞ͗

/? 2 1 A 2 - , A + E C 9 2 9 2 1 9 2

‹ ZĞƋƵŝƌĞŵĞŶƚηϭ number1ĐĂŶƐƚŽƌĞ͕ǁŚŝĐŚŝŶƚŚŝƐĐĂƐĞŝƐĂŶ

F A 9 @ / @ 0 9 @ / @ 2 A 0 A . intG

‹ ZĞƋƵŝƌĞŵĞŶƚηϮ ŝƐĂŶĂŵĞǁŚŝĐŚŝƐ number1

/? 2 1 A ? A F / : + > + @ 9 2 2 1 A A @ C (

‹ ZĞƋƵŝƌĞŵĞŶƚηϯ

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

= - C A E 9 < > 2

‹ dŚĞƌĞΖƐŶŽ publicŵŽĚŝĮĞƌǁŚŝĐŚŵĞĂŶƐŝƚΖƐ private

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

   

‹ /ƚǁŽŶΖƚĂƉƉĞĂƌŝŶƚŚĞ 

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

[ 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 - + <



Þ ß à G

’ á – î

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

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, eithertrue or false

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

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

¢ û ¥ § ¤ ¡ § ¨ ý ü þ  ¢ £ © ¤ £ © ¤ û ¥  ý § £ R ý ü £  ¢ ¤ ÿ ý   ¤ ? ¤ û ü ¤ ¤ £  ÿ ¤ £ © ¤ ¡ tĞŬŶŽǁƚŚĞŵŝŶŝŵƵŵƌĞƋƵŝƌĞŵĞŶƚƐƚŽĚĞĐůĂƌĞĂǀĂƌŝĂďůĞ͘,ŽǁĞǀĞƌ͕ǁĞĐĂŶĂĚĚŵŽƌĞ

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

7LPHIRUDFWLRQ²DVVLJQLQJYDOXHVZKLOHGHFODULQJWKHYDULDEOH

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

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

    , 9 @ A > D 1 A ? A 9 . A 9 > >



   

ŚŽǁƚŚĞLJĂƌĞƉƌĞƐĞŶƚĞĚŝŶƚŚĞ  publicǀĂƌŝĂďůĞƐƐŽƚŚĞLJǁŝůů

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

    

[ 38 ]

Ä  ¾  Æ Á ä E

What just happened?

    , 9 @ A > I

   

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

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



     ƉĂŶĞůǁŝƚŚƚŚĞǀĂůƵĞƐĂůƌĞĂĚLJƐĞƚ͘

Where you declare a variable is important

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 !

zŽƵǁŝůůďĞ 

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

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

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

    ŚĂǀĞƚŚĞŽƉƟŽŶŽĨďĞŝŶŐĚŝƐƉůĂLJĞĚŝŶƚŚĞ 

^ŽǁŚĞƌĞŝŶƚŚĞĐůĂƐƐƐŚŽƵůĚƚŚĞŵĞŵďĞƌǀĂƌŝĂďůĞƐďĞĚĞĐůĂƌĞĚ͍dŚŝƐŝƐĂŶŽƚŚĞƌƐƵďũĞĐƚƚŚĂƚ

9 @ > A 9 C 2 +

: ŚĞĂƚĞĚĚŝƐĐƵƐƐŝŽŶƐ͘WĞƌƐŽŶĂůůLJ͕/ĚĞĐůĂƌĞƚŚĞŵĂƚƚŚĞƚŽƉŽĨĂĐůĂƐƐĮůĞďĞĨŽƌĞ

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ŚĞƐĞǀĂƌŝĂďůĞƐĂƌĞĐĂůůĞĚĂƐ ůŽĐĂůǀĂƌŝĂďůĞƐ

    , 9 @ A > G @ + . : 9 @ 2 1 A - = A 9 : : A ? ? A C = - + 2 1 A .

   

ĂŶĚĂƌĞŶĞǀĞƌĚŝƐƉůĂLJĞĚŝŶƚŚĞhŶŝƚLJΖƐ 

? : . / , 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ͲďƌĂĐĞƐ͘:ƵƐƚ

> / ; A 2 1 A F A 2 1 + C / @ Þ ß à G

’ á – S

AddTwoNumbers() — /ŶƚƌŽĚƵĐŝŶŐƚŚĞƵŝůĚŝŶŐďůŽĐŬƐĨŽƌhŶŝƚLJ

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

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

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

[ 40 ]

Ä  ¾  Æ Á ä E

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

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

T ¤ ¥ § ¨ ÿ ú û ¤  ÿ  ú § §  ¢ ú û £ £ © ¤ û £ © ý ü þ ÿ ÿ  ©

ĚŝĚǁŝƚŚ ŽĚĞůŽĐŬϯ

ú ÿ ý ÿ £ ú £ ¤ ¡ ¤ ü £ ÿ § ¢ ý ü þ ÿ £ ú £ ¤ ¡ ¤ ü £ ÿ ú ü ¡ ¤ £ © ÿ © ý ÿ ¤ ¦ ú ¡ ¢ § ¤ ý ÿ U  ÿ £ £

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

ú ü ý ÿ  ÿ ¤ ú ¥ § ¤ dŚĞĨŽůůŽǁŝŶŐŝƐǁŚĂƚLJŽƵŚĂǀĞ͗

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

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 ? / @ 

 string 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

ŽĚĞůŽĐŬϯ ! block3

? < : 1 9 ? / @ + .

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

9 - / @ 0 2 1 9 2 B 9 . / 9 = > A

? block3ĚŽĞƐŶΖƚĞdžŝƐƚ͘

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

ĂŶĚϭϴ͘

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

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

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 

 string block1

D 1 /? : + C A = > + : ; = A 0 / @ ? + @ > / @ A L 9 @ C A ì /? 2 ? / @ 2 1 A : + C A = > + : ; 2 1 9 2 /? > 9 = A > A C

ŽĚĞůŽĐŬϭ 

A @ C ? + @ > / @ A 4 5 D 1 /? F A 9 @ ? 2 1 A B 9 . / 9 = > A

 block1ĐĂŶďĞƵƐĞĚĞǀĞƌLJǁŚĞƌĞ͕ŝŶĐůƵĚŝŶŐ ŽĚĞ

D 1 A B 9 . / 9 = > A

ůŽĐŬϮĂŶĚŽĚĞůŽĐŬϯ ďĞĐĂƵƐĞ͕ƚŚĞLJĂƌĞĂůƐŽǁŝƚŚŝŶ ŽĚĞůŽĐŬϭ  block1

+ @ > / @ A 6 5 G 9 @ C / @ < ? A C / @

/? ŽĚĞůŽĐŬϮ ŽĚĞůŽĐŬϯ ŽŶůŝŶĞϭϰ͘

1 A ? : + , A + E 2 1 A

 block1ǀĂƌŝĂďůĞŝƐƚŚĞĐŽĚĞďůŽĐŬĚĞĮŶĞĚďLJƚŚĞĐƵƌůLJͲďƌĂĐĞƐďĞƚǁĞĞŶ

> / @ 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 .

   

ĂƐƚĂƚĞŵĞŶƚ͘ůůƚŚĞŽŵƉŽŶĞŶƚƉƌŽƉĞƌƟĞƐƐŚŽǁŶŝŶƚŚĞ 

    , 9 @ A > G

   

ǀĂƌŝĂďůĞƐŝŶƚŚĞŽŵƉŽŶĞŶƚΖƐĐůĂƐƐ͘DĞŵďĞƌǀĂƌŝĂďůĞƐĐĂŶďĞƐŚŽǁŶŝŶƚŚĞ 

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

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

[ 42 ] 4 *HWWLQJLQWRWKH'HWDLOVRI0HWKRGV

/ŶƚŚĞƉƌĞǀŝŽƵƐĐŚĂƉƚĞƌ͕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 "

‹

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

sĂƌŝĂďůĞƐĂƌĞƚŚĞĮƌƐƚŵĂũŽƌďƵŝůĚŝŶŐďůŽĐŬŽĨη͕ŵĞƚŚŽĚƐĂƌĞƚŚĞƐĞĐŽŶĚ͕ƐŽůĞƚΖƐĚŝǀĞ

/ @ 2 + F A 2 1 + C ? D 'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨDĞƚŚŽĚƐ

(QGLQJDPHWKRGGHÀQLWLRQXVLQJFXUO\EUDFHV

2 2 1 A = A 0 / @ @ / @ 0 + E Þ ß à G - + < > A 9 . @ A C 9 = + < 2 * ž

'

’ á – é — 'ĞƫŶŐŝŶƚŽƚŚĞĞƚĂŝůƐŽĨsĂƌŝĂďůĞƐ ƐƚĂƚĞŵĞŶƚƐĂŶĚƚŚĞƌĞƋƵŝƌĞŵĞŶƚƚŽĞŶĚƚŚĞŵǁŝƚŚĂƐĞŵŝĐŽůŽŶ͘ŵĞƚŚŽĚĚĞĮŶŝƟŽŶŚĂƐ

ĂĚŝīĞƌĞŶƚƌĞƋƵŝƌĞŵĞŶƚ͘

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

/Ĩ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

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

ĚŽŶΖƚƵƐĞŐŽŽĚŶĂŵĞƐ͕ƚŚĞŶƐŝ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 ŶĂŵĞƚŚĂƚƐŽƵŶĚƐůŝŬĞΗĂĐƟŽŶ͘Η&ŽƌĞdžĂŵƉůĞ͕ JumpOverTheFence + ClimbTheWall 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

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

'HÀQLQJDPHWKRGSURSHUO\

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

F A 2 1 + C G ĞƉĞŶĚŝŶŐŽŶǁŚŽLJŽƵƚĂůŬƚŽ͕ƐŽŵĞǁŝůůƐĂLJǁĞŚĂǀĞƚŽ ĚĞĐůĂƌĞ 9 ŽƚŚĞƌƐǁŝůůƐĂLJ ǁĞŚĂǀĞƚŽ ĚĞĮŶĞ ĂŵĞƚŚŽĚ͘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 ( ) {

}

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

LearningScript ) Start()

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ǀĂůƵĞ͕ƐŽŝŶƐƚĞĂĚŽĨ

/? < ? A C D 1 /? / @ E + . F ? @ / 2 - 2 1 9 2 )

ƐƉĞĐŝĨLJŝŶŐĂŶĂĐƚƵĂůƚLJƉĞŽĨĚĂƚĂ͕ƚŚĞŬĞLJǁŽƌĚ void 

@ + 2 1 / @ 0 /? = A / @ 0 . A 2 < . @ A C E . + F 2 1 A F A 2 1 + C D D ‹ ^ĞĐŽŶĚƌĞƋƵŝƌĞŵĞŶƚŝƐƚŚĞŵĞƚŚŽĚŶĂŵĞǁŚŝĐŚŝƐ Start()

‹ >ĂƐƚƌĞƋƵŝƌĞŵĞŶƚŝƐƚŚĞĐƵƌů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

= - C A E 9 < > 2 D

‹ dŚĞƌĞΖƐŶŽƉƵďůŝĐŵŽĚŝĮĞƌ͕ǁŚŝĐŚŵĞĂŶƐƚŚŝƐŵĞƚŚŽĚŝƐprivate

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ƉĂƌƚ

ŽĨĂŵĞƚŚŽĚΖƐŶĂŵĞ͍ A Ž ĂůƌĞĂĚLJŬŶŽǁƚŚĂƚĂŵĞƚŚŽĚŝƐĂĐŽĚĞďůŽĐŬƚŚĂƚŝƐŐŽŝŶŐƚŽŐĞƚĐĂůůĞĚŵƵůƟƉůĞƟŵĞƐ͘dŚĂƚΖƐ ŽŶĞŽĨƚŚĞƌĞĂƐŽŶƐǁŚ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ĞΖƌĞŐŽŝŶŐƚŽŵŽĚŝĨLJ LearningScriptƚŽƐĞŶĚƐŽŵĞŝŶĨŽƌŵĂƟŽŶƚŽƚŚĞ

A 2 1 + C 2 + F 9 ; A / 2 F < : 1 F + . A < ? A E < > D AddTwoNumbers() F tŚLJǁŽƵůĚǁĞŶĞĞĚƚŽƐĞŶĚŝŶĨŽƌŵĂƟŽŶƚŽĂŵĞƚŚŽĚ͍

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

[ 47 ]

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

? / @ 0 2 1 A

) ƉƌĞĐĞĚŝŶŐƐĐƌĞĞŶƐŚŽƚ͕ƉĞƌĨŽƌŵƚŚĞĨŽůůŽǁŝŶŐƐƚĞƉƐ͗

ó ô

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

LearningScript #

õ ô

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

ö ô

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

ô .

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

ô /

^ĂǀĞƚŚĞĮůĞ͘

Y ô

* > /: ; + @ / @ @ / 2 - D WůĂLJ )

What just happened?

? 2 1 /? ? : . / , 2 A ì A : < 2 A ? G 2 1 A ' AddTwoNumbers()ŵĞƚŚŽĚŝƐĐĂůůĞĚƚŚƌĞĞƟŵĞƐŽŶůŝŶĞƐϭϮ͕ ϭϯ͕ĂŶĚϭϰ͘dŚĞŵĞƚŚŽĚΖƐĐŽĚĞďůŽĐŬĂĚĚƐƚǁŽŶƵŵďĞƌƐĂŶĚĚŝƐƉůĂLJƐƚŚĞƌĞƐƵůƚŝŶƚŚĞhŶŝƚLJ

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

1 + ? A , 9 . A @ 2 1 A ? A ? 9 . A > / ; A 9 9 : + < , > A + E  ĐƵďďLJŚŽůĞ ͘tŚĞŶǁĞĐĂůů AddTwoNumbers() ŶƵŵďĞƌƐĂƌĞƐƚƵīĞĚŝŶƚŽƚŚĞĐƵďďLJŚŽůĞ͘tŚĞŶƚŚĞĐŽĚĞďůŽĐŬĞdžĞĐƵƚĞƐ͕ŝƚƚĂŬĞƐƚŚŽƐĞ ƚǁŽŶƵŵďĞƌƐŚĞůĚŝŶƚŚĞĐƵďďLJŚŽůĞĂŶĚƵƐĞƐƚŚĞŵŽŶůŝŶĞϮϰ͘ dŚĞƌĞΖƐĂƐƉĞĐŝĂůŶĂŵĞĨŽƌƚŚĂƚŝŶĨŽƌŵĂƟŽŶďĞƚǁĞĞŶƚŚĞƉĂƌĞŶƚŚĞƐĞƐŽĨĂŵĞƚŚŽĚ ĚĞĮŶŝƟŽŶ͕ƐƵĐŚĂƐůŝŶĞϮϮͶƚŚĞĐŽĚĞŝƐĐĂůůĞĚƚŚĞŵĞƚŚŽĚƉĂƌĂŵĞƚĞƌƐ͘

6SHFLI\LQJDPHWKRG VSDUDPHWHUV

E - + < > + + ; < , 2 1 A ! ǁŽƌĚƉĂƌĂŵĞƚĞƌƐŝŶƚŚĞĚŝĐƟŽŶĂƌLJ͕LJŽƵƌďƌĂŝŶǁŝůůƉƌŽďĂďůLJƐĞŝnjĞƵƉ͘ůůŝƚ ŵĞĂŶƐŝƐƚŚĂƚƚŚĞŵĞƚŚŽĚŚĂƐƚŽďĞĂďůĞƚŽƵƐĞƚŚĞŝŶĨŽƌŵĂƟŽŶLJŽƵƐĞŶĚŝƚ͕ƐŽLJŽƵƐŝŵƉůLJ ŚĂǀĞƚŽƐƉĞĐŝĨLJƚŚĞƚLJƉĞŽĨĚĂƚĂƚŚĞŵĞƚŚŽĚŝƐĂůůŽǁĞĚƚŽƵƐĞ͘dŚĂƚΖƐŝƚ͕ŝƚΖƐǀĞƌLJƐŝŵƉůĞ͘

/ŶƚŚĞĞĂƌůŝĞƌƐĐƌĞĞŶƐŚŽƚ͕ŽŶůŝŶĞϮϮƚŚĞƌĞĚĂƌƌŽǁƐƉŽŝŶƚĞĚƚŽƚŚĞƚLJƉĞŽĨƚŚĞĚĞĐůĂƌĞĚ

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

firstNumber secondNumber  int integer͘EŽǁŶŽƟĐĞƚŚĞ

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

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

2 - , A D 1 A ? A B 9 . / 9 = > A ? 1 9 B A 2 + = A + E 2 - , A int  intƐŝŶĐĞƚŚĞLJƐƚŽƌĞƚŚĞŶƵŵďĞƌƐƚŚĂƚǁŝůůďĞ ĂĚĚĞĚŝŶƚŚĞŵĞƚŚŽĚ͕ǁŚŝĐŚƚŚĞƉĂƌĂŵĞƚĞƌƐƐƉĞĐŝĨ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?

A : 9 @ 1 9 B A 9 ? F 9 @ - 9 ? - + < Ž ŶĞĞĚƚŽŵĂŬĞƚŚĞŵĞƚŚŽĚǁŽƌŬƉƌŽƉĞƌůLJ͘tŚĞƚŚĞƌǁĞǁƌŝƚĞŽƵƌ ŽǁŶĐƵƐƚŽŵŵĞƚŚŽĚƐ͕ŽƌLJŽƵƵƐĞƚŚĞŵĞƚŚŽĚƐŽĨƚŚĞƐĐƌŝƉƟŶŐƌĞĨĞƌĞŶĐĞ͕ƚŚĞƉĂƌĂŵĞƚĞƌƐ ƚŚĂƚĂƌĞĚĞĮŶĞĚĂƌĞǁŚĂƚƚŚĞŵĞƚŚŽĚǁŝůůƌĞƋƵŝƌĞƚŽďĞĂďůĞƚŽƉĞƌĨŽƌŵŝƚƐƐƉĞĐŝĮĞĚƚĂƐŬ͘

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

ƉŽŝŶƚƚŽ͕ĂƌĞĚŝīĞƌĞŶƚ͘

E - + < 9 . A > + + ; / @ 0 9 2 ! ƚŚĂƚĐŽĚĞĂŶĚƐĂLJŝŶŐΗtŚĂƚƚŚĞŚĞĐŬ͍ΗƚŚĞŶĚŽŶΖƚĨĞĞůďĂĚ͘tŚĞŶ/ǁĂƐ ĮƌƐƚůĞĂƌŶŝŶŐƚŚĞĐŽŶĐĞƉƚŽĨĐĂůůŝŶŐŵĞƚŚŽĚƐ͕/ŚĂĚŽŶĞŚĞĐŬŽĨƟŵĞƵŶĚĞƌƐƚĂŶĚŝŶŐŚŽǁƚŚĞ ĐŽĚĞǁŽƌŬĞĚ͘/ƚŝƐ͕ŝŶĨĂĐƚ͕ǀĞƌ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);

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

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

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ŚŽůĞ͘

@ C KŶůŝŶĞϮϮ͕ƚŚĞŵĞƚŚŽĚĚĞĮŶĞƐƚŚĂƚŝƚƚĂŬĞƐŝŶƚǁŽƉĂƌĂŵĞƚĞƌƐĐĂůůĞĚ firstNumber 9 secondNumber͘dŚŝƐŵĞĂŶƐ͕ŽĨĐŽƵƌƐĞ͕ƚŚĂƚƐŽŵĞǁŚĞƌĞŝŶƚŚŝƐƉƌŽĐĞƐƐƚŚĞƐĞƉĂƌĂŵĞƚĞƌƐ ǁŝůůŚĂǀĞƚŽŚĂǀĞǀĂůƵĞƐĂƐƐŝŐŶĞĚƚŚĞŵ͘

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

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

@ C D firstNumber 9 secondNumber

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

, 9 . 9 F A 2 A . ? > + + ; ?  < ? 2 > / ; A 2 1 /? I

firstNumber = number1;

secondNumber = number2;

J / @ : A 2 1 A 9 . 0 < F A @ 2

‹ number1ĐŽŶƚĂŝŶĞĚƚŚĞǀĂůƵĞϮ͕ŶŽǁƚŚĞƉĂƌĂŵĞƚĞƌ

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

firstNumber :

J / @ : A 2 1 A 9 . 0 < F A @ 2

‹ number2ĐŽŶƚĂŝŶĞĚƚŚĞǀĂůƵĞϯ͕ŶŽǁƚŚĞƉĂƌĂŵĞƚĞƌ

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

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ŽƵũƵƐƚůĞĂƌŶĞĚƚŽĚŽ͕ƚŚĞŶŚĂǀĞƚŚĞŵĞƚŚŽĚƌĞƚƵƌŶĂǀĂůƵĞďĂĐŬ͘

. A B / + < ? > - G 9 > > - + < 1 9 C 2 1 A 8 AddTwoNumbers()ŵĞƚŚŽĚĚŽǁĂƐƚĂŬĞƚŚĞƌĞƐƵůƚŽĨĂĚĚŝŶŐƚǁŽ ŶƵŵďĞƌƐĂŶĚĚŝƐƉůĂLJŝƚƚŽhŶŝƚLJΖƐŽŶƐŽůĞ͘

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

[ 50 ]

Ä  ¾  Æ Á ä W

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

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

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

7LPHIRUDFWLRQ²UHWXUQLQJDYDOXHIURP$GG7ZR1XPEHUV

2 + : 9 > > 2 1 A + C /E -

# LearningScript AddTwoNumbers()ŵĞƚŚŽĚƚǁŝĐĞĂŶĚŐĞƚĂŐƌĂŶĚ

2 + 2 9 > D > ? + : . A 9 2 A 9 @ + 2 1 A .

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

ó ô

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

LearningScript #

õ ô

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

ö ô

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

ô

.

A 2 1 + C D

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

ô /

^ĂǀĞƚŚĞĮůĞ͘

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()

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

) Start()

1 A : + C A  ‹ ŽŶůŝŶĞƐϭϮƚŽϭϰĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗;EŽƚĞ͗/ŚĂǀĞƉƵƚƚŚŝƐ ƐŝŶŐůĞƐƚĂƚĞŵĞŶƚŽŶƚŚƌĞĞůŝŶĞƐĨŽƌĂďĞƩĞƌƐĐƌĞĞŶƐŚŽƚ͘Ϳ int answer = AddTwoNumbers(number1, number2) + AddTwoNumbers(number1, number3);

ůůƚŚŝƐůŝŶĞĚŽĞƐŝƐĂĚĚƚǁŽŶƵŵďĞƌƐĂŶĚƐƚŽƌĞƚŚĞƌĞƐƵůƚŝŶĂǀĂƌŝĂďůĞ

ŶĂŵĞĚΗĂŶƐǁĞƌΗ͘

/ . ? 2 2 1 A . A /? 9 : 9 > > 2 +

H AddTwoNumbers(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  number1 number2 ƉĂƌĂŵĞƚĞƌƐŽŶůŝŶĞϭϵ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϵĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗

int AddTwoNumbers(int firstNumber, int secondNumber);

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 ?

 firstNumber

@ C 9 secondNumber.

‹ 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ŚĞŝŶƚĞŐĞƌϱ͕ƐƚŽƌĞĚŝŶƚŚĞǀĂƌŝĂďůĞƌĞƐƵůƚ͕ŝƐƌĞƚƵƌŶĞĚďĂĐŬƚŽůŝŶĞϭϮ͕ǁŚĞƌĞƚŚĞ ŵĞƚŚŽĚǁĂƐĐĂůůĞĚ͘

‹ ĂĐŬƚŽƚŚĞĐŽĚĞŽŶůŝŶĞϭϮǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗

1 A . A - + < ? A A Ž AddTwoNumbers(number1, number2)͕ŶŽǁƐŝƚƐƚŚĞŝŶƚĞŐĞƌϱ͘ dŚĞƐƵďƐƟƚƵƟŽŶŚĂƐƚĂŬĞŶƉůĂĐĞ͘ EŽǁ͕ůŝŶĞϭϮĐŽŶƟŶƵĞƐŝƚƐĞdžĞĐƵƟŽŶǁŝƚŚĂŶŽƚŚĞƌĐĂůůƚŽ͗ AddTwoNumbers(number1, number3)ŽŶůŝŶĞϭϵ

dŚĞŽŶůLJĚŝīĞƌĞŶĐĞŝƐƚŚĂƚƚŚĞĂƌŐƵŵĞŶƚƐŚĂǀĞĐŚĂŶŐĞĚ͘

9 @ C 1 A 9 . 0 < F A @ 2 ?  number1 number3ƐĞŶĚƚŚĞŝŶƚĞŐĞƌƐϮĂŶĚϳƚŽƚŚĞŵĞƚŚŽĚ ƉĂƌĂŵĞƚĞƌƐŽŶůŝŶĞϭϵ͘

‹ ĂĐŬƚŽƚŚĞĐŽĚĞŽŶůŝŶĞϭϵĂŐĂŝŶǁŝƚŚŝƚƐĞdžƉůĂŶĂƟŽŶ͗

dŚĞŝŶƚĞŐĞƌƐϮĂŶĚϳĂƌĞĂƐƐŝŐŶĞĚƚŽƚŚĞƉĂƌĂŵĞƚĞƌǀĂƌŝĂďůĞƐ firstNumber

@ C D 9 secondNumber

‹ dŚĞĐŽĚĞŽŶůŝŶĞϮϭĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗

@ C 9 . A 9 C C A C 9 @ C ? 2 + . A C / @ . A ? < > 2 D 2 9 7

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

‹ ĂĐŬƚŽƚŚĞĐŽĚĞŽŶůŝŶĞϭϮĂŐĂŝŶǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗

1 A . A - + < ? A A D Ž AddTwoNumbers(number1, number3)͕ŶŽǁƐŝƚƐƚŚĞŝŶƚĞŐĞƌ 9 dŚĞƐƵďƐƟƚƵƟŽŶŚĂƐƚĂŬĞŶƉůĂĐĞ͘

EŽǁůŝŶĞϭϮĐŽŶƟŶƵĞƐŝƚƐĞdžĞĐƵƟŽŶ͘dŚĞƌĞŝƐĂƉůƵƐƐŝŐŶďĞƚǁĞĞŶƚŚĞƚǁŽŵĞƚŚŽĚ

@ 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 . ĐĂůůƐǁŚŝĐŚŵĞĂŶƐ 5 9 9 14 ŝƐŶŽǁ

ƐƚŽƌĞĚŝŶƚŚĞǀĂƌŝĂďůĞĂŶƐǁĞƌ͘

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

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

DisplayResult(answer);

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

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

B 9 > < A + E 2 - , A D 9 int dŚĞĂƌŐƵŵĞŶƚĂŶƐǁĞƌƐĞŶĚƐƚŚĞŝŶƚĞŐĞƌϭϰƚŽƚŚĞŵĞƚŚŽĚƉĂƌĂŵĞƚĞƌŽŶůŝŶĞϮϱ͘

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

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

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

‹ dŚĞĐŽĚĞŽŶůŝŶĞϮϳĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗

Debug.Log("The grand total is: " + total);

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

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

1 A @ / 2 - C /? , > 9 - ? D )

 ŽŶƐŽůĞ dŚĞŐƌĂŶĚƚŽƚĂůŝƐ͗ϭϰ

1 A

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

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

+DYHDJRKHUR²DGGWZRPRUHQXPEHUVWRJHWKHU

. - 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 ?

 number2

9 @ C D 1 A . A ? < > 2 / @

number3͘zŽƵǁŝůůŚĂǀĞƚŽŝŶĐůƵĚĞĂŶĂĚĚŝƟŽŶĂůĐĂůůƚŽ AddTwoNumbers() 

1 A ? 1 + < > C = A D 2 ŽŶƐŽůĞ 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ŚĂƚΖƐ

= 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  MonoBehaviour ŵĞƚŚŽĚƐ͕ƐĞĞƚŚĞŶĞdžƚƐĐƌĞĞŶƐŚŽƚĨŽƌŽƚŚĞƌƐ͘/ůŝŬĞƚŽĐĂůůƚŚĞƐĞhŶŝƚLJΖƐŵĂŐŝĐŵĞƚŚŽĚƐ

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

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 - !

MonoBehaviour )

< ? < 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

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

[ 54 ]

Ä  ¾  Æ Á ä W

,ĞƌĞΖƐũƵƐƚĂƉŽƌƟŽŶŽĨƚŚĞŵĞƚŚŽĚƐhŶŝƚLJĐĂŶĐĂůůŝŶĂƐĐƌŝƉƚ͘dŚŝƐŝƐĨƌŽŵƚŚĞ ^ĐƌŝƉƟŶŐ

 D O < ? 2 ? A 9 . : 1 E + . I

$

%       MonoBehavior

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

public class LearningScript : MonoBehaviour

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

 LearningScript MonoBehaviour

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

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

< ? 2 1 9 B A / 2 / @ 1 A . / 2 E . + F = - 9 C C / @ 0 I

 MonoBehavior : MonoBehaviour ĂŌĞƌƚŚĞĐůĂƐƐŶĂŵĞ͘

© ú £ ü ¤ ¤ ÿ £ ¥ ¤ ý ü §  ¤ WůĞĂƐĞŶŽƟĐĞƚŚĞ ĐŽůŽŶ £

The Start method is called one time

hŶŝƚLJĐĂůůƐƚŚŝƐŵĞƚŚŽĚŽŶůLJŽŶĞƟŵĞ͘tŚĞŶƚŚĞ'ĂŵĞKďũĞĐƚLJŽƵƌƐĐƌŝƉƚŝƐĂƩĂĐŚĞĚƚŽŝƐ

F A 2 1 + C /? : 9 > > A C D 1 /? F A 2 1 + C /? , . / F 9 . / > - < ? A C 2 + ĮƌƐƚƵƐĞĚŝŶLJŽƵƌƐĐĞŶĞ͕ƚŚĞ Start() 

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

+ = A . A 9 C - 2 + 0 + = A E + . A

2 Update()ŝƐĐĂůůĞĚĨŽƌƚŚĞĮƌƐƚƟŵĞ͘

9 . A F 9 ; / @ 0

2 1 9 2 F 9 @ - + E 2 1 A A ì 9 F , > A ? < ? A C / @

zŽƵΖǀĞƉƌŽďĂďůLJŶŽƟĐĞĚ ! LearningScript

? A + E

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

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

The Update method is called over and over and over…

? - + < ? 2 < C - 2 1 A ? 9 F , > A : + C A / @ 2 1 A

' ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ ͕LJŽƵǁŝůůŶŽƟĐĞƚŚĂƚĂǀĂƐƚŵĂũŽƌŝƚLJ

+ 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 @ -

Update() '

+ . D

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

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

[ 55 ]

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

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

ĐůŝĐŬƐĂŶĚŬĞ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ĞĂůƐŽ

ůĞĂƌŶĞĚŚŽǁƚŽĐĂůůĂŵĞƚŚŽĚŝŶƚŽĂĐƟŽŶ͕ŚŽǁƚŽƵƐĞĚĂƚĂƌĞƚƵƌŶĞĚĨƌŽŵĂŵĞƚŚŽĚ͕ĂŶĚ

@ C F A 2 1 + C ? G

ƚŚĂƚhŶŝƚLJĐĂůůƐƐŽŵĞŵĞƚŚŽĚƐĂƵƚŽŵĂƟĐĂůůLJ͕ƐƵĐŚĂƐƚŚĞ Start() 9 Update()

> 9 ? ? D ǁŚĞŶƚŚĞƐĐƌŝƉƚŝŶŚĞƌŝƚƐĨƌŽŵƚŚĞ MonoBehaviour : zŽƵŶŽǁŬŶŽǁƚŚĞƚǁŽŵĂũŽƌďƵŝůĚŝŶŐďůŽĐŬƐŽĨƐĐƌŝƉƟŶŐ͕ǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͘&ƌŽŵŶŽǁ ŽŶ͕ĞǀĞƌLJƚŚŝŶŐĞůƐĞLJŽƵĚŽǁŝůůũƵƐƚďĞŵĂŬŝŶŐƵƐĞŽĨǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͘EŽǁƚŚĂƚLJŽƵ

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

F 9 ; / @ 0 C A : /? / + @ ? / @ - + < . : + C A D

[ 56 ] 5 Making Decisions in Code

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 \

! ! ! !

A . 2 9 / @ > - * LJŽƵΖǀĞŚĂĚƚŽŵĂŬĞĚĞĐŝƐŝŽŶƐĂďŽƵƚĂůůŬŝŶĚƐŽĨƚŚŝŶŐƐŝŶLJŽƵƌůŝĨĞĞǀĞƌLJĚĂLJ͘tĞĂůů ĚŽŝƚĂůůƚŚĞƟŵĞǁŝƚŚŽƵƚĂĐƚƵĂůůLJŐŝǀŝŶŐƚŚĞƉƌŽĐĞƐƐŽĨŵĂŬŝŶŐĂĚĞĐŝƐŝŽŶŵƵĐŚƚŚŽƵŐŚƚ͕ŝĨ ĂŶLJ͘ƐǁĞŵĂŬĞĚĂŝůLJĚĞĐŝƐŝŽŶƐ͕ŵŽƐƚŽĨƚŚĞƟŵĞǁĞũƵƐƚĚŽƚŚĞĚĞĐŝƐŝŽŶƉƌŽĐĞƐƐŝŶŐŝŶŽƵƌ ŚĞĂĚ͘hŶŝƚLJĚŽĞƐŶΖƚŚĂǀĞƚŚĂƚŚƵŵĂŶůƵdžƵƌLJ͕ƐŽǁĞŚĂǀĞƚŽǁƌŝƚĞŝƚŽƵƚƐŽhŶŝƚLJĐĂŶŬŶŽǁ ƚŚĞĐŽŶĚŝƟŽŶƐƚŚĂƚůĞĂĚƚŽĐĞƌƚĂŝŶĐŚŽŝĐĞƐ͘,ĂǀŝŶŐƚŽǁƌŝƚĞƚŚĞůŽŐŝĐŝƐƚŚĞƐƚƌĂŶŐĞƉĂƌƚŽĨ ǁƌŝƟŶŐĐŽĚĞĨŽƌďĞŐŝŶŶĞƌƐ͕ƐŝŵƉůLJďĞĐĂƵƐĞƉĞŽƉůĞƵƐƵĂůůLJŵĂŬĞƚŚĞǀĂƐƚŵĂũŽƌŝƚLJŽĨĚĞĐŝƐŝŽŶ

ǁŝƚŚŽƵƚǁƌŝƟŶŐĂŶLJƚŚŝŶŐĚŽǁŶĮƌƐƚ͘,ŽǁĞǀĞƌ͕ŝƚŝƐǀĞƌLJƐŝŵƉůĞƚŽĚŽ͘

? 2 9 2 A F A @ 2 /? @ ' if ƚŚĞŵŽƐƚĐŽŵŵŽŶǁĂLJ'ĂŵĞKďũĞĐƚƐŵĂŬĞĚĞĐŝƐŝŽŶƐ͘ĂƚĂƵƐĞĚƚŽŵĂŬĞ ƚŚĞƐĞĚĞĐŝƐŝŽŶƐŝƐƚŚĞŝŶĨŽƌŵĂƟŽŶƵƐƵĂůů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

1 A 

"% ƐƚĂƚĞŵĞŶƚƐǁŽƌŬďLJĚĞƚĞƌŵŝŶŝŶŐǁŚĞƚŚĞƌĂĐŽŶĚŝƟŽŶŝŶƐŝĚĞĂƉĂŝƌŽĨƉĂƌĞŶƚŚĞƐĞƐŝƐ

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

ó ô

+ C /E -

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

õ ô

^ĂǀĞƚŚĞĮůĞ͘

ö ô

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

! )

[ 58 ]

Ä  ¾  Æ Á ä ]

What just happened?

I @ / 2 -

,ĞƌĞΖƐƚŚĞŽƵƚƉƵƚŝŶƚŚĞ ) ŽŶƐŽůĞ

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

‹ dŚĞĐŽĚĞŽŶůŝŶĞϴŝƐĂƐĨŽůůŽǁƐ͗

bool theBearMadeBigPottyInTheWoods = 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

 true

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

if( theBearMadeBigPottyInTheWoods)

@ + . D

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

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

ƚŚĞƌĞĨŽƌĞ͘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;

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

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

if( ! theBearMadeBigPottyInTheWoods)

E 9 > ? A D ŶŽƚŚĞƌŝĨƐƚĂƚĞŵĞŶƚ͕ďƵƚƚŚŝƐƟŵĞ theBearMadeBigPottyInTheWoods /? ,ŽǁĞǀĞƌ͕ƚŚĞƌĞΖƐĂ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ĐŽĚĞďůŽĐŬ

A ì A : < 2 A C D /? dŚŝƐŝƐǀĞƌLJĞĂƐLJƚŽĚŽ͘dŚĞƌĞĂƌĞƚǁŽŵŽƌĞůŽŐŝĐĂůŽƉĞƌĂƚŽƌƐƚŚĂƚLJŽƵĐĂŶƵƐĞ͗

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

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

7LPHIRUDFWLRQ²FUHDWHLIVWDWHPHQWVZLWKPRUHWKDQRQH

condition to check

ó ô

+ C /E -

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

õ ô

^ĂǀĞƚŚĞĮůĞ͘

ö ô

@ @ / 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;

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

‹ dŚĞĐŽĚĞŽŶůŝŶĞϵǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗

int temperature = 40;

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

[ 61 ]

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

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϭǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗

if(temperature >= 35 && theBearMadeBigPottyInTheWoods)

D @

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

0 . A 9 2 A . 2 1 A @ G + . A  < 9 > 2 + G D

dŚĞĮƌƐƚƚĞƐƚŝƐĐŚĞĐŬŝŶŐŝĨƚŚĞ temperature /? 35

/? 1 A B 9 > < A ? 2 + . A C / @

 temperature 40 ͕ƐŽƚŚŝƐĐŽŶĚŝƟŽŶŝƐƚƌƵĞ͘

1 A B 9 > < A ? 2 + . A C / @  theBearMadeBigPottyInTheWoodsŝƐƚƌƵĞ͘dŚĞƌĞĨŽƌĞƚŚĞĮƌƐƚ ĐŽŶĚŝƟŽŶĂŶĚƚŚĞƐĞĐŽŶĚĐŽŶĚŝƟŽŶĂƌĞƚƌƵĞ͕ƐŽƚŚĞĐŽĚĞďůŽĐŬĞdžĞĐƵƚĞƐ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϲǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗

if(temperature >= 35 || theBearMadeBigPottyInTheWoods) @ ' if ƐƚĂƚĞŵĞŶƚƚŽƚĞƐƚŝĨĞŝƚŚĞƌŽĨƚŚĞĐŽŶĚŝƟŽŶƐĂƌĞƚƌƵĞ͘ tĞĂůƌĞĂĚLJŬŶŽǁƚŚĂƚďŽƚŚƚŚĞĐŽŶĚŝƟŽŶƐĂƌĞƚƌƵĞ͕ĂŶĚĞŝƚŚĞƌƚŚĞĮƌƐƚĐŽŶĚŝƟŽŶ ŽƌƚŚĞƐĞĐŽŶĚĐŽŶĚŝƟŽŶŶĞĞĚƐƚŽďĞƚƌƵĞ͘dŚĞƌĞĨŽƌĞƚŚĞĐŽĚĞďůŽĐŬǁŝůůĞdžĞĐƵƚĞ͘

+DYHDJRKHUR²FKDQJHWKHYDOXHDVVLJQHGWRWHPSHUDWXUH

. - : 1 9 @ 0 / @ 0 D # @ > - + @ A + E 2 1 A

 temperatureƚŽĂůŽǁĞƌǀĂůƵĞƐƵĐŚĂƐ 30 if ƐƚĂƚĞŵĞŶƚƐǁŝůů

= 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

+ E 9 .G 2 1 A E + . 2 1 A : + C A = > + : ; 2 +

J if ƐƚĂƚĞŵĞŶƚƐŚĂǀĞŶĞĞĚĞĚĐĞƌƚĂŝŶĐŽŶĚŝƟŽŶƐƚŽďĞ true

A ì A : < 2 A D 1 A . A /? 9 @

 ŽƉƟŽŶƚŚĂƚĂůůŽǁƐLJŽƵƚŽŚĂǀĞĂŶĂůƚĞƌŶĂƚĞĐŽĚĞďůŽĐŬĞdžĞĐƵƚĞǁŚĞŶ

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

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

9 > 2 A . @ 9 2 A : + C A = > + : ;

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

7LPHIRUDFWLRQ²DGGHOVHWRWKHLIVWDWHPHQW

. A  < ? 2 > / ; A . A 0 < > 9 .

ŝĨͲĞůƐĞƐƚĂƚĞŵĞŶƚƐ 9 ŝĨƐƚĂƚĞŵĞŶƚƐ ǁŝƚŚƚŚĞ elseŽƉƟŽŶĂĚĚĞĚ͘

ó ô

+ C /E -

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

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

[ 63 ]

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

ö ô

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

! )

+ C A = > + : ; D >ŝŶĞϭϰƐŚŽǁƐŚŽǁ else͕ĂŶĚŝƚƐĐŽĚĞďůŽĐŬŝƐƐŝŵƉůLJĂĚĚĞĚĂŌĞƌƚŚĞ if :

What just happened?

1 A 9 @ 9 > - ? /?  ŽĨĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗

‹ dŚĞĐŽĚĞŽŶůŝŶĞϴĂŶĚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗

bool theBearMadeBigPottyInTheWoods = false;

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

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

^ŝŶĐĞƚŚĞĐŽŶĚŝƟŽŶŝƐĨĂůƐĞ͕ƚŚĞĐŽĚĞďůŽĐŬŽŶůŝŶĞƐϭϭƚŽϭϯŝƐŶŽƚĞdžĞĐƵƚĞĚ͕ĂŶĚƚŚĞ ƐĐƌŝƉƚĐŽŶƟŶƵĞƐƚŽůŝŶĞϭϰŽĨƚŚĞŝĨͲĞůƐĞƐƚĂƚĞŵĞŶƚ͘ dŚĞƌĞĨŽƌĞ͕ƚŚĞĐŽĚĞďůŽĐŬŽŶůŝŶĞƐϭϱƚŽϭϳŝƐĞdžĞĐƵƚĞĚŝŶƐƚĞĂĚ͗

[ 64 ]

Ä  ¾  Æ Á ä ]

3RSTXL]²XQGHUVWDQGLQJLIVWDWHPHQWV Yϭ͘,ƵŵĂŶƐĐĂŶĂŶƐǁĞƌƋƵĞƐƟŽŶƐǁŝƚŚĂLJĞƐŽƌŶŽ͘tŚĂƚĚŽηŝĨƐƚĂƚĞŵĞŶƚƐŶĞĞĚ

ĂƐĂŶƐǁĞƌƐ͍

4 D Ž 1 9 2 > + 0 /: 9 > + , A . 9 2 + . : 9 @ 2 < . @ 9 G + . 9

` trueĐŽŶĚŝƟŽŶŝŶƚŽ false falseĐŽŶĚŝƟŽŶ

@ 2 + / true͍

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

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

Making decisions based on user input

¤ A : /? / + @ ? Þ ß à G a

’ á – S  ’ – ™ b c • ‘  @ ĂůǁĂLJƐŚĂǀĞƚŽďĞŵĂĚĞǁŚĞŶƚŚĞƵƐĞƌƉƌŽǀŝĚĞƐŝŶƉƵƚ͘/Ŷ —

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

A - 2 + : 9 > > 2 1 A F A 2 1 + C I ZĞƚƵƌŶͬŶƚĞƌ ; AddTwoNumbers()

if(Input.GetKeyUp(Keycode.Return))

AddTwoNumbers();

1 A  if ƐƚĂƚĞŵĞŶƚĐŽŶĚŝƟŽŶďĞĐŽŵĞƐƚƌƵĞŽŶůLJǁŚĞŶƚŚĞ ReturnŬĞLJŝƐƌĞůĞĂƐĞĚĂŌĞƌďĞŝŶŐ ƉƌĞƐƐĞĚĚŽǁŶ͘,ĞƌĞΖƐĂƉĂƌƟĂůƐĐƌĞĞŶƐŚŽƚŽĨƚŚĞ GetKeyUp()ŵĞƚŚŽĚĂƐƐŚŽǁŶŝŶƚŚĞ

^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ I

A - /? . A > A 9 ? A C G /? A ì A : < 2 A C D ŌĞƌƚŚĞ Return ; AddTwoNumbers()

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žĂŵƉůĞ

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

 < @ C A . 2 1 A F A 2 1 + C I

$

  %     GetComponents()

public HingeJoint[] hingeJoints; void Example() { hingeJoints = gameObject.GetComponents(); ...

}

> > 2 1 A ' HingeJointsŝŶĂ'ĂŵĞKďũĞĐƚĂƌĞĐŽůůĞĐƚĞĚŝŶƚŽĂŶĂƌƌĂLJ;ůŝƐƚͿ͘KŶĐĞĂůůƚŚĞ 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

+ + ; / @ 0 9 2 2 1 A A ì 9 F , > A + @ 2 1 A

K GetComponents() ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ ͕ůĞƚΖƐƐĞĞŚŽǁĂŶ

9 . . 9 - /? : . A 9 2 A C I

[ 66 ]

Ä  ¾  Æ Á ä ]

? , A . 2 1 A : + C A + @ > / @ A 6 I '

‹ public HingeJoint[] hingeJoints;

    D > ? + 2 1 A 9 . . 9 - /?

'

   

‰ publicŵĞĂŶƐƚŚŝƐĂƌƌĂLJǁŝůůĂƉƉĞĂƌŝŶƚŚĞ 

9 : : A ? ? / = > A E . + F + 2 1 A . ? : . / , 2 ? D

‰ HingeJoint[]ŝƐƚŚĞƚLJƉĞŽĨǀĂƌŝĂďůĞďĞŝŶŐĐƌĞĂƚĞĚ͘/ƚΖƐŐŽŝŶŐƚŽďĞĂ

N

9 : > 9 ? ? / @ 2 1 A D

HingeJointƚLJƉĞ; HingeJoint /? ^ĐƌŝƉƚŝŶŐZĞĨĞƌĞŶĐĞ

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 

‰

=  A : 2 ? G 9 @ C

ĂǀĂƌŝĂďůĞǁŝƚŚŵĂŶLJĐƵďďLJͲŚŽůĞƐƚŽƐƚŽƌĞƐĞǀĞƌĂů 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 ‰ hingeJoint dŚĂƚǁĂƐĞĂƐLJĞŶŽƵŐŚ͘/ƚΖƐũƵƐƚůŝŬĞĐƌĞĂƟŶŐĂŶLJŽƚŚĞƌǀĂƌŝĂďůĞ͘dŚĞŽŶůLJĚŝīĞƌĞŶĐĞ

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

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

A 2 1 + C . A 2 . /A B A ? 9 > > 2 1 A

EŽǁƚŚĂƚƚŚĞĂƌƌĂLJŝƐĐƌĞĂƚĞĚ͕ƚŚĞ GetComponent() F

+ @ 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 %

? , A . 2 1 A : + C A + @ > / @ A 7 I ' ‹ hingeJoints = gameObject.

GetComponents();

/? 2 1 A 9 . . 9 -

‰ hingeJoints

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 +

/? 2 1 A F A 2 1 + C < ? A C 2 + E / @ C A B A . -

‰ GetComponents()

+ =  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

' HingeJoint

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 > > - 

 ĞůĞŵĞŶƚ

. . 9 - D Œ 9 : 1 A > A F A @ 2 /? 0 /B A @ 9 @ / @ C A ì ŚĂǀĞĂƐƉĞĐŝĮĐůŽĐĂƟŽŶŝŶƐŝĚĞƚŚĞ hingeJoint 9

ŶƵŵďĞƌ͘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



9 . A E + < @ C + @ 2 1 A 9 F A # =  A : 2 D ŽŶƵŶƟůĂůůƚŚĞ HingeJoints %

^ŽŝĨǁĞŬŶĞǁĞdžĂĐƚůLJ͕ǁŚŝĐŚ HingeJointŝŶƚŚĞĂƌƌĂLJǁĞǁĂŶƚĞĚƚŽǁŽƌŬǁŝƚŚ͕ƉĞƌŚĂƉƐ

1 A ? A : + @ C 2 HingeJointǁŚŝĐŚŝƐƐƚŽƌĞĚŝŶƚŚĞĞůĞŵĞŶƚĂƚŝŶĚĞdžϭ͕ǁĞĐĂŶƐŝŵƉůLJƌĞƚƌŝĞǀĞ ŝƚĚŝƌĞĐƚů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ƐƚŽƐƚŽƌĞŽďũĞĐƚƐďĞĐĂƵƐĞ/ǁĂŶƚƚŽĚŝƐĐƵƐƐƵƐŝŶŐ 9 ListŝŶƐƚĞĂĚ͘/ƚΖƐůŝŬĞĂŶĂƌƌĂLJǁŝƚŚĞdžƚƌĂďĞŶĞĮƚƐ͘

Storing items in a List

/ @ ? 2 A 9 C + E ? / @ 0 9 ) List ĂŶĂƌƌĂLJĐĂŶďĞƐŽŵƵĐŚĞĂƐŝĞƌƚŽǁŽƌŬǁŝƚŚŝŶĂƐĐƌŝƉƚ͘>ŽŽŬĂƚ ƐŽŵĞĨŽƌƵŵƐŝƚĞƐƌĞůĂƚĞĚƚŽη͕ĂŶĚhŶŝƚLJ͕ĂŶĚLJŽƵΖůůĚŝƐĐŽǀĞƌƚŚĂƚĂŐƌĞĂƚĚĞĂůŽĨ ƉƌŽŐƌĂŵŵĞƌƐƐŝŵƉůLJĚŽŶΖƚƵƐĞĂŶĂƌƌĂLJƵŶůĞƐƐƚŚĞLJŚĂǀĞƚŽ͕ƚŚĞLJƉƌĞĨĞƌƚŽƵƐĞĂ List D ,ĞƌĞĂƌĞƚŚĞďĂƐŝĐƐŽĨǁŚLJĂ>ŝƐƚŝƐďĞƩĞƌ͕ĂŶĚĞĂƐŝĞƌ͕ƚŽƵƐĞƚŚĂŶĂŶĂƌƌĂLJ͗

‹ ŶĂƌƌĂLJŝƐĂĮdžĞĚƐŝnjĞĂŶĚƵŶĐŚĂŶŐĞĂďůĞ

/? 9 C  < ? 2 9 = > A ‹ dŚĞƐŝnjĞŽĨĂ List

‹ zŽƵĐĂŶĞĂƐŝůLJĂĚĚƚŽ͕ĂŶĚƌĞŵŽǀĞĞůĞŵĞŶƚƐĨƌŽŵĂ List

‹ dŽŵŝŵŝĐĂĚĚŝŶŐĂŶĞǁĞůĞŵĞŶƚƚŽĂŶĂƌƌĂLJ͕ǁĞǁŽƵůĚŶĞĞĚƚŽĐƌĞĂƚĞĂǁŚŽůĞ

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

9 ? 2 1 A 9 = / > / 2 - 2 + ? 2 + . A 9 @ - 2 - , A + E + =  A : 2 G dŚĞĮƌƐƚƚŚŝŶŐƚŽƵŶĚĞƌƐƚĂŶĚŝƐƚŚĂƚĂ List 1

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

+ ? 2 + . A D + E / @ 2 A 0 A . ? G + E 2 1 A 2 - , A G

ĂƉĂƌƟĐƵůĂƌ List 2 dŚŝƐŵĞĂŶƐƚŚĂƚŝĨLJŽƵǁĂŶƚĂ List int

1 A @ - + < : 9 @ : . A 9 2 A 9 2 - , A D Ž 9 @ 2 9

2 ListƚŚĂƚǁŝůůƐƚŽƌĞŽŶůLJƚŚĞ int ListŽĨƉŽŶLJŶĂŵĞƐ͍

1 A @ : . A 9 2 A 9 2 - , A D  ListƚŚĂƚǁŝůůƐƚŽƌĞŽŶůLJƚŚĞ string

7LPHIRUDFWLRQ²FUHDWHD/LVWRISRQ\QDPHV

. 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

* List

1 A 2 - , A D

2 string

ó ô

+ C /E -

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

õ ô

EŽƟĐĞƚŚĞĐŚĂŶŐĞŽŶůŝŶĞϮ͘

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

[ 68 ]

Ä  ¾  Æ Á ä ]

ô

.

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

! )

What just happened?

: . A A @ ? 1 + 2 /? 2 1 A

dŚĞĨŽůůŽǁŝŶŐ ? ŽŶƐŽůĞ ŽƵƚƉƵƚ͘EŽƟĐĞƚŚĞĮƌƐƚŽƵƚƉƵƚƚĞůůƐLJŽƵƚŚĞƌĞŝƐĂ

+ 2 9 > + E 7 A > A F A @ 2 ? / @ 2 1 A I 2 List

[ 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;

+ = A 9 = > A 2 + < ? A 9

 List͕ƚŚŝƐƚĞůůƐhŶŝƚLJǁŚĞƌĞƚŽĮŶĚƚŚĞŶĞĐĞƐƐĂƌLJηĐŽĚĞĮůĞƐ

+ . < ? / @ 0 9 D

E List

* 1 9 @ 0 A 2 1 A < ? / @ 0 ? 2 9 2 A F A @ 2 2 + using System.Collections.Generic; D

‹ dŚĞĐŽĚĞŽŶůŝŶĞϴŝƐĂƐĨŽůŽůǁƐ͗

List myFavoritePonies = new List();

1 /? ? 2 9 2 A F A @ 2 : . A 9 2 A ? 9 @ A F , 2 - + =  A : 2 D  List

&ŝƌƐƚƚŚŝŶŐƚŽŶŽƟĐĞŝƐƚŚĂƚ ListƐƉĞĐŝĮĞƐƚŚĂƚLJŽƵĂƌĞĐƌĞĂƟŶŐĂ List

E 2 - , A D

+ string

1 A @ 9 F A + E 2 1 A /? D  List myFavoritePonies

ǀĞƌ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

=  A : 2 / @ : + F , < 2 A . new List

ŵĞŵŽƌLJ͕ĂŶĚŐŝǀĞƚŚĂƚŵĞŵŽƌLJůŽĐĂƟŽŶƚŚĞŶĂŵĞŽĨ myFavoritePonies D

© ú £ ý ÿ ý ¤ û ¤ ü £ © ¤ û ¤ ý ÿ £ © ú £ ý ÿ ú ü ¥ U ¤ £ £ © ú £ ý £ ÿ ¤ § ú ü ÿ £ û ¤ ú £ ú ý ü

ù List

¤ § ¤ ¡ ¤ ü £ ÿ > ¡ ú þ ý ü ¤ ú ü ¤ þ þ ú û £ ü ú ÿ ú ü ¥ U ¤ £ £ © ú £ ú ü ÿ £ û ¤ £ © ¤ ¤ þ þ £  ¢ ¤

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

[ 70 ]

Ä  ¾  Æ Á ä ]

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϭϬƚŽϭϮ͗

myFavoritePonies.Add("Princess Cadence");

G 2 1 A , + @ - @ 9 F A ? G 2 + 2 1 A 1 A ? A 2 1 . A A > / @ A ? + E : + C A 9 . A 9 C C / @ 0  strings

myFavoritePonies List D

< ? 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 + .

O string

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");

A 2 . /A B A ? 2 1 A @ < F = A . + E A > A F A @ 2 ? / @ 2 1 A D myFavoritePonies.Count . List

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϭϲĂŶĚϭϴ͗

Debug.Log("The pony's name at index 1 is " + myFavoritePonies[1]);

,ĞƌĞLJŽƵƐĞĞƚŚĞŝŶĚĞdžŶƵŵďĞƌŝŶƐŝĚĞƐƋƵĂƌĞďƌĂĐŬĞƚƐ͘:ƵƐƚůŝŬĞĂŶĂƌƌĂLJ͕ƚŚŝƐŝƐŚŽǁ

ƚŽĚŝƌĞĐƚůLJƌĞƚƌŝĞǀĞƚŚĞĚĂƚĂŝŶĂŶĞůĞŵĞŶƚĂƚĂƐƉĞĐŝĮĐŝŶĚĞdž͘

/ ; A 2 1 A /? 9 2 / @ C A ì 5 D K ĂƌƌĂLJ͕ƚŚĞĮƌƐƚĞůĞŵĞŶƚŝŶĂ List

[ 71 ]

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

+DYHDJRKHUR²DGGDQRWKHUSRQ\WRWKH/LVW

G C /? , > 9 - 2 1 A C C 9 @ + 2 1 A . , + @ - 2 + 2 1 A

' List͕ƚŚĞŶĚŝƐƉůĂLJŝƚΖƐŶĂŵĞ͘ůƐŽ͕ŝŶƚŚĞ ŽŶƐŽůĞ

< F = A . + E A > A F A @ 2 ? / @ 2 1 A

@ ListĂŌĞƌĂĚĚŝŶŐƚŚĞĨŽƵƌƚŚƉŽŶLJ͘

ý ü þ ú ü ¤ § ¤ ¡ ¤ ü £ £ £ © ¤

V ListƐŚŽǁƐƚŚĞŇĞdžŝďŝůŝƚLJŝƚŚĂƐŽǀĞƌĂŶĂƌƌĂLJ͘

© ý ÿ ý ÿ ý ¡ ¢ ÿ ÿ ý ¥ § ¤ £  ÿ ý ü þ ú ü ú û û ú 

[ 72 ]

Ä  ¾  Æ Á ä ]

Storing items in a Dictionary

 e ĚŝĐƟŽŶĂƌLJŚĂƐĂ<ĞLJͬsĂůƵĞƉĂŝƌ͘dŚĞ d ŝƐũƵƐƚůŝŬĞĂŶŝŶĚĞdžŝŶĂŶĂƌƌĂLJŽƌůŝƐƚ͕ŝƚΖƐĂƐƐŽĐŝĂƚĞĚ ǁŝƚŚĂƉĂƌƟĐƵůĂƌǀĂůƵĞ͘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

. A 9 2 A 9 < ? / @ 0 2 - , A E + . 2 1 A ; A - ? D

* Dictionary int

ó ô

+ C /E -

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

õ ô

^ĂǀĞƚŚĞĮůĞ͘

ö ô

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

! )

[ 73 ]

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

What just happened?

A . A /? 2 1 A D

& ŽƵƚƉƵƚƚŽhŶŝƚLJΖƐ ŽŶƐŽůĞ

1 A 9 @ 9 > - ? /?  ŽĨĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗

‹ dŚĞĐŽĚĞŽŶůŝŶĞϴŝƐĂƐĨŽůůŽǁƐ͗ Dictionary myFavoritePonies = new Dictionary

string>();

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

¤ Dictionary List

. A  < / . A ? - + < 2 + ? , A : /E - 2 1 A 2 - , A E + . 2 1 A D

' Dictionary Key

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");

 < ? 2 > / ; A - + < C /C E + . 9 D ,ĞƌĞLJŽƵĂĚĚĞĚƚǁŽƉŽŶŝĞƐƵƐŝŶŐ AddG List

‹ 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

. D

+ Dictionary

ó ô

+ C /E -

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

õ ô

^ĂǀĞƚŚĞĮůĞ͘

ö ô

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

! )

[ 75 ]

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

What just happened?

< 2 , < 2 I ,ĞƌĞΖƐƚŚĞ ŽŶƐŽůĞ +

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

‹ dŚĞĐŽĚĞŽŶůŝŶĞƐϴĂŶĚϵǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗ List myFavoritePonies = new List() {"Princess Cadence", Fluttershy"};

dŚŝƐŝƐĂĐƚƵĂůůLJĂƐŝŶŐůĞƐƚĂƚĞŵĞŶƚ͘/ƚΖƐŽŶƚǁŽůŝŶĞƐƚŽŵĂŬĞŝƚĮƚƚŚĞƐĐƌĞĞŶƐŚŽƚ͘ >ŝŶĞϵƐŚŽǁƐƚŚĞ ŽůůĞĐƟŽŶ/ŶŝƟĂůŝnjĞƌ ƚŚĂƚΖƐďĞĞŶĂĚĚĞĚƚŽƚŚĞƵƐƵĂů ListĚĞĐůĂƌĂƟŽŶ͘

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

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



1 /?  ListŽůůĞĐƟŽŶ/ŶŝƟĂůŝnjĞƌŝƐƚŚĞƚǁŽĐƵƌůLJďƌĂĐĞƐĂŶĚƚŚĞƐƚƌŝŶŐƐ͕ƚŚĞƉŽŶLJ ŶĂŵĞƐ͕ƚŚĂƚĂƌĞďĞƚǁĞĞŶƚŚĞŵ͘

EŽƟĐĞƚŚĞƌĞŝƐĂƐĞŵŝĐŽůŽŶĂŌĞƌƚŚĞůĂƐƚĐƵƌůLJďƌĂĐĞ͘dŚŝƐĞŶĚƐƚŚĞ List

2 9 2 A F A @ 2 D ĚĞĐůĂƌĂƟŽŶ ?

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϭϰĂŶĚϭϱ͗ Dictionary ponyDictionary = new Dictionary() {{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

+ 0 A 2 C 9 2 9 / @ 2 + 2 1 A F G dŚĞƐĞƉƌĞǀŝŽƵƐĂƌƌĂLJ͕>ŝƐƚ͕ĂŶĚŝĐƟŽŶĂƌLJĞdžĂŵƉůĞƐƐŚŽǁĞĚŚŽǁ 2

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

2 1 A @ A A C A C C 9 2 9 D

,ĞƌĞĂƌĞƐŽŵĞĐŽŵŵŽŶǁĂLJƐƚŽƉĞƌĨŽƌŵůŽŽƉƐ͗

> + + ,

‹ foreach

> + + ,

‹ for

> + + , ‹ while

8VLQJWKHIRUHDFKORRS

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

- : > 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 : foreach

7LPHIRUDFWLRQ²XVLQJIRUHDFKORRSVWRUHWULHYHGDWD

tĞΖƌĞŐŽŝŶŐƚŽĐƌĞĂƚĞĂŶĂƌƌĂLJ͕ĂůŝƐƚĂŶĚĂĚŝĐƟŽŶĂƌLJ͕ƚŚĞŶůŽŽƉƚŚƌŽƵŐŚĞĂĐŚŽŶĞƚŽƌĞƚƌŝĞǀĞ

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

2 foreach

ó ô

+ C /E -

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

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

[ 77 ]

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

ö ô

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

! )

What just happened? ƐǁĞůŽŽƉĞĚƚŚƌŽƵŐŚĞĂĐŚůŝƐƚ͕ǁĞĚĞĐŝĚĞĚǁŚŝĐŚĚĂƚĂƚŽĚŝƐƉůĂLJƚŽƚŚĞ ŽŶƐŽůĞ I

[ 78 ]

Ä  ¾  Æ Á ä ]

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

+ . A 9 : 1 H ůŝƐƚǁĞĐƌĞĂƚĞĚ͕ǁĞƉŽƉƵůĂƚĞĚƚŚĞŵƵƐŝŶŐĂŽůůĞĐƟŽŶ/ŶŝƟĂůŝnjĞƌ͘

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϵĂŶĚϭϬǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗

string[] ponyArray = new string[] {"AppleJack", "Rarity"};

9 . . 9 - @ 9 F A C ' string ponyArrayŝƐĚĞĐůĂƌĞĚĂŶĚƚǁŽƐƚƌŝŶŐƐĂƌĞĂĚĚĞĚ͘

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

foreach(string pony in ponyArray)

> + + , /? < ? 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

' foreach

/ @

ponyArray D

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

' pony

@ : A 9 , + @ - @ 9 F A /? . A 2 . /A B A C G 2 1 A

# foreachĐŽĚĞďůŽĐŬ͕ůŝŶĞƐϭϯƚŽϭϲ͕ŝƐĞdžĞĐƵƚĞĚ͘

9 ? = A A @ . A 2 . /A B A C 9 @ C

dŚŝƐůŽŽƉŝŶŐĐŽŶƟŶƵĞƐƵŶƟůĞĂĐŚĞůĞŵĞŶƚŝŶ ponyArray 1

2 A ? 2 A C / @ 2 1 A : + C A = > + : ; D

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϰǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗

if(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 ! pony "Rarity"

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϱǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗ Debug.Log("I was looking for " + pony);

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

1 A D 2 ŽŶƐŽůĞ

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϭϴĂŶĚϭϵǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗ List ponyList = new List() {"Princess Cadence",

"Fluttershy"};

@ 9 F A C

' List ponyListŝƐĚĞĐůĂƌĞĚƚŚĂƚǁŝůůƐƚŽƌĞƚŚĞ stringƚLJƉĞ͕ĂŶĚƚǁŽ

? 2 . / @ 0 ? 9 . A 9 C C A C D

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

foreach(string pony in ponyList)

> + + , /? < ? A C 2 + . A 2 . /A B A + @ A A > A F A @ 2 G 9 , + @ - @ 9 F A G ? 2 + . A C

' foreach string

@ D

/ ponyList

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 ' pony

[ 79 ]

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

@ : A 9 , + @ - @ 9 F A /? . A 2 . /A B A C G 2 1 A

# foreachĐŽĚĞďůŽĐŬ;ƚŚĂƚŝƐ͕ůŝŶĞƐϮϮƚŽϮϱͿ

/? A ì A : < 2 A C D

9 ? = A A @ . A 2 . /A B A C 9 @ C

dŚŝƐůŽŽƉŝŶŐĐŽŶƟŶƵĞƐƵŶƟůĞĂĐŚĞůĞŵĞŶƚŝŶ ponyList 1

2 A ? 2 A C / @ 2 1 A : + C A = > + : ; D

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

if(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 ! pony "Fluttershy" ϮϰĞdžĞĐƵƚĞƐ͘

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

Debug.Log("I was looking for " + pony);

C /? , > 9 - A C

dŚĞƐƚƌŝŶŐ/ǁĂƐůŽŽŬŝŶŐĨŽƌƉůƵƐƚŚĞƐƚƌŝŶŐǀĂůƵĞƐƚŽƌĞĚŝŶ pony /?

D @ 2 1 A / ŽŶƐŽůĞ

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϮϳĂŶĚϮϴǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗ Dictionary ponyDictionary = new Dictionary

string>() {{10, "Nightmare Moon"}, {20, "Rainbow Dash"}};

@ 9 F A C ' Dictionary ponyDictionaryŝƐĚĞĐůĂƌĞĚǁŝƚŚŬĞLJĂŶĚǀĂůƵĞŽĨƚLJƉĞ ͕ĂŶĚƚǁŽŬĞLJͬǀĂůƵĞƉĂŝƌƐĂƌĞĂĚĚĞĚ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞϯϬǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗

foreach(KeyValuePair pony in ponyDictionary)

> + + , /? < ? A C 2 + . A 2 . /A B A + @ A G 9 ; A - 9 @ C B 9 > < A G ? 2 + . A C / @ ' foreach KeyValuePair

ponyDictionary D

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

' pony KeyValuePair

: + C A = > + : ; @ : 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 # foreach

;ƚŚĂƚŝƐ͕ůŝŶĞƐϯϭƚŽϯϰͿŝƐĞdžĞĐƵƚĞĚ͘

@ 1 9 ? = A A @

dŚŝƐůŽŽƉŝŶŐĐŽŶƟŶƵĞƐƵŶƟůĞĂĐŚ KeyValuePair / ponyDictionary

. A 2 . /A B A C 9 @ C 2 A ? 2 A C / @ 2 1 A : + C A = > + : ; D

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

if(pony.Key == 20)

? 2 + . A C / @ , + @ - /? A  < 9 > 2 + G 2 1 A @ > / @ A 7 7 A ì A : < 2 A ? D E 2 1 A . A 2 . /A B A C

! Key 20

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

Debug.Log("I was looking for " + pony.Value);

, > < ? 2 1 A ? 2 . / @ 0 B 9 > < A ? 2 + . A C / @ /? 1 A ? 2 . / @ 0

 I was looking for pony.Key

/? , > 9 - A C / @ 2 1 A D C ŽŶƐŽůĞ

[ 80 ]

Ä  ¾  Æ Á ä ]

8VLQJWKHIRUORRS dŚĞďĞƐƚĚĞƐĐƌŝƉƟŽŶ/ΖǀĞĨŽƵŶĚĨŽƌĂ forůŽŽƉ͗ΗůůŽǁƐĂĐŽĚĞďůŽĐŬƚŽďĞĞdžĞĐƵƚĞĚĂƐƉĞĐŝĮĐ

ŶƵŵďĞƌŽĨƟŵĞƐ͘Η

> + + , I 1 A ? - @ 2 9 ì + E 9  for

for (initializer; condition; iterator) { code block }

EŽƟĐĞƚŚĞƚŚƌĞĞƉĂƌƚƐŝŶƐŝĚĞƚŚĞƉĂƌĞŶƚŚĞƐĞƐĂƌĞ

ÿ ¤ ¢ ú û ú £ ¤ ¥  ÿ ¤ ¡ ý § ü ÿ ü £ ¡ ¡ ú ÿ

7LPHIRUDFWLRQ²VHOHFWLQJDSRQ\IURPD/LVWXVLQJDIRUORRS

, + @ - @ 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 "

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

List  for

ó ô

+ C /E -

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

õ ô

^ĂǀĞƚŚĞĮůĞ͘

ö ô

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

! )

[ 81 ]

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

What just happened?

2 1 A @ 9 F A ? + E 2 1 A dŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚƐŚŽǁƐƚŚĞŶƵŵďĞƌŽĨĞůĞŵĞŶƚƐŝŶ ponyListG

ƉŽŶŝĞƐǁĞĂĚĚĞĚƚŽ ponyList͕ĂŶĚƚŚĞƉŽŶLJǁĞǁĞƌĞůŽŽŬŝŶŐĨŽƌ͗

1 A 9 @ 9 > - ? /? + E 2 1 A  ĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗

‹ dŚĞĐŽĚĞďĞƚǁĞĞŶůŝŶĞƐϴĂŶĚϵǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶ͗ List ponyList = new List() {"Princess

Cadence", "Fluttershy", "Rainbow Dash", "Rarity"};

@ 9 F A C 2 - , A D

' List ponyListŝƐĚĞĐůĂƌĞĚƚŚĂƚǁŝůůƐƚŽƌĞƚŚĞ string

+ < . ? 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);

1 A ? 2 . / @ 0 , > < ? 2 1 A @ < F = A . + E A > A F A @ 2 ?

 Number of elements in ponyList:

? A C / @ /? C /? , > 9 - A C / @ 2 1 A D

< ponyList ŽŶƐŽůĞ

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

ponyList.Count /? Count

1 9 2 ? 2 + . A ? 2 1 A @ < F = A . + E A > A F A @ 2 ? / @ 9 D

2 List

? + / 2 1 9 ? E + < . A > A F A @ 2 ? 2 + ? 2 + . A 2 1 A

&ŽƵƌŶĂŵĞƐǁĞƌĞĂĚĚĞĚƚŽ ponyListG

? 2 . / @ 0 @ 9 F A ? D

[ 82 ]

Ä  ¾  Æ Á ä ]

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϯǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗

for(int i = 0; i < ponyList.Count; i++)

/? : . A 9 2 A C D 1 A  for loop

dŚĞŝŶŝƟĂůŝnjĞƌŝƐƐŝŵƉů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

Ž i int 0͘tŚLJ͍ D dŚĞĮƌƐƚŝŶĚĞdžŶƵŵďĞƌŝŶĂ List /? 0

dŚĞĐŽŶĚŝƟŽŶŝƐĐŚĞĐŬĞĚĨŽƌƚƌƵĞďĞĨŽƌĞƚŚĞĐŽĚĞďůŽĐŬ͕ůŝŶĞƐϭϰƚŽϭϵ͕ŝƐĂůůŽǁĞĚ

2 + = A A ì A : < 2 A C D

1 A @ + < . /? A  < 9 > 2 + G 9 @ C

Ž forůŽŽƉĮƌƐƚďĞŐŝŶƐ͕ƚŚĞǀĂƌŝĂďůĞ i 0 ponyList.Count

/? 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 4 0 4͕ǁŚŝĐŚŝƐ true  for

ďůŽĐŬŝƐĂůůŽǁĞĚƚŽĞdžĞĐƵƚĞ͘

G F 9 ; / @ 0 D 1 A / 2 A . 9 2 + .G  i++͕ŶŽǁĂĚĚƐϭƚŽ i iŶŽǁĞƋƵĂůƚŽ 1

i++ŝƐƚŚĞƐĂŵĞƚŚŝŶŐĂƐǁƌŝƟŶŐ i = i + 1͕ǁŚŝĐŚŵĞĂŶƐƚŚĂƚLJŽƵĂƌĞƚĂŬŝŶŐƚŚĞ

9 > < A / @ 9 @ C 9 C C / @ 0 6 G 2 1 A @ 9 ? ? / 0 @ / @ 0 2 1 9 2 2 + D B i i dŚĞůŽŽƉƌĞƉĞĂƚƐƵŶƟůƚŚĞĐŽŶĚŝƟŽŶďĞĐŽŵĞƐ false D

ŌĞƌĨŽƵƌƟŵĞƐƚŚƌŽƵŐŚƚŚĞůŽŽƉ͕ iŝƐŶŽǁĞƋƵĂůƚŽϰ͕ƚŚĞƌĞĨŽƌĞƚŚĞĐŽŶĚŝƟŽŶŝƐ

A : 9 < ? A /? @ + 2 > A ? ? 2 1 9 @ ŶŽǁ false = i 4͕ƐŽƚŚĞůŽŽƉŝƐĮŶŝƐŚĞĚ͘

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

ůĞƩĞƌƐũ͕Ŭ͕ů͕ĂŶĚƐŽŽŶ͕ĂƐŶĞĞĚĞĚ͘

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

Debug.Log(ponyList[i]);

1 A A > A F A @ 2 ? / @ 9 . A = A / @ 0 9 : : A ? ? < ? / @ 0 2 1 A / @ C A ì @ < F = A . D

 ponyList

? 2 1 A /? A  < 9 > 2 + G 2 1 A . A E + . A

' forůŽŽƉŝƐĞdžĞĐƵƚĞĚĨŽƌƚŚĞĮƌƐƚƟŵĞ͕ i 0

9 : 2 < 9 > > - G 2 1 A A > A F A @ 2 9 2 / @ C A ì 5 D

ponyList[i] /? ponyList[0]

D 1 A A > A F A @ 2 9 2 / @ C A ì 5 /? ? 2 + . / @ 0

 Princess Cadence

+ , G 6 /? 9 C C A C 2 + G 2 1 A . A E + . A 2 1 A @ A ì 2 2 . / ,

ŌĞƌĞĂĐŚŝƚĞƌĂƟŽŶƚŚƌŽƵŐŚƚŚĞ for > + i

1 . + < 0 1 2 1 A E + . > + + , G

2 iǁŝůůďĞϭ͘

2 1 A @ A ì 2 A > A F A @ 2 9 2 / @ C A ì 6 D ponyList[i]ǁŝůůĂĐƚƵĂůůLJďĞ ponyList[1]G dŚĞƌĞƐƵůƚŝƐĂůůĨŽƵƌƉŽŶŝĞƐǁŝůůďĞĂĐĐĞƐƐĞĚĂŶĚĚŝƐƉůĂLJĞĚŝŶƚŚĞ ŽŶƐŽůĞ D

[ 83 ]

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

‹ dŚĞĐŽĚĞŽŶůŝŶĞƐϭϳǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗ if(ponyList[i] == "Fluttershy")

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

1 A @ 9 F A . A 2 . /A B A C E . + F D 2 ponyListŝƐĞƋƵĂůƚŽΗ Fluttershy" tŚĞŶŝƚŝƐ͕ůŝŶĞϭϴŝƐĞdžĞĐƵƚĞĚ͘

‹ dŚĞĐŽĚĞŽŶůŝŶĞƐϭϴǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗

Debug.Log("I was looking for " + ponyList[i]);

1 A ? 2 . / @ 0 , > < ? 2 1 A @ 9 F A /? C /? , > 9 - A C / @

 I was looking for Fluttershy

1 A D 2 ŽŶƐŽůĞ

Using the while loop

1 A > + + , A ì A : < 2 A ? 9

 while ĐŽĚĞďůŽĐŬƵŶƟůĂƐƉĞĐŝĮĞĚĞdžƉƌĞƐƐŝŽŶĞǀĂůƵĂƚĞƐƚŽĨĂůƐĞ͘

§ ¢ ý ü £ ¡ ¢ ü ¤ ü £ ¢ ú û £ ÿ f V whileůŽŽƉŝƐǀĞƌLJƐŝŵŝůĂƌƚŽĂĨŽƌůŽŽƉ͘/ƚΖƐůŝŬĞďƌĞĂŬŝŶŐƚŚĞ for

The syntax of a while loop: initializer while (condition) { code block iterator }

7LPHIRUDFWLRQ²ÀQGLQJGDWDDQGEUHDNRXWRIWKHZKLOHORRS tĞΖƌĞŐŽŝŶŐƚŽĚŽƐŽŵĞƚŚŝŶŐĂůŝƩůĞĚŝīĞƌĞŶƚŝŶƚŚŝƐůŽŽƉ͘KŶĐĞǁĞĮŶĚƚŚĞƉŽŶLJǁĞǁĂŶƚ͕

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

1 . + < 0 1 2 1 A . A ? 2 + E

tŚĞŶƚŚĞĚĞƐŝƌĞĚĚĂƚĂŝƐĨŽƵŶĚ͕ƚŚĞƌĞΖƐŶŽƐĞŶƐĞŝŶĐŽŶƟŶƵŝŶŐƚŽůŽŽƉ 2

2 1 A > /? 2 I

ó ô

+ C /E -

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

õ ô

^ĂǀĞƚŚĞĮůĞ͘

ö ô

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

! )

[ 84 ]

Ä  ¾  Æ Á ä ]

What just happened?

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

/ĨǁĞŚĂǀĞ = Fluttershy Rainbow Dash

1 A ? 9 F A 9 ? 2 1 A > + + ,

break ŬĞLJǁŽƌĚŽŶůŝŶĞϭϵ͕ƚŚĞŽƵƚƉƵƚǁŽƵůĚŚĂǀĞďĞĞŶĞdžĂĐƚůLJ 2 for

A ì 9 F , > A D @ E 9 : 2 G 2 1 A

! break ŬĞLJǁŽƌĚĐŽƵůĚŚĂǀĞĂůƐŽŚĂǀĞďĞĞŶƵƐĞĚƚŽďƌĞĂŬŽƵƚŽĨƚŚĞ

E + . > + + , D

[ 85 ]

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

+ , A ì 9 F , > A D /ǁŝůůƐŬŝƉĞdžƉůĂŝŶŝŶŐůŝŶĞƐŽĨĐŽĚĞƚŚĂƚĂƌĞŝĚĞŶƟĐĂůŝŶƚŚĞ for > + dŚĞĂŶĂůLJƐŝƐŽĨƚŚĞĐŽĚĞŝƐĂƐĨŽůůŽǁƐ͗

‹ dŚĞĐŽĚĞŽŶůŝŶĞϭϭǁŝƚŚŝƚƐĚĞƐĐƌŝƉƟŽŶŝƐĂƐĨŽůůŽǁƐ͗ int i = 0;

dŚĞŝŶŝƟĂůŝnjĞƌŝƐĚĞĐůĂƌĞĚĂŶĚĂƐƐŝŐŶĞĚƚŚĞǀĂůƵĞŽĨϭ͘

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

while(i < ponyList.Count)

1 A

 whileůŽŽƉŝƐĚĞĐůĂƌĞĚǁŝƚŚƚŚĞĐŽŶĚŝƟŽŶ͘

/ @ : A /? G / 2 /? > A ? ? 2 1 9 @

J i 0 ponyList.Count͕ǁŚŝĐŚŝƐ 4͕ƚŚĞĐŽŶĚŝƟŽŶŝƐƚƌƵĞ͘

1 A  whileůŽŽƉĐŽĚĞďůŽĐŬ;ƚŚĂƚŝƐ͕ůŝŶĞƐϭϯƚŽϮϮͿ͕ŝƐĞdžĞĐƵƚĞĚ͘

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

if(ponyList[i] == "Rainbow Dash")

2 9 2 A F A @ 2 /? : 1 A : ; / @ 0 2 +

ƵƌŝŶŐĞĂĐŚŝƚĞƌĂƟŽŶƚŚƌŽƵŐŚƚŚĞĐŽĚĞďůŽĐŬ͕ƚŚŝƐ if ?

/? A  < 9 > 2 + D A A /E 2 1 A @ 9 F A . A 2 . /A B A C E . + F ? ponyList Rainbow Dash tŚĞŶŝƚŝƐ͕ƚŚĞĐŽĚĞďůŽĐŬŽĨůŝŶĞƐϭϳƚŽϮϬŝƐĞdžĞĐƵƚĞĚ͘ tŚĞŶŝƚŝƐŶΖƚ͕ůŝŶĞϮϭŝƐƚŚĞŶĞdžƚůŝŶĞƚŚĂƚŝƐĞdžĞĐƵƚĞĚ͘

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

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 : ;  i ƚŚĞĐŽŶĚŝƟŽŶĂŐĂŝŶ͘

dŚĞůŽŽƉƌĞƉĞĂƚƐƵŶƟů iŝƐĞƋƵĂůƚŽϰ͕ŵĂŬŝŶŐƚŚĞĐŽŶĚŝƟŽŶĨĂůƐĞǁŚŝĐŚĞdžŝƚƐ

2 1 A > + + , D

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

Debug.Log("Stop. I was looking for " + ponyList[i]);

1 A ? 2 . / @ 0 , > < ? 2 1 A @ 9 F A /?

 Stop. I was looking for Rainbow Dash

D /? , > 9 - A C / @ 2 1 A C ŽŶƐŽůĞ

[ 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 ]

6 8VLQJ'RW6\QWD[IRU2EMHFW 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

+ + ; / @ 0 9 2 2 1 9 2 G K Žƚ^LJŶƚĂdžŝƐŶΖƚƐŽĐŽŶĨƵƐŝŶŐ͘/ƚΖƐũƵƐƚĂŶĂĚĚƌĞƐƐŝŶĂĚŝīĞƌĞŶƚĨŽƌŵĂƚ͕ŝŶĂ ǁĂLJƚŽůŽĐĂƚĞƚŚŝŶŐƐ͘,ĞƌĞΖƐĂŶĞdžĂŵƉůĞ͗ŝŵĂŐŝŶĞǁĞŵĞƚŝŶƵƌŽƉĞƐŽŵĞǁŚĞƌĞ͕ĂŶĚ/ĂƐŬ LJŽƵƚŽŐĞƚŵLJƐƵŶŐůĂƐƐĞƐƵƐŝŶŐŽŶůLJƚŚŝƐŝŶĨŽƌŵĂƟŽŶ͗ h^͘sĞƌŵŽŶƚ͘ƐƐĞdž͘ϮϮŵLJ^ƚƌĞĞƚ͘ϮŶĚ&ůŽŽƌ͘ŽĸĐĞ͘ĚĞƐŬ͘ĐĞŶƚĞƌĚƌĂǁĞƌ͘ƐƵŶŐůĂƐƐĞƐ tŽƵůĚLJŽƵŚĂǀĞĂŶLJƉƌŽďůĞŵůŽĐĂƟŶŐƚŚĞŵ͍

[ 90 ]

Ä  ¾  Æ Á ä g

8VLQJDFFHVVPRGLÀHUVIRUYDULDEOHVDQGPHWKRGV

: + < > C E + . A ? A A + @ A = / 0 /? ? < A 2 . - / @ 0 2 + . A 2 . /A B A F - ! ƐƵŶŐůĂƐƐĞƐ͘DLJŚŽƵƐĞŝƐŶΖƚŽƉĞŶƚŽ

ƚŚĞƉƵďůŝĐ͖ŝƚΖƐĂƉƌŝǀĂƚĞƌĞƐŝĚĞŶĐĞ͕ƐŽƚŚĞĚŽŽƌŝƐůŽĐŬĞĚ͘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

F A 9 @ ? I A . A G

& private

    9 ? 9 * + F , + @ A @ 2 , . + , A . 2 -

    ‹ ǀĂƌŝĂďůĞǁŝůůŶŽƚƐŚŽǁŝŶƚŚĞ 

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

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

Ž public

F A 9 @ ? I A . A G

& public

    9 ? 9 * + F , + @ A @ 2 , . + , A . 2 -

    ‹ ǀĂƌŝĂďůĞǁŝůůƐŚŽǁŝŶƚŚĞ 

‹ dŚĞǀĂƌŝĂďůĞŽƌŵĞƚŚŽĚǁŝůůďĞĂĐĐĞƐƐŝďůĞĨƌŽŵŽƚŚĞƌƐĐƌŝƉƚƐ

+ 2 J - @ 2 9 ì /? + . F A 2 1 + C / @ 9 @ ¤ ƚŚĞƐLJƐƚĞŵƵƐĞĚƚŽůŽĐĂƚĞĂŶĚĐŽŵŵƵŶŝĐĂƚĞǁŝƚŚĂǀĂƌŝĂďůĞ

ŽďũĞĐƚ͘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ǁĞ

? A 2 1 A 0 A @ A . 9 > 2 A . F < ^ĐƌŝƉƚ ͕ďƵƚŝƚΖƐĂĐƚƵĂůůLJĂĐůĂƐƐ͕ǁŚŝĐŚŵĞĂŶƐŝƚΖƐĂĚĞĮŶŝƟŽŶŽĨĂƚLJƉĞŽĨ ĐŽŶƚĂŝŶĞƌ͘>ŽŽŬĂƚůŝŶĞϰŽĨƚŚĞĮůĞ͗

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

@ Þ ß à G 2 + > C - + < 9 = + < 2 2 1 A F 9 0 /: 2 1 9 2

! !

’ á – S — /ŶƚƌŽĚƵĐŝŶŐƚŚĞƵŝůĚŝŶŐůŽĐŬƐĨŽƌhŶŝƚLJ^ĐƌŝƉƚƐ ŚĂƉƉĞŶƐǁŚĞŶǁĞĂƩĂĐŚƚŚĞƐĐƌŝƉƚ;ĐůĂƐƐͿƚŽĂ'ĂŵĞ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

   

^ĐĞŶĞ 

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

‹ dŚĞŶĂŵĞŽĨƚŚĞĐůĂƐƐŝƐĂůƐŽŬŶŽǁŶĂƐƚŚĞŽďũĞĐƚƚLJƉĞŽĨƚŚĞŽďũĞĐƚƚŚĂƚǁŝůůďĞ

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

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

‹ int string

+ E C 9 2 9 D

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

: 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 ? / 2 LearningScript ƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐůŝŶĞŽĨĐŽĚĞ͗ LearningScript myVariable;

[ 92 ]

Ä  ¾  Æ Á ä g

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

ǀĂƌŝĂďůĞƐƐƚŽƌŝŶŐĂƌĞĨĞƌĞŶĐĞƚŽƚŚĞƐĂŵĞŽďũĞĐƚ͕ďƵƚƚŚĞƌĞΖƐƐƟůůŽŶůLJŽŶĞĂĐƚƵĂů

+ =  A : 2 / @ F A F + . - D

ÿ û ý ¢ £ V ŝƐũƵƐƚĂĮůĞŽŶLJŽƵƌŚĂƌĚĚƌŝǀĞ͕ĂŶĚƚŚĞƌĞΖƐŽŶůLJĞǀĞƌŽŶĞĮůĞ͘dŚĞĐůĂƐƐ ĮůĞƐŝŵƉůLJĚĞĮŶĞƐĂƚLJƉĞŽĨĐŽŶƚĂŝŶĞƌŽĨǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐƚŚĂƚǁŝůůďĞĐŽŵĞ ĂŽŵƉŽŶĞŶƚŽďũĞĐƚŝŶƚŚĞŵĞŵŽƌLJǁŚĞŶLJŽƵĐůŝĐŬŽŶ WůĂLJ ͘zŽƵĐĂŶĂƩĂĐŚƚŚĞ ƐĐƌŝƉƚƚŽŵĂŶLJ'ĂŵĞKďũĞĐƚƐ͕ďƵƚƚŚĞƌĞΖƐƐƟůůŽŶůLJŽŶĞĮůĞŽŶLJŽƵƌŚĂƌĚĚƌŝǀĞ͘

ƩĂĐŚŝŶŐĂ ^ĐƌŝƉƚ ƚŽĂ'ĂŵĞKďũĞĐƚŝƐůŝŬĞƉůĂĐŝŶŐĂƐƟĐŬLJͲŶŽƚĞŽŶƚŚĞ'ĂŵĞKďũĞĐƚ͘tŚĞŶ

ǁĞĐůŝĐŬŽŶƚŚĞ WůĂLJ ďƵƩŽŶ͕hŶŝƚLJůŽŽŬƐĂƚŽƵƌ'ĂŵĞKďũĞĐƚ͕ƐĞĞƐƚŚĞƐƟĐŬLJͲŶŽƚĞǁŚŝĐŚƐĂLJƐ͕

D 9 ; A ? + F A ΗdŚŝƐ'ĂŵĞKďũĞĐƚŝƐƐƵƉƉŽƐĞĚƚŽŚĂǀĞĂŽŵƉŽŶĞŶƚŽĨƚLJƉĞ LearningScript #

ƌŽŽŵŝŶƚŚĞĐŽŵƉƵƚĞƌΖƐŵĞŵŽƌLJƚŽŚŽůĚƚŚŝƐŽďũĞĐƚŽĨǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐĂƐĚĞƐĐƌŝďĞĚŝŶ

1 A

2 LearningScriptĐůĂƐƐĮůĞ͘Η

2 + 6 5 5 5 9 F A # =  A : 2 ? G 9 @ C : > /: ; + @ /ĨǁĞǁĞƌĞƚŽĂƩĂĐŚ LearningScript % WůĂLJ ͕ƚŚĞƌĞǁŝůů

ďĞϭϬϬϬƐĞƉĂƌĂƚĞƐĞĐƟŽŶƐĐƌĞĂƚĞĚŝŶLJŽƵƌĐŽŵƉƵƚĞƌΖƐŵĞŵŽƌLJƚŚĂƚĞĂĐŚƐƚŽƌĞƐĂŶŽďũĞĐƚ

E 2 - , A

+ LearningScript͘ĂĐŚŽŶĞŚĂƐŝƚƐŽǁŶƐĞƚŽĨǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ͕ĂƐĚĞƐĐƌŝďĞĚ

- 2 1 A = scriptĮůĞ͘ĂĐŚŽŶĞŽĨƚŚŽƐĞϭϬϬϬƐĞĐƟŽŶƐŽĨĐŽŵƉƵƚĞƌŵĞŵŽƌLJŝƐĂƐĞƉĂƌĂƚĞ

ŽŵƉŽŶĞŶƚŽďũĞĐƚŽĨŝƚƐƌĞƐƉĞĐƟǀĞ'ĂŵĞKďũĞĐƚ͘

h ? ¤ ü £ ©  þ © £ © ¤ ¥ U ¤ £ û ¤ ú £ ¤ û ¡ ú § ú ÿ ÿ ý ÿ ú § § ¤ ú T ¡ ¢ ü ¤ ü £ ¥ 

hŶŝƚLJ͖ŝŶŵŽƌĞŐĞŶĞƌĂůηƚĞƌŵƐ͕ĞĂĐŚŽďũĞĐƚƚŚĂƚŐĞƚƐĐƌĞĂƚĞĚĨƌŽŵĂ

§ ú ÿ ÿ ý ÿ ú § § ¤ ú ü ý ü ÿ £ ú ü ¤ ¥ U ¤ £ V T ¡ ¢ ü ¤ ü £ ¥ U ¤ £ ú ü ú ü ý ü ÿ £ ú ü ¤

¥ U ¤ £ ú û ¤ £ © ¤ ÿ ú ¡ ¤ £ © ý ü þ

Using Dot Syntax in a script

9 : 1 * + F , + @ A @ 2 + =  A : 2 . A ? /C A ? / @ : + F , < 2 A . F A F + . - G ? 2 + . / @ 0 C 9 2 9 EŽǁƚŚĂƚLJŽƵŬŶŽǁƚŚĂƚ A ŝŶǀĂƌŝĂďůĞƐ͕ŝƚΖƐƟŵĞƚŽƵƐĞŽƚ^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

+ ; / @ 0 / @ D > + LearningScript ,ĞƌĞΖƐĂŶŽǀĞƌǀŝĞǁŽĨŚŽǁƚŽĂĐĐĞƐƐĂǀĂƌŝĂďůĞŽƌŵĞƚŚŽĚĨƌŽŵǁŝƚŚŝŶƚŚĞĐƵƌƌĞŶƚŽŵƉŽŶĞŶƚ͗

Dot Syntax for the current Component To access the item inbold :

1 variableor method

2 this variableor method

7LPHIRUDFWLRQ²DFFHVVLQJDYDULDEOHLQWKHFXUUHQW&RPSRQHQW

9 . / 9 = > A / @ E . + F / @ ? /C A D

>ĞƚΖƐůŽŽŬĂƚĂĐĐĞƐƐŝŶŐĂ B LearningScript LearningScript

ó ô

+ C /E - # LearningScriptĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐĮŐƵƌĞ͗

[ 94 ]

Ä  ¾  Æ Á ä g

õ ô

^ĂǀĞƚŚĞĮůĞ͘

ö ô

@ @ / 2 - G : > /: ; + @ ) ! WůĂLJ͘

What just happened?

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

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

>ŝŶĞϲ͗ string myString = "Access the variable ";

/? 2 1 A ‹ myString ǀĂƌŝĂďůĞƚŚĂƚǁŝůůďĞĂĐĐĞƐƐĞĚ

‹ EŽƟĐĞƚŚĂƚŝƚΖƐ privateďLJĚĞĨĂƵůƚ͕LJĞƚŝƚĐĂŶƐƟůůďĞĂĐĐĞƐƐĞĚ

>ŝŶĞϭϳ͗ Debug.Log(myString + "the normal way.");

‹ dŚŝƐŝƐŚŽǁǁĞŚĂǀĞďĞĞŶĂĐĐĞƐƐŝŶŐƚŚĞǀĂůƵĞƐƚŽƌĞĚŝŶĂǀĂƌŝĂďůĞ͕ďLJũƵƐƚƵƐŝŶŐ

2 1 A B 9 . / 9 = > A @ 9 F A

1 A B 9 > < A / @ G 

‹ string myString Accessing this variable͕ŝƐƐƵďƐƟƚƵƚĞĚ

E + . 2 1 A B 9 . / 9 = > A @ 9 F A G ‹ myStringŝƐďĞŝŶŐĂĐĐĞƐƐĞĚǁŝƚŚŽƵƚƵƐŝŶŐŽƚ^LJŶƚĂdžŽƌ GetComponent() ďĞĐĂƵƐĞĂƐĐƌŝƉƚĂůǁĂLJƐŚĂƐĂĐĐĞƐƐƚŽŝƚƐŽǁŶǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐ

>ŝŶĞϭϴ͗ Debug.Log(this.myString + "using 'this' keyword.");

/? = A / @ 0 9 : : A ? ? A C < ? / @ 0 ¤ + 2 J - @ 2 9 ì

‹ myString

1 A 

‹ this ŬĞLJǁŽƌĚƌĞĨĞƌƐƚŽƚŚĞĐƵƌƌĞŶƚŝŶƐƚĂŶĐĞŽĨƚŚĞĐůĂƐƐ͕

2 1 A : < . . A @ 2 * + F , + @ A @ 2

[ 95 ] hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

>ŝŶĞϭϵ͗ Debug.Log(GetComponent().myString + "using

GetComponent.");

/? = A / @ 0 9 : : A ? ? A C < ? / @ 0 ¤ + 2 J - @ 2 9 ì 9 0 9 / @

‹ myString

F A 2 1 + C /? . A 2 . /A B / @ 0 2 1 A

‹ dŚŝƐƟŵĞ͕ƚŚĞŐĞŶĞƌŝĐ GetComponent()

+ F , + @ A @ 2

LearningScript *

/ @ A 4 4 I

K Debug.Log(this);

G 2 1 A * + F , + @ A @ 2 /? ? A @ 2 2 + 2 1 A /? 2 1 A ? / @ 0 )

‹ this ŽŶƐŽůĞ ƐŽǁĞĐĂŶƐĞĞƚŚĂƚ this

* + F , + @ A @ 2 + =  A : 2 < . . A @ 2

: LearningScript

/ @ A 4 7 I

K Debug.Log(GetComponent());

? / @ 0 G 2 1 A * + F , + @ A @ 2 /? ? A @ 2 2 + 2 1 A )

‹ GetComponent()

+ F , + @ A @ 2 + =  A : 2

ŽŶƐŽůĞ ͕ƐŽǁĞĐĂŶƐĞĞƚŚŝƐĂůƐŽŝƐƚŚĞĐƵƌƌĞŶƚ LearningScript *

1 A 9 . A = + 2 1 . A 2 . /A B / @ 0 

‹ thisŬĞLJǁŽƌĚĂŶĚ GetComponent()

1 A ? 9 F A * + F , + @ A @ 2 + =  A : 2 2 LearningScript tŚŽĂ͊͊tŚĂƚΖƐǁŝƚŚůŝŶĞϭϴ͍

EŽƟĐĞŝƚĞŵϭŝŶƚŚĞŐƌĂƉŚŝĐƵŶĚĞƌƚŚĞƐĞĐƟŽŶ͕ ĐĐĞƐƐŝŶŐĂŽŵƉŽŶĞŶƚΖƐŽǁŶǀĂƌŝĂďůĞƐĂŶĚ

Q ß

’ ™ b œ á ͍dŚŝƐŝƐƚŚĞƵƐƵĂůǁĂLJǁĞǁŝůůĂĐĐĞƐƐǀĂƌŝĂďůĞƐĂŶĚŵĞƚŚŽĚƐŝŶƚŚĞĐƵƌƌĞŶƚƐĐƌŝƉƚ͖ ŶŽŽƚ^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

A 2 1 + C 2 + . A 2 . /A B A 2 1 A

^ŽŝĨǁĞƌĞĂůůLJǁĂŶƚĞĚƚŽ͕ǁĞĐŽƵůĚƵƐĞƚŚĞ GetComponent() F

: > 9 ? ? / @ F A F + . - G 2 1 A @ < ? A ¤ + 2 J - @ 2 9 ì 2 + < . . A @ 2 * + F , + @ A @ 2 + =  A : 2 + E 2 1 A

: LearningScript

: : A ? ?

9 myString͘,ŽǁĞǀĞƌ͕ηƉƌŽǀŝĚĞƐĂƐŚŽƌƚĐƵƚƚŽŐĞƚƚŚĞĐƵƌƌĞŶƚŽŵƉŽŶĞŶƚŽďũĞĐƚďLJ

? / @ 0 2 1 A

< thisŬĞLJǁŽƌĚ͘

/ F , > -

/ƚĞŵϮŝŶƚŚĞŐƌĂƉŚŝĐŝƐƚŚĞƐLJŶƚĂdžƵƐĞĚŝŶůŝŶĞϭϴ͘/ŶƚŚŝƐĞdžĂŵƉůĞ͕ƚŚĞŬĞLJǁŽƌĚ this ?

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 F LearningScript

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ĞǁŝůůŶŽǁĐŽŵŵƵŶŝĐĂƚĞǁŝƚŚĂŶŽƚŚĞƌ

* + 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ĂŝŶĂŵĞƌĂ LearningScript ĂƩĂĐŚĞĚƚŽƚŚĞ DĂŝŶĂŵĞƌĂ ĂůƌĞĂĚLJ͘dŚĞĨŽůůŽǁŝŶŐĚŝĂŐƌĂŵǁŝůůĞdžƉůĂŝŶŚŽǁƚŚŝƐŝƐĚŽŶĞ͗

Dot Syntax for the current GameObject To accessanother item in bold :

3 Component

4 Component variableor method

7LPHIRUDFWLRQ²FRPPXQLFDWLQJZLWKDQRWKHU&RPSRQHQWRQ the Main Camera

>ĞƚΖƐĐƌĞĂƚĞĂŶŽƚŚĞƌƐĐƌŝƉƚǁŝƚŚĂǀĂƌŝĂďůĞĂŶĚĂŵĞƚŚŽĚ͕ĂŶĚĂƩĂĐŚŝƚƚŽƚŚĞ DĂŝŶĂŵĞƌĂ G

1 A @ 1 9 B A

2 LearningScriptĐŽŵŵƵŶŝĐĂƚĞǁŝƚŚŝƚ͗

ó ô

9 @ C @ 9 F A / 2 D @ @ / 2 - G : . A 9 2 A 9 @ + 2 1 A . )

! η^ĐƌŝƉƚ TalkToMe

õ ô

9 ; A 9 B 9 . / 9 = > A @ 9 F A C D

# public string hereItIs

ö ô

? ? / 0 @ ? + F A 2 A ì 2 2 + D

' hereItIs

ô

.

9 ; A 9 F A 2 1 + C @ 9 F A C D

# public MakeMeTalk()

ô

/

+ < 2 , < 2 ? + F A 2 A ì 2 2 + 2 1 A D 9 B A

& MakeMeTalk() ŽŶƐŽůĞ

Y ô

+ 2 1 A

ƩĂĐŚ MakeMeTalk() 2 DĂŝŶĂŵĞƌĂ ͘EŽǁƚŚĞĐŽĚĞƐŚŽƵůĚůŽŽŬƐŽŵĞƚŚŝŶŐ

> / ; A 2 1 /? I

[ 97 ]

hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

ô

q

+ C /E - 2 + . A 2 . /A B A 2 1 A * + F , + @ A @ 2 D

# LearningScript TalkToMe

r ô

+ C /E - 2 + . A 2 . /A B A 2 1 A C 9 2 9 / @

# LearningScript hereItIs.

s ô

+ C /E - 2 + : 9 > > 2 1 A # LearningScript MakeMeTalk()ŵĞƚŚŽĚ͘EŽǁƚŚĞĐŽĚĞ

ƐŶŝƉƉĞƚƐŚŽƵůĚůŽŽŬĂƐĨŽůůŽǁƐ͗

ó t ô

J 9 B A - + < . ? : . / , 2 ? D

ó ó ô

* > /: ; + @ / @ @ / 2 - D WůĂLJ )

What just happened?

1 A + < 2 , < 2 I

,ĞƌĞΖƐ 2

* + 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 + @ 1 A

 LearningScript

1 A 2 TalkToMeŽŵƉŽŶĞŶƚ͘>ĞƚΖƐĨŽůůŽǁƚŚĞĐŽĚĞŇŽǁǁŝƚŚƚŚĞƐĞƚǁŽŽŵƉŽŶĞŶƚƐ͘

[ 98 ]

i j k l m n o p

ŶĂŶĂůLJƐŝƐŽĨƚŚĞĐŽĚĞƐŚŽǁŶŝŶƚŚĞƉƌĞǀŝŽƵƐĐŽĚĞƐĐƌĞĞŶƐŚŽƚŝƐĂƐĨŽůůŽǁƐ͗ @ # LearningScript:

>ŝŶĞϲ͗ TalkToMe otherComponent;

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

‹ otherComponent TalkToMe ' ‹ TalkToMeŽŵƉŽŶĞŶƚŽďũĞĐƚǁŝůůďĞĐƌĞĂƚĞĚĂŶĚƐƚŽƌĞĚŝŶƚŚĞǀĂƌŝĂďůĞ

otherComponent

/ @ A 6 5 I

K otherComponent = GetComponent();

A F A F = A .G 2 1 /? /? / @ 2 1 A " ‹ Start()ŵĞƚŚŽĚǁŚŝĐŚhŶŝƚLJĐĂůůƐŽŶůLJŽŶĐĞƚŽ

ŝŶŝƟĂůŝnjĞǀĂƌŝĂďůĞƐ͘

F A 2 1 + C /? : 9 > > A C 2 + . A 2 . /A B A 9 1 A 0 A @ A . /: B A . ? / + @ + E 2 1 A 

‹ GetComponent()

* + F , + @ A @ 2 + =  A : 2 D 1 /? /? / 2 A F 7 + @ 2 1 A , . A B / + < ? 0 . 9 , 1 /: . A E A . A @ : A 2 + 2 1 A TalkToMe 

ƵŶĚĞƌƚŚĞƐĞĐƟŽŶ͕ ĐĐĞƐƐŝŶŐĂŶŽƚŚĞƌŽŵƉŽŶĞŶƚŽŶƚŚĞĐƵƌƌĞŶƚ'ĂŵĞKďũĞĐƚ D

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  ‹

ǁŝůůƌĞƚƵƌŶ͘

1 /? . A E A . A @ : A /? ? 2 + . A C / @ 2 1 A B 9 . / 9 = > A  ‹ otherComponent͘tŚLJ͍^ŽƚŚĂƚĞǀĞƌLJ

ƟŵĞǁĞŶĞĞĚƚŽƵƐĞƚŚĞ TalkToMeŽŵƉŽŶĞŶƚǁŝƚŚŽƚ^LJŶƚĂdž͕ǁĞĐĂŶ

< ? 2 < ? A 2 1 A . A E A . A @ : A ? 2 + . A C / @ / @ ? 2 A 9 C + E 1 9 B / @ 0 2 + < ? A  otherComponent GetComponent()ĞĂĐŚƟŵĞ͘

>ŝŶĞϭϵ͗ Debug.Log("This is the TalkToMe Component: " + otherComponent);

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

 )

‹ otherComponent ŽŶƐŽůĞ

+ F , + @ A @ 2 + =  A : 2

ƐŽǁĞĐĂŶƐĞĞƚŚĞƌĞĨĞƌĞŶĐĞƚŚĂƚΖƐƉŽŝŶƟŶŐƚŽƚŚĞ TalkToMe *

/ @ A 4 5 I

K Debug.Log(otherComponent.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

‹ hereItIs

E 2 1 A + TalkToMeŽŵƉŽŶĞŶƚŽďũĞĐƚ͘dŚŝƐŝƐŝƚĞŵϰŝŶƚŚĞŐƌĂƉŚŝĐƵŶĚĞƌƚŚĞƐĞĐƟŽŶ͕

ĐĐĞƐƐŝŶŐĂŶŽƚŚĞƌŽŵƉŽŶĞŶƚŽŶƚŚĞĐƵƌƌĞŶƚ'ĂŵĞKďũĞĐƚ D

1 A : > 9 ? ? D 

‹ hereItIsǀĂƌŝĂďůĞŝƐĚĞĐůĂƌĞĚŽŶůŝŶĞϲŽĨƚŚĞ TalkToMe

/? ? + 2 1 9 2 / 2 : 9 @ = A 9 : : A ? ? A C E . + F + 2 1 A . ? : . / , 2 ? D ‹ EŽƟĐĞƚŚĂƚ hereItIs public

‹ /ĨǁĞĚŝĚŶΖƚƵƐĞ otherComponent͕ǁĞǁŽƵůĚŚĂǀĞǁƌŝƩĞŶƚŚĞŽƚ^LJŶƚĂdž ĞdžƉƌĞƐƐŝŽŶůŝŬĞƚŚĞĨŽůůŽǁŝŶŐůŝŶĞŽĨĐŽĚĞ͗

GetComponent().hereItIs

A ì 9 F , > A I ‹ dŚĞĨŽůůŽǁŝŶŐŝƐĂƐĐƌĞĞŶƐŚŽƚŽĨƚŚĞ ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ

[ 99 ] hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

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

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

¤ ý ÿ ÿ £ ý § § ? ú § ý

/ @ A 4 6 I

K otherComponent.MakeMeTalk();

¤ + 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

‹ MakeMeTalk() TalkToMe

* + F , + @ A @ 2 + =  A : 2

‹ ŽĚĞŇŽǁŶŽǁũƵŵƉƐŽǀĞƌƚŽƚŚĞ TalkToMeĐůĂƐƐ͘dŚŝƐŝƐĂůƐŽŝƚĞŵϰŝŶƚŚĞŐƌĂƉŚŝĐ ƵŶĚĞƌƚŚĞƐĞĐƟŽŶ͕ ĐĐĞƐƐŝŶŐĂŶŽƚŚĞƌŽŵƉŽŶĞŶƚŽŶƚŚĞĐƵƌƌĞŶƚ'ĂŵĞKďũĞĐƚ D

[ 100 ]

i j k l m n o p

@ I # TalkToMe

>ŝŶĞϴ͗ public void MakeMeTalk()

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

‹ MakeMeTalk() public

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

! )

‹ ŽŶƐŽůĞ

: > 9 ? ?

‹ dŚĞĐŽĚĞďůŽĐŬĞŶĚƐĂŶĚĐŽĚĞŇŽǁƌĞƚƵƌŶƐƚŽƚŚĞ LearningScript

@ I

# LearningScript

/ @ A 4 4 I

K }

* + C A

‹ ŇŽǁŚĂƐŶŽǁƌĞĂĐŚĞĚƚŚĞĞŶĚŽĨƚŚĞ if ƐƚĂƚĞŵĞŶƚǁŚŝĐŚďĞŐĂŶŽŶůŝŶĞϭϳ͕

A - 9 0 9 / @ ĂŶĚŝƐǁĂŝƟŶŐƚŽĚĞƚĞĐƚŝĨǁĞƉƌĞƐƐƚŚĞ ZĞƚƵƌŶ ;

ĞĨŽƌĞLJŽƵƉƌŽĐĞĞĚĨƵƌƚŚĞƌǁŝƚŚƚŚĞŶĞdžƚƐĞĐƟŽŶ͕ƌĞŵŽǀĞƚŚĞ TalkToMe

¡ ¢ ü ¤ ü £ û ¡ £ © ¤

T DĂŝŶĂŵĞƌĂ ͘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 inbold :

5 GameObject

6 GameObject Component

7 GameObject Component variableor method

[ 101 ] hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

7LPHIRUDFWLRQ²FUHDWLQJWZR*DPH2EMHFWVDQGDQHZVFULSW /ǁĂŶƚLJŽƵƚŽĐƌĞĂƚĞŽŶĞƐĐƌŝƉƚƚŚĂƚǁŝůůďĞĂƩĂĐŚĞĚƚŽƚǁŽ'ĂŵĞKďũĞĐƚƐ͘dŚĞƐĐƌŝƉƚǁŝůůŚĂǀĞ ƚǁŽŵĞƚŚŽĚƐƚŚĂƚǁŝůůĐĂƵƐĞƚŚĞ'ĂŵĞKďũĞĐƚƐƚŽƌŽƚĂƚĞůĞŌĂŶĚƌŝŐŚƚ͘dŚŝƐǁŝůůƐŚŽǁLJŽƵƚŚĂƚ ĨƌŽŵĂƐŝŶŐůĞƐĐƌŝƉƚĮůĞ͕ƚǁŽƐĞƉĂƌĂƚĞŽŵƉŽŶĞŶƚŽďũĞĐƚƐǁŝůůďĞĐƌĞĂƚĞĚŝŶƚŚĞŵĞŵŽƌLJ͘ĂĐŚ

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

ó ô

@ - + < . 9 @ C D

! ^ĐĞŶĞ ͕ĐƌĞĂƚĞƚǁŽ'ĂŵĞKďũĞĐƚƐ͕ Capsule Cube

õ ô

C C 9 2 + 2 1 A ? + - + < : 9 @ A 9 ? / > - ? A A 2 1 A 9 F A # =  A : 2 ? D %

' ŝƌĞĐƟŽŶĂů>ŝŐŚƚ ^ĐĞŶĞ

ö ô

? 9 @ A ì 9 F , > A I

,ĞƌĞΖƐŵLJ ^ĐĞŶĞ 9 ô

. ƌĞĂƚĞĂŶĞǁη^ĐƌŝƉƚĂŶĚŶĂŵĞŝƚ^ƉŝŶŶĞƌ͘ ô / ŽĚĞƚŚĞƐĐƌŝƉƚĂƐƐŚŽǁŶŝŶƚŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚ͗

[ 102 ]

i j k l m n o p

Y ô

? : . / , 2 2 + 2 1 A 9 @ C 2 1 A 9 F A # =  A : 2 ? D

ƩĂĐŚƚŚĞ Spinner ĂƉƐƵůĞ ƵďĞ %

ô

q

+ C /E -

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

r ô

9 B A 2 1 A

J ĮůĞ͘

s ô

D @ @ / 2 - G : > /: ; + @ ) ! WůĂLJ

[ 103 ] hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ What just happened? ,ĞƌĞΖƐƚŚĞŽƵƚƉƵƚƚŽƚŚĞ ŽŶƐŽůĞ I

EŽǁƉƌĞƐƐƚŚĞůĞŌĂŶĚƌŝŐŚƚĂƌƌŽǁŬĞLJƐƚŽŵĂŬĞƚŚĞĂƉƐƵůĞƐƉŝŶ͕ĂŶĚƚŚĞƵƉĂŶĚĚŽǁŶ

ĂƌƌŽǁŬĞLJƐƚŽŵĂŬĞƚŚĞƵďĞƐƉŝŶ͘

: . / , 2 @ 9 F A C

zŽƵĐƌĞĂƚĞĚŽŶĞ ? Spinner͕ƚŚĞŶĂƩĂĐŚĞĚƚŚĞƐĐƌŝƉƚƚŽƚǁŽƐĞƉĂƌĂƚĞ

9 F A # =  A : 2 ? D Ž 1 A @ - + < : > /: ; + @ * + F , + @ A @ 2 + =  A : 2 ? 9 . A

% WůĂLJ ͕ƚǁŽƐĞƉĂƌĂƚĞ Spinner

> 9 ? ? /?  < ? 2 ĐƌĞĂƚĞĚŝŶƚŚĞĐŽŵƉƵƚĞƌŵĞŵŽƌLJ͘dŚŝƐŝƐĂŶĞdžĂŵƉůĞŽĨŚŽǁƚŚĞ Spinner :

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

+ 9 : : A ? ? A 9 : 1 * + F , + @ A @ 2 E . + F 2 1 A * + F , + @ A @ 2 G - + < @ A A C  Spinner LearningScript ƚŽŬŶŽǁĂďŽƵƚĞĂĐŚ'ĂŵĞKďũĞĐƚƚŚĂƚƚŚĞ SpinnerŽŵƉŽŶĞŶƚŝƐĂƩĂĐŚĞĚƚŽ͘

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

  ¡ ú  © ú ? ¤ ¤ ú © T ¡ ¢ ü ¤ ü £ ¤ £ ¤ £  ÿ ¤ û ý ü ¢  £ ^ ü £ © ¤ > ü û ¤ ú § § ý ¤ ŽƚŚĞƌŚĂŶĚ͕ƉĞƌŚĂƉƐLJŽƵŵĂLJǁĂŶƚĂĐůĂƐƐĚĞĚŝĐĂƚĞĚƚŽƉƌŽĐĞƐƐŝŶŐƵƐĞƌ

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

ú ¡ ¢ § ý ÿ © ú £ ú ÿ ¨

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

@ I # LearningScript

>ŝŶĞϲ͗ GameObject capsuleGO;

B 9 . / 9 = > A + E 2 - , A /? C A : > 9 . A C '

‹ GameObject

/ @ 2 1 A ‹ dŚĞǀĂůƵĞƚŚŝƐǁŝůůƐƚŽƌĞŝƐĂƌĞĨĞƌĞŶĐĞƚŽƚŚĞ ĂƉƐƵůĞ ^ĐĞŶĞ

>ŝŶĞϳ͗ Spinner cubeComp;

B 9 . / 9 = > A + E 2 - , A /? C A : > 9 . A C '

‹ Spinner

* + F , + @ A @ 2 + =  A : 2 : . A 9 2 A C E . + F

‹ dŚĞǀĂůƵĞƚŚŝƐǁŝůůƐƚŽƌĞŝƐĂƌĞĨĞƌĞŶĐĞƚŽĂ Spinner

: > 9 ? ? 1 A 2 Spinner

[ 104 ]

i j k l m n o p

>ŝŶĞϵ͗ void Start()

1 A 

‹ Start()ŵĞƚŚŽĚŝƐƵƐĞĚƚŽĂůůŽǁƚŚĞƚǁŽǀĂƌŝĂďůĞƐƚŽďĞŝŶŝƟĂůŝnjĞĚ

A F A F = A .G 2 1 /? F A 2 1 + C /? : 9 > > A C + @ > - + @ : A "

‹

/ @ A 6 6 I

K capsuleGO = GameObject.Find("Capsule");

1 A F A 2 1 + C + E 2 1 A : > 9 ? ? > + : 9 2 A ? 9 9 F A # =  A : 2 / @ + < .

 %

‹ Find() GameObject ^ĐĞŶĞ

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

 %

‹ ĂƉƐƵůĞ capsuleGO

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 

‹

/ @ A 6 4 I

K Debug.Log(capsuleGO);

9 F A # =  A : 2 /? / @ E 9 : 2 . A E A . A @ : A C %

‹ dŚŝƐůŝŶĞǁĂƐĂĚĚĞĚũƵƐƚƚŽƐŚŽǁƚŚĂƚƚŚĞ ĂƉƐƵůĞ

@ 2 1 A B 9 . / 9 = > A

/ capsuleGO

/ @ A 6 7 I K cubeComp = GameObject.Find("Cube").GetComponent();

‹ dŚŝƐůŝŶĞƐŚŽǁƐŚŽǁƚŽƌĞƚƌŝĞǀĞĂŽŵƉŽŶĞŶƚŽŶĂ'ĂŵĞKďũĞĐƚ

1 /? . A 2 . /A B A C . A E A . A @ : A 2 + 2 1 A * + F , + @ A @ 2 + =  A : 2 /? + @ 2 1 A 

‹ Spinner

9 F A # =  A : 2

ƵďĞ %

1 /? /?  ‹ ŝƚĞŵϲŽŶƚŚĞƉƌĞǀŝŽƵƐŐƌĂƉŚŝĐĂŶĚĂůƐŽŽŶƚŚĞƉƌĞǀŝŽƵƐĐŽĚĞƐĐƌĞĞŶƐŚŽƚ

>ŝŶĞϭϰ͗ Debug.Log(cubeComp);

* + F , + @ A @ 2 /? , 9 . 2 + E 2 1 A

‹ dŚŝƐůŝŶĞǁĂƐĂĚĚĞĚũƵƐƚƚŽƐŚŽǁƚŚĂƚƚŚĞ Spinner ƵďĞ

9 F A # =  A : 2 G 9 @ C /? / @ E 9 : 2 . A E A . A @ : A C / @ 2 1 A B 9 . / 9 = > A % cubeComp

>ŝŶĞϭϵ͗ if(Input.GetKey(KeyCode.LeftArrow)

1 /? 

‹ if ƐƚĂƚĞŵĞŶƚĐŚĞĐŬƐƚŽƐĞĞŝĨƚŚĞƵƐĞƌŚĂƐƉƌĞƐƐĞĚƚŚĞůĞŌĂƌƌŽǁŬĞLJ

E , . A ? ? A C G K / @ A 4 6 + E 2 1 A : + C A = > + : ; /? A ì A : < 2 A C !

‹

/ @ A 4 6 I K capsuleGO.GetComponent().SpinLeft();

‹ dŚŝƐůŝŶĞƐŚŽǁƐƵƐŝŶŐŽƚ^LJŶƚĂdžƚŽůŽĐĂƚĞĂŵĞƚŚŽĚŝŶĂŽŵƉŽŶĞŶƚŽĨ

9 @ + 2 1 A . 9 F A # =  A : 2 D

%

1 A 9 F A # =  A : 2

 %

‹ CapsuleGOǀĂƌŝĂďůĞƐƵďƐƟƚƵƚĞƐƚŚĞƌĞĨĞƌĞŶĐĞƚŽƚŚĞ ĂƉƐƵůĞ

1 A * + F , + @ A @ 2 + =  A : 2 /? > + : 9 2 A C + @ 2 1 A 9 F A # =  A : 2

 %

‹ Spinner ĂƉƐƵůĞ

1 A F A 2 1 + C /? : 9 > > A C / @ 2 1 A * + F , + @ A @ 2 + E 2 1 A 

‹ SpinLeft() Spinner

9 F A # =  A : 2

ĂƉƐƵůĞ %

* + F , + @ A @ 2 + =  A : 2 ‹ ŽĚĞŇŽǁŶŽǁũƵŵƉƐƚŽƚŚĞ Spinner

[ 105 ] hƐŝŶŐŽƚ^LJŶƚĂdžĨŽƌKďũĞĐƚŽŵŵƵŶŝĐĂƟŽŶ

^ƉŝŶŶĞƌ;ŽŶƚŚĞĂƉƐƵůĞͿ͗

>ŝŶĞϲ͗ public void SpinLeft()

1 /? /? 2 1 A F A 2 1 + C : 9 > > A C E . + F 2 1 A + =  A : 2  ‹ SpinLeft() LearningScript

‹ >ŝŶĞϴŝŶƚŚĞĐŽĚĞďůŽĐŬŝƐĞdžĞĐƵƚĞĚ

>ŝŶĞϴ͗ transform.Rotate(0, 0, 60 * Time.deltaTime);

F A 2 1 + C + @ 2 1 A : 9 < ? A ? 1 A  ‹ Rotate() TransformŽŵƉŽŶĞŶƚŽďũĞĐƚŝƐĐĂůůĞĚǁŚŝĐŚ

ƚŚĞĂƉƐƵůĞƚŽƐƉŝŶĂƌŽƵŶĚƚŚĞnjͲĂdžŝƐ

/? < ? A C / @ 2 1 A ¤ + 2 J - @ 2 9 ì

‹ EŽƟĐĞƚŚŽƵŐŚ͕ƚŚĂƚƚŚĞǀĂƌŝĂďůĞŶĂŵĞĚ transform

2 9 2 A F A @ 2 / @ ? 2 A 9 C + E 2 1 A F A 2 1 + C

? GetComponent()

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

) (

‹ Transform

: > 9 ? ? / @ 2 1 A / @ C 2 1 A H

‹ GameObject ^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ ĂŶĚŶŽƟĐĞƚŚĂƚŽŶĞŽĨƚŚĞ

9 . / 9 = > A ? /? @ 9 F A C

B transform

@ ? 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

! %

‹ GetComponent()

@ / 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

)

+ F , + @ A @ 2

Transform *

B 9 . / 9 = > A C A ? : . / = A C / @ 2 1 A ‹ dŚĞĨŽůůŽǁŝŶŐƐĐƌĞĞŶƐŚŽƚƐŚŽǁƐƚŚĞ transform

^ĐƌŝƉƟŶŐZĞĨĞƌĞŶĐĞ I

1 A  ‹ Rotate()ŵĞƚŚŽĚƐŚŽǁƐϯĂƌŐƵŵĞŶƚƐďĞŝŶŐƐĞŶƚƚŽƚŚĞŵĞƚŚŽĚ͘

‹ /ŶƚŚŝƐĞdžĂŵƉůĞ͕ƚŚĞĂƉƐƵůĞŝƐƌŽƚĂƟŶŐϲϬĚĞŐƌĞĞƐƉĞƌƐĞĐŽŶĚŽŶƚŚĞnjͲĂdžŝƐ͘

+ =  A : 2 D ‹ ŽĚĞŇŽǁŶŽǁƌĞƚƵƌŶƐƚŽƚŚĞ LearningScript

[ 106 ]

i j k l m n o p

On LearningScript:

>ŝŶĞϮϰ͗ if(Input.GetKey(KeyCode.RightArrow)

1 /?  ‹ if ƐƚĂƚĞŵĞŶƚĐŚĞĐŬƐŝĨƚŚĞƵƐĞƌŚĂƐƉƌĞƐƐĞĚƚŚĞƌŝŐŚƚĂƌƌŽǁŬĞLJ

‹ /ĨƉƌĞƐƐĞĚ͕ůŝŶĞϮϲŽĨƚŚĞĐŽĚĞďůŽĐŬŝƐĞdžĞĐƵƚĞĚ

>ŝŶĞϮϲ͗ capsuleGO.GetComponent().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 

‹ SpinRight()

/? = A / @ 0 : 9 > > A C

>ŝŶĞϮϵ͗ if(Input.GetKey(KeyCode.UpArrow)

1 /? 

‹ if ƐƚĂƚĞŵĞŶƚĐŚĞĐŬƐŝĨƚŚĞƵƐĞƌŚĂƐƉƌĞƐƐĞĚƚŚĞƵƉĂƌƌŽǁŬĞLJ

E , . A ? ? A C G > / @ A 7 6 + E 2 1 A : + C A = > + : ; /? A ì A : < 2 A C !

‹

/ @ A 7 6 I K cubeComp.SpinLeft();

‹ dŚŝƐŝƐĚŝīĞƌĞŶƚƚŚĂŶůŝŶĞƐϮϭĂŶĚϮϲ

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

" 

‹ cubeComp

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

ƵďĞ % Spinner

@ 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

cubeComp /? SpinLeft()

9 F A # =  A : 2 ƵďĞ %

‹ ŽĚĞŇŽǁŝƐƐŝŵŝůĂƌƚŽůŝŶĞϴ͕ĞdžĐĞƉƚƚŚĂƚƚŚĞƵďĞƌŽƚĂƚĞƐŶŽǁ

>ŝŶĞϯϰ͗ if(Input.GetKey(KeyCode.DownArrow)

1 /?  ‹ if ƐƚĂƚĞŵĞŶƚĐŚĞĐŬƐƚŽƐĞĞŝĨƚŚĞƵƐĞƌŚĂƐƉƌĞƐƐĞĚƚŚĞĚŽǁŶĂƌƌŽǁŬĞLJ

‹ /ĨƉƌĞƐƐĞĚ͕ůŝŶĞϯϲŽĨƚŚĞĐŽĚĞďůŽĐŬŝƐĞdžĞĐƵƚĞĚ͕ƐƉŝŶŶŝŶŐƚŚĞƵďĞƌŝŐŚƚ

+DYHDJRKHUR²FUHDWLQJDQGXVLQJDQHZYDULDEOHQDPHGFDSVXOH&RPS @

! LearningScript͕ůŝŶĞƐϮϭĂŶĚϯϭƉĞƌĨŽƌŵƚŚĞƐĂŵĞĨƵŶĐƟŽŶĂůŝƚLJŽĨĐĂůůŝŶŐƚŚĞ

A 2 1 + C + @ 2 1 A / . SpinLeft() F SpinnerŽŵƉŽŶĞŶƚƐ͘zĞƚƚŚĞĐŽĚĞŽŶĞĂĐŚůŝŶĞŝƐǀĞƌLJ

ĚŝīĞƌĞŶƚ͘dŚĞĚŝīĞƌĞŶĐĞŝƐƚŚĂƚ cubeCompĂůƌĞĂĚLJƐƚŽƌĞƐĂƌĞĨĞƌĞŶĐĞƚŽƚŚĞƵďĞΖƐ Spinner

* + F , + @ A @ 2 D 1 A . A /? @ +

 capsuleCompǀĂƌŝĂďůĞƚŽƐƚŽƌĞĂƌĞĨĞƌĞŶĐĞƚŽƚŚĞĂƉƐƵůĞΖƐ

+ F , + @ A @ 2 D Spinner * 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

/ @ A ? + E : + C A / @ 9 ? ? / 0 @ 2 1 A

>ĞƚΖƐĐŚĂŶŐĞĂĨĞǁ > LearningScriptƚŽƐŚŽǁŚŽǁƚŽ ĂƉƐƵůĞ

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

( (

% capsuleGO

ó ô

N

+ . . A F + B A / 2 D

ŝƚŚĞƌĐŽŵŵĞŶƚŽƵƚůŝŶĞϭϭƵƐŝŶŐϮĨŽƌǁĂƌĚƐůĂƐŚĞƐ; // G

õ ô

/ ; A 2 1 /? I KŶůŝŶĞϲ͕ĂĚĚƚŚĞĂĐĐĞƐƐŵŽĚŝĮĞƌ public > public

GameObject capsuleGO;

ö ô

^ĂǀĞƚŚĞĮůĞ͘

ô

.

@ @ / 2 - G ? A > A : 2 2 1 A 9 F A # =  A : 2 D

) %

! DĂŝŶĂŵĞƌĂ

ô

/

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



    ĂƉƐƵůĞ ĂƉƐƵůĞ'K ĮĞůĚŝŶƚŚĞ 

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

Y ô

> /: ; + @ D * WůĂLJ

[ 108 ]

i j k l m n o p

What just happened?

1 A B 9 . / 9 = > A D Ž A  ĂƉƐƵůĞ 'ĂŵĞKďũĞĐƚŝƐŶŽǁĂƐƐŝŐŶĞĚƚŽƚŚĞ capsuleGO ĚŝĚŶΖƚŚĂǀĞƚŽ

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

1 9 @ 0 A : LearningScriptŝŶĂŶLJǁĂLJ͘

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 ]