SlideShare a Scribd company logo
Lecture 2: C# Programming 

by Making Gold Miner Game
Dr. Kobkrit Viriyayudhakorn

iApp Technology Limited

kobkrit@iapp.co.th
ITS488 (Digital Content Creation with Unity - Game and VR Programming)
Troubleshooting
• Confuse? Read a manual at https://docs.unity3d.com/2017.1/
Documentation/Manual/UnityManual.html

• Get any problem? Google it: "DOING ANYTHING in unity"

Review: Writing Code in Unity
Right click at Project Window Name it as "ConsolePrinter"
Start writing a code
• Double Click at the ConsolePrinter.cs

• The MonoDevelop-Unity IDE will be show up and you can make the first
program.
Code structure
Printing a Text
Save and Go back to Unity
Create
a New
Game
Object
Right click Select
Rename + Enter
Inspect Window

on the right.
Attaching Script to A Game Object
1. Drag the
ConsolePrinter
script and drop
onto
ConsolePrinterGO
in Hierarchy
Window

2. Or Drag onto 

Inspector
Window
Start Running
• Click on Run Button

• Switch to Console Window, you will see "Hello World!" text.

Print Statement
Output Console
Variable #1: int
Output Console
Variable #2: int & float & string
Output Console
Variable #3: int & float oper.
Output Console
Variable #4: string & bool oper.
Output Console
Type Represents Range Default
Value
bool Boolean value True or False FALSE
byte 8-bit unsigned integer 0 to 255 0
char 16-bit Unicode character U +0000 to U +ffff '0’
decimal 128-bit precise decimal values with
28-29 significant digits
(-7.9 x 1028
to 7.9 x 1028
) / 100 to 28 0.0M
double 64-bit double-precision floating point
type
(+/-)5.0 x 10-324
to (+/-)1.7 x 10308
0.0D
float 32-bit single-precision floating point
type
-3.4 x 1038
to + 3.4 x 1038
0.0F
int 32-bit signed integer type -2,147,483,648 to 2,147,483,647 0
long 64-bit signed integer type -9,223,372,036,854,775,808 to
9,223,372,036,854,775,807
0L
sbyte 8-bit signed integer type -128 to 127 0
short 16-bit signed integer type -32,768 to 32,767 0
uint 32-bit unsigned integer type 0 to 4,294,967,295 0
ulong 64-bit unsigned integer type 0 to 18,446,744,073,709,551,615 0
ushort 16-bit unsigned integer type 0 to 65,535 0
if-else oper.
Output Console
Game Planning
• You are a gold miner and you want to find
a gold pit.

• You can move up, down, left, and right.

• Movement is a fixed distance.

• After each turn, your distance from the
gold pit is displayed.

• You win when you get the gold pit.

• Your score is how many turns it took.
Rough Pseudo Code
• Set Start Location

• Calculate distance from Gold pit.

• Print the distance 

• Read player’s move

• Update location from the Gold pit.

• Repeat.
Start Writing a Game Logic
Output Console
If we change loc = 10.3
Output Console
Rough Pseudo Code
• Set Start Location

• Calculate distance from Gold pit.

• Print the distance 

• Read player’s move

• Update location from the Gold pit.

• Repeat.
Input.GetKeyDown
Reading User Input
Output Console 

(After press left arrow couple times)
Make sure you select the Game tab

Before pressing the left key. ->
Adding more Keydown
Output Console 

(After press left+right arrow couple times)
* Make sure you select the Game tab

Before pressing the left key.
Update Location
Output Console
Variable Scope: loc
Scope of loc
Make it class variable
Scope of loc
Move the variable declaration from within

"Start()" Method to within "GoldMiner" class.

(Outer the "Start()" method)
Output Console
Class variable assignment
• Can not be the product from the
computation.

• Can be a constant or not
assignment at all.

• You can re-assign the class
variable in any function body.
Do Distance Calculation when a key is pressed.
Output Console
Now it is playable!
Too much duplicate code!
• Using a method /
function for repeatedly
run code.

• Make code much
shorter. Easier to
manage the code
structure.
Function!
• Return nothing, just
print the message out.

• Use "void" return type.

• Call it when you want to
re-calculate the
distance.

• Call it when you want to
print out the distance
result.
Create calculateDistance Function
Completed Game for 1D world.
Keep pressing
right arrow

Programming C# for 2D world
Vectors
X
(4,3)
y=3
x=4
(0,0)
Vectors Addition
a
b
a+b(0,0)
Vectors Reduction
a
b
a+b
-b
a-b
(0,0)
Finding Distance of Two Vectors
Gold

Miner
(0,0)
Gold

Pit
- Gold Miner + Gold Pit
Objects and Class
Class Car
Class = Template
Object = Product
new
Methods and Attributes
Converting from 1d to 2d
• Using the Vector2 instead of float (Don’t forget the new keyword)

• Update distance to be pathToGoldPit Vector2

• Compute the distance by using Vector2 magnitude property.

• Remove all non make-sense code (written for 1d world).
Converting from 1d to 2d
the magnitude of vector = the length of the vector
Converting from 1d to 2d
Since we could not compare less than and greater than in the Vector2 class,

the code in the block need to be removed, otherwise, the complication errors.
Update the location in Vector2
X Y
Testing
Haha! We forgot Up and Down button. We can not win!
Public variables
Inspector Panel
All public variable will be debuggable in the Inspector Panel.
You can change the value and 

see the change in real time!
Exercise I
• Implement Up and Down button, so the player can completed the game.

• Starting code is located at https://github.com/kobkrit/vr2017class/blob/
master/exercise1.cs
Glossary 1
Name Meaning Example
Value Numbers, text, etc. “Hello world”, 3.14f, 1
Type The “shape” of the value. int, float, string
Variable
The correctly typed box for the
values.
int anInteger;
Statement A command to the computer. print("hello")
Expression
A command that evaluates to a
value.
homeLocation - location

"Distance:" + distance
Glossary 2
Name Meaning Example
Method
A factory which something to
input to get output.
Input.GetKeyDown(...)
Arguments The inputs to a method KeyCode.RightArrow
Return value The output of a method if(Input.GetKeyDown(...))
Operation
Like a method but with an
operator rather than a name.
Often ‘infix’.
1 + 2
Glossary 3
Name Meaning Example
Object
A collection of variables with
values and methods that act on
those variables.
The actual house.
Class
The blueprint of the variables and
methods.
An architect's drawing of a
house.
Instantiation
The process of making an object
from a class.
new Vector2(2.0f, 3.0f)
Instance
Same as an object. Often used to
say “an instance of a class X”.
The actual house according to
drawings X.
Homework
• Can we print out the location into the console? 

• If we have multiple gold pits?

• If we have traps?

• When an user fells to the traps, GAME OVER!

More Related Content

What's hot (20)

PPTX
Unity - Building your first real-time 3D project
NexusEdgesupport
 
DOCX
2d game engine workflow
luisfvazquez1
 
PDF
DSC RNGPIT - Getting Started with Game Development Day 1
DeepMevada1
 
PPTX
Hands On with the Unity 5 Game Engine! - Andy Touch - Codemotion Roma 2015
Codemotion
 
PPTX
WP7 HUB_XNA overview
MICTT Palma
 
PPTX
WP7 HUB_XNA
MICTT Palma
 
PDF
Systematic analysis of GWAP
Shih-Wen Huang
 
PDF
Let's make a game unity
Saija Ketola
 
DOCX
3d game engine
luisfvazquez1
 
PPT
Future warfare
Andrea Prosseda
 
PPTX
Academy PRO: Unity 3D. Scripting
Binary Studio
 
PDF
Programmers guide
Karla Paz Enamorado
 
PPT
Gamemaker
Chaffey College
 
DOC
Green My Place Game7 Switch Search
Ben Cowley
 
PDF
Game development with Cocos2d-x Engine
Duy Tan Geek
 
PDF
38199728 multi-player-tutorial
alfrecaay
 
PDF
Cocos2d-x C++ Windows 8 &Windows Phone 8
Troy Miles
 
DOCX
The purpose and functions of components of game engines
JoshCollege
 
DOCX
Lock And Key Initial Design Document
Ochuko Ideh
 
PPTX
Getting started with Unity3D and Oculus Rift
Maia Kord
 
Unity - Building your first real-time 3D project
NexusEdgesupport
 
2d game engine workflow
luisfvazquez1
 
DSC RNGPIT - Getting Started with Game Development Day 1
DeepMevada1
 
Hands On with the Unity 5 Game Engine! - Andy Touch - Codemotion Roma 2015
Codemotion
 
WP7 HUB_XNA overview
MICTT Palma
 
WP7 HUB_XNA
MICTT Palma
 
Systematic analysis of GWAP
Shih-Wen Huang
 
Let's make a game unity
Saija Ketola
 
3d game engine
luisfvazquez1
 
Future warfare
Andrea Prosseda
 
Academy PRO: Unity 3D. Scripting
Binary Studio
 
Programmers guide
Karla Paz Enamorado
 
Gamemaker
Chaffey College
 
Green My Place Game7 Switch Search
Ben Cowley
 
Game development with Cocos2d-x Engine
Duy Tan Geek
 
38199728 multi-player-tutorial
alfrecaay
 
Cocos2d-x C++ Windows 8 &Windows Phone 8
Troy Miles
 
The purpose and functions of components of game engines
JoshCollege
 
Lock And Key Initial Design Document
Ochuko Ideh
 
Getting started with Unity3D and Oculus Rift
Maia Kord
 

Similar to Lecture 2: C# Programming for VR application in Unity (20)

PPT
Game development
Asido_
 
PPTX
Romero Blueprint Compendium
Unreal Engine
 
PPT
The Next Mainstream Programming Language: A Game Developer’s Perspective
guest4fd7a2
 
PPT
Tim Popl
mchaar
 
PPT
02 Primitive data types and variables
maznabili
 
PPTX
Chapter i c#(console application and programming)
Chhom Karath
 
PPTX
Evolution Explosion - Final Year Project Presentation
desirron
 
PPTX
SPF Getting Started - Console Program
Hock Leng PUAH
 
PPTX
Getting Started - Console Program and Problem Solving
Hock Leng PUAH
 
PDF
The Next Mainstream Programming Language: A Game Developer's Perspective
kfrdbs
 
PDF
Pong
Susan Gold
 
PPT
C Sharp Jn (1)
jahanullah
 
PPT
C Sharp Nagina (1)
guest58c84c
 
ODP
Preventing Complexity in Game Programming
Yaser Zhian
 
PDF
Missilecommand
Susan Gold
 
PDF
Unity introduction for programmers
Noam Gat
 
PPTX
CS4443 - Modern Programming Language - I Lecture (2)
Dilawar Khan
 
PPTX
Lesson 4 Basic Programming Constructs.pptx
John Burca
 
PDF
Penn Siggraph Games Development Game
ianp622
 
PDF
C++ Restrictions for Game Programming.
Richard Taylor
 
Game development
Asido_
 
Romero Blueprint Compendium
Unreal Engine
 
The Next Mainstream Programming Language: A Game Developer’s Perspective
guest4fd7a2
 
Tim Popl
mchaar
 
02 Primitive data types and variables
maznabili
 
Chapter i c#(console application and programming)
Chhom Karath
 
Evolution Explosion - Final Year Project Presentation
desirron
 
SPF Getting Started - Console Program
Hock Leng PUAH
 
Getting Started - Console Program and Problem Solving
Hock Leng PUAH
 
The Next Mainstream Programming Language: A Game Developer's Perspective
kfrdbs
 
C Sharp Jn (1)
jahanullah
 
C Sharp Nagina (1)
guest58c84c
 
Preventing Complexity in Game Programming
Yaser Zhian
 
Missilecommand
Susan Gold
 
Unity introduction for programmers
Noam Gat
 
CS4443 - Modern Programming Language - I Lecture (2)
Dilawar Khan
 
Lesson 4 Basic Programming Constructs.pptx
John Burca
 
Penn Siggraph Games Development Game
ianp622
 
C++ Restrictions for Game Programming.
Richard Taylor
 
Ad

More from Kobkrit Viriyayudhakorn (20)

PDF
Thai E-Voting System
Kobkrit Viriyayudhakorn
 
PPTX
Thai National ID Card OCR
Kobkrit Viriyayudhakorn
 
PPTX
Chochae Robot - Thai voice communication extension pack for Service Robot
Kobkrit Viriyayudhakorn
 
PDF
ศักยภาพของ AI สู่โอกาสใหม่แห่งการแข่งขันและความสำเร็จ (Thai AI updates in yea...
Kobkrit Viriyayudhakorn
 
PDF
Thai Text processing by Transfer Learning using Transformer (Bert)
Kobkrit Viriyayudhakorn
 
PDF
How Emoticon Affects Chatbot Users
Kobkrit Viriyayudhakorn
 
PPTX
หัวใจของปัญญาประดิษฐ์ (Gradient Descent ทำงานอย่างไร)
Kobkrit Viriyayudhakorn
 
PDF
Check Raka Chatbot Pitching Presentation
Kobkrit Viriyayudhakorn
 
PPTX
[Lecture 3] AI and Deep Learning: Logistic Regression (Coding)
Kobkrit Viriyayudhakorn
 
PPTX
[Lecture 4] AI and Deep Learning: Neural Network (Theory)
Kobkrit Viriyayudhakorn
 
PPTX
[Lecture 2] AI and Deep Learning: Logistic Regression (Theory)
Kobkrit Viriyayudhakorn
 
PDF
Lecture 12: React-Native Firebase Authentication
Kobkrit Viriyayudhakorn
 
PDF
Thai Word Embedding with Tensorflow
Kobkrit Viriyayudhakorn
 
PDF
Lecture 3 - ES6 Script Advanced for React-Native
Kobkrit Viriyayudhakorn
 
PDF
สร้างซอฟต์แวร์อย่างไรให้โดนใจผู้คน (How to make software that people love)
Kobkrit Viriyayudhakorn
 
PDF
Startup Pitching and Mobile App Startup
Kobkrit Viriyayudhakorn
 
PDF
React Native Firebase Realtime Database + Authentication
Kobkrit Viriyayudhakorn
 
PDF
React Native Firebase
Kobkrit Viriyayudhakorn
 
PDF
React-Native Lecture 11: In App Storage
Kobkrit Viriyayudhakorn
 
PDF
[React-Native Tutorial 10] Camera Roll / Gallery / Camera / Native Modules by...
Kobkrit Viriyayudhakorn
 
Thai E-Voting System
Kobkrit Viriyayudhakorn
 
Thai National ID Card OCR
Kobkrit Viriyayudhakorn
 
Chochae Robot - Thai voice communication extension pack for Service Robot
Kobkrit Viriyayudhakorn
 
ศักยภาพของ AI สู่โอกาสใหม่แห่งการแข่งขันและความสำเร็จ (Thai AI updates in yea...
Kobkrit Viriyayudhakorn
 
Thai Text processing by Transfer Learning using Transformer (Bert)
Kobkrit Viriyayudhakorn
 
How Emoticon Affects Chatbot Users
Kobkrit Viriyayudhakorn
 
หัวใจของปัญญาประดิษฐ์ (Gradient Descent ทำงานอย่างไร)
Kobkrit Viriyayudhakorn
 
Check Raka Chatbot Pitching Presentation
Kobkrit Viriyayudhakorn
 
[Lecture 3] AI and Deep Learning: Logistic Regression (Coding)
Kobkrit Viriyayudhakorn
 
[Lecture 4] AI and Deep Learning: Neural Network (Theory)
Kobkrit Viriyayudhakorn
 
[Lecture 2] AI and Deep Learning: Logistic Regression (Theory)
Kobkrit Viriyayudhakorn
 
Lecture 12: React-Native Firebase Authentication
Kobkrit Viriyayudhakorn
 
Thai Word Embedding with Tensorflow
Kobkrit Viriyayudhakorn
 
Lecture 3 - ES6 Script Advanced for React-Native
Kobkrit Viriyayudhakorn
 
สร้างซอฟต์แวร์อย่างไรให้โดนใจผู้คน (How to make software that people love)
Kobkrit Viriyayudhakorn
 
Startup Pitching and Mobile App Startup
Kobkrit Viriyayudhakorn
 
React Native Firebase Realtime Database + Authentication
Kobkrit Viriyayudhakorn
 
React Native Firebase
Kobkrit Viriyayudhakorn
 
React-Native Lecture 11: In App Storage
Kobkrit Viriyayudhakorn
 
[React-Native Tutorial 10] Camera Roll / Gallery / Camera / Native Modules by...
Kobkrit Viriyayudhakorn
 
Ad

Recently uploaded (20)

PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
NASA A Researcher’s Guide to International Space Station : Physical Sciences ...
Dr. PANKAJ DHUSSA
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
ICONIQ State of AI Report 2025 - The Builder's Playbook
Razin Mustafiz
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
🚀 Let’s Build Our First Slack Workflow! 🔧.pdf
SanjeetMishra29
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 

Lecture 2: C# Programming for VR application in Unity

  • 1. Lecture 2: C# Programming 
 by Making Gold Miner Game Dr. Kobkrit Viriyayudhakorn iApp Technology Limited [email protected] ITS488 (Digital Content Creation with Unity - Game and VR Programming)
  • 2. Troubleshooting • Confuse? Read a manual at https://docs.unity3d.com/2017.1/ Documentation/Manual/UnityManual.html • Get any problem? Google it: "DOING ANYTHING in unity"

  • 3. Review: Writing Code in Unity Right click at Project Window Name it as "ConsolePrinter"
  • 4. Start writing a code • Double Click at the ConsolePrinter.cs • The MonoDevelop-Unity IDE will be show up and you can make the first program.
  • 6. Printing a Text Save and Go back to Unity
  • 7. Create a New Game Object Right click Select Rename + Enter Inspect Window
 on the right.
  • 8. Attaching Script to A Game Object 1. Drag the ConsolePrinter script and drop onto ConsolePrinterGO in Hierarchy Window
 2. Or Drag onto 
 Inspector Window
  • 9. Start Running • Click on Run Button • Switch to Console Window, you will see "Hello World!" text.

  • 12. Variable #2: int & float & string Output Console
  • 13. Variable #3: int & float oper. Output Console
  • 14. Variable #4: string & bool oper. Output Console
  • 15. Type Represents Range Default Value bool Boolean value True or False FALSE byte 8-bit unsigned integer 0 to 255 0 char 16-bit Unicode character U +0000 to U +ffff '0’ decimal 128-bit precise decimal values with 28-29 significant digits (-7.9 x 1028 to 7.9 x 1028 ) / 100 to 28 0.0M double 64-bit double-precision floating point type (+/-)5.0 x 10-324 to (+/-)1.7 x 10308 0.0D float 32-bit single-precision floating point type -3.4 x 1038 to + 3.4 x 1038 0.0F int 32-bit signed integer type -2,147,483,648 to 2,147,483,647 0 long 64-bit signed integer type -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 0L sbyte 8-bit signed integer type -128 to 127 0 short 16-bit signed integer type -32,768 to 32,767 0 uint 32-bit unsigned integer type 0 to 4,294,967,295 0 ulong 64-bit unsigned integer type 0 to 18,446,744,073,709,551,615 0 ushort 16-bit unsigned integer type 0 to 65,535 0
  • 17. Game Planning • You are a gold miner and you want to find a gold pit. • You can move up, down, left, and right. • Movement is a fixed distance. • After each turn, your distance from the gold pit is displayed. • You win when you get the gold pit. • Your score is how many turns it took.
  • 18. Rough Pseudo Code • Set Start Location • Calculate distance from Gold pit. • Print the distance • Read player’s move • Update location from the Gold pit. • Repeat.
  • 19. Start Writing a Game Logic Output Console
  • 20. If we change loc = 10.3 Output Console
  • 21. Rough Pseudo Code • Set Start Location • Calculate distance from Gold pit. • Print the distance • Read player’s move • Update location from the Gold pit. • Repeat.
  • 23. Reading User Input Output Console 
 (After press left arrow couple times) Make sure you select the Game tab
 Before pressing the left key. ->
  • 24. Adding more Keydown Output Console 
 (After press left+right arrow couple times) * Make sure you select the Game tab
 Before pressing the left key.
  • 27. Make it class variable Scope of loc Move the variable declaration from within "Start()" Method to within "GoldMiner" class.
 (Outer the "Start()" method) Output Console
  • 28. Class variable assignment • Can not be the product from the computation. • Can be a constant or not assignment at all. • You can re-assign the class variable in any function body.
  • 29. Do Distance Calculation when a key is pressed. Output Console Now it is playable!
  • 30. Too much duplicate code! • Using a method / function for repeatedly run code. • Make code much shorter. Easier to manage the code structure. Function!
  • 31. • Return nothing, just print the message out. • Use "void" return type. • Call it when you want to re-calculate the distance. • Call it when you want to print out the distance result. Create calculateDistance Function
  • 32. Completed Game for 1D world. Keep pressing right arrow

  • 33. Programming C# for 2D world
  • 37. Finding Distance of Two Vectors Gold
 Miner (0,0) Gold
 Pit - Gold Miner + Gold Pit
  • 38. Objects and Class Class Car Class = Template Object = Product new
  • 40. Converting from 1d to 2d • Using the Vector2 instead of float (Don’t forget the new keyword) • Update distance to be pathToGoldPit Vector2 • Compute the distance by using Vector2 magnitude property. • Remove all non make-sense code (written for 1d world).
  • 41. Converting from 1d to 2d the magnitude of vector = the length of the vector
  • 42. Converting from 1d to 2d Since we could not compare less than and greater than in the Vector2 class, the code in the block need to be removed, otherwise, the complication errors.
  • 43. Update the location in Vector2 X Y
  • 44. Testing Haha! We forgot Up and Down button. We can not win!
  • 45. Public variables Inspector Panel All public variable will be debuggable in the Inspector Panel. You can change the value and 
 see the change in real time!
  • 46. Exercise I • Implement Up and Down button, so the player can completed the game. • Starting code is located at https://github.com/kobkrit/vr2017class/blob/ master/exercise1.cs
  • 47. Glossary 1 Name Meaning Example Value Numbers, text, etc. “Hello world”, 3.14f, 1 Type The “shape” of the value. int, float, string Variable The correctly typed box for the values. int anInteger; Statement A command to the computer. print("hello") Expression A command that evaluates to a value. homeLocation - location "Distance:" + distance
  • 48. Glossary 2 Name Meaning Example Method A factory which something to input to get output. Input.GetKeyDown(...) Arguments The inputs to a method KeyCode.RightArrow Return value The output of a method if(Input.GetKeyDown(...)) Operation Like a method but with an operator rather than a name. Often ‘infix’. 1 + 2
  • 49. Glossary 3 Name Meaning Example Object A collection of variables with values and methods that act on those variables. The actual house. Class The blueprint of the variables and methods. An architect's drawing of a house. Instantiation The process of making an object from a class. new Vector2(2.0f, 3.0f) Instance Same as an object. Often used to say “an instance of a class X”. The actual house according to drawings X.
  • 50. Homework • Can we print out the location into the console? • If we have multiple gold pits? • If we have traps? • When an user fells to the traps, GAME OVER!