CHAPTER 01 Game Programming 1
Course Objectives Unity C# Math and Physics for Game Create 3 games
Grading 1. คะแนนสอบกลางภาค 20 % 2 การบ้าน 50% 3. คะแนนสอบปลายภาค 20% 1. คะแนนสอบกลางภาค 20 % 2 การบ้าน 50% 3. คะแนนสอบปลายภาค 20% 4. ความสนใจ 10%
Project1: Apple Picker
Project2: Mission Demolition
Project3: Apple Picker
Contact Information: Instructor: สุรเดช อินทกรณ์ Office: ห้องพักใต้บันไดชั้นสองอาคาร 9 Email: intagorn@gmail.com Office hours: ศุกร์ 9.00-12.00 or by appointment
CHAPTER 01 Let's begin 8
Apple Picker
Apple Picker AppleTree Component: Trunk: GameObject > Create Other > Cylinder
Apple Picker AppleTree Component: GameObject > Create Other > Sphere.
Apple Picker AppleTree GameObject > Create Empty. เปลี่ยนชื่อ GameObject เป็น AppleTree ลาก Trunk กับ Sphere ให้อยู่ใน AppleTree
Apple Picker ทำการ set transform ของ apple tree
Simple Materials for AppleTree สร้าง Mat_Wood สีน้ำตาล Assets > Create > Material. ลาก Mat_Wood ไปที่ Trunk สร้าง Mat_Leaves สีเขียว ลาก Mat_Wood ไปที่ Sphere
Create Directional Light GameObject > Create Other > Directional Light ขยับ AppleTree ใน Scene View
Apple สร้าง Apple GameObject > Create Other > Sphere เปลี่ยนชื่อ Sphere เป็น Apple สร้าง Mat_Apple Assets > Create > Material เลือกสีแดงให้กับ Mat_Apple
Adding Physics to the Apple ถ้าเราลองกด Play จะเห็นว่า Apple จะไม่ตกลงมา เราสามารถ Add Physic ให้กับ Apple โดย Select Apple in the Hierarchy pane. Component > Physics > Rigidbody.
Giving Apples the Tag “Apple”
Making the Apple Prefab ลาก Apple ไปที่ Project Pane ลบ Apple ใน Scene view
Basket GameObject > Create Other > Cube เปลี่ยนชือเป็น Basket สร้าง Mat_Basket สีเหลือง ใส่ Mat_Basket เข้าไปที่ Basket
Camera Setup Set projection to Orthographic size to 16.
Coding the Apple Picker Prototype
Coding the Apple Picker Prototype The actions we will need to code for the AppleTree are as follows: 1. Move at a certain speed every frame. 2. Change directions upon hitting the edge of the play area. 3. Change directions based on random chance. 4. Drop an Apple every second.
Coding the Apple Picker Prototype
Coding the Apple Picker Prototype ลาก AppleTree C# script ไปที่ Apple Tree ทดลอง Run จากนั้นลองทำการปรับค่า Parameter AppleTree Position = [0,12,0] leftAndRightEdge = 20
Coding the Apple Picker Prototype แก้ method update() ตามรูป
บรรยาย Note: ข้างล่างนี้ไม่ต้องพิมพ์ตามเป็น บรรยาย ถ้าเกมมีความเร็ว 25 fps ( 1 frame ทุก 0.04 วินาที) 3 บรรทัดข้างล่างมีความหมายเท่ากัน
Coding the Apple Picker Prototype ลองปรับตัวแปร speed ตามใจชอบ จะเห็นว่า AppleTree ของเราเคลื่อนไหวออกไปจาก screen ดังนั้นเราต้องใส่เงื่อนไข
Changing Direction
Changing Direction Randomly ลองปรับค่า chanceToChangeDirections
Changing Direction Randomly ปัญหาของการใส่ Changing Direction ไว้ใน Update คื่อใน แต่ละ Computer จะทำการเปลี่ยน Direction จำนวนครั้งไม่ เท่ากัน ให้แก้เป็น (FixedUpdate จะถูกเรียก 50 ครั้งต่อ วินาที)
Dropping Apples เลือก AppleTree ใน the Hierarchy ดูที the Apple Tree (Script) ใน Inspector. ลาก Apple Prefab ใส่ใน applePrefab field
Dropping Apples ใส่ Code เข้าไปใน Apple Tree
InvokeRepeating InvokeRepeating(methodName: string, time: float, repeatRate: float) Invokes the method methodName in time seconds, then repeatedly every repeatRate seconds.
Setting GameObject Layers จะเห็นว่า Apple Tree กับ Apple ชนกันเอง ให้ทำ Layers ตามรูปข้างล่าง
Setting GameObject Layers Set Layer ให้กับ AppleTree, Basket และ Apple Set Collision Matrix เพื่อไม่ให้ AppleTree กับ Apple ชน กัน Edit > Project Settings > Physics.
Collision Matrix