บทที่ 5: การโต้ตอบกับผู้เล่น (Player Interaction)
5.1 การสร้าง UI พื้นฐาน
UI (User Interface) คือองค์ประกอบที่ใช้ในการโต้ตอบกับผู้เล่นในเกม เช่น ปุ่ม ข้อความ และการแสดงผลคะแนน ซึ่งมีความสำคัญในการสร้างประสบการณ์การเล่นเกมที่ดี การสร้าง UI พื้นฐานใน Unity สามารถทำได้โดยการใช้ Canvas ที่จะเป็นพื้นหลังในการแสดง UI ต่าง ๆ
การสร้างปุ่ม (Buttons)
ปุ่ม (Button) เป็นองค์ประกอบ UI ที่สำคัญที่ใช้ในการทำให้ผู้เล่นโต้ตอบกับเกม เช่น การเริ่มเกม หรือการหยุดเกม
-
การสร้าง Button:
- ไปที่เมนู GameObject > UI > Button เพื่อสร้างปุ่มใหม่ ปุ่มจะถูกเพิ่มเข้ามาใน Canvas ซึ่งจะปรากฏใน Hierarchy พร้อมกับปุ่มที่เราสร้างขึ้น
- คุณจะเห็นปุ่มปรากฏใน Scene View และสามารถปรับตำแหน่งหรือขนาดได้ตามที่ต้องการ
-
การปรับแต่ง Button:
- เลือกปุ่มใน Hierarchy แล้วใน Inspector คุณจะสามารถปรับแต่งปุ่มได้ เช่น:
- เปลี่ยน Text ของปุ่มให้เป็นข้อความที่ต้องการ เช่น "Start" หรือ "Restart"
- ปรับสีหรือรูปแบบของปุ่มในส่วน Image และ Button Component
- เลือกปุ่มใน Hierarchy แล้วใน Inspector คุณจะสามารถปรับแต่งปุ่มได้ เช่น:
-
การเพิ่มฟังก์ชันให้กับ Button:
- ใน Inspector ของปุ่ม ให้เลื่อนไปที่ส่วน OnClick() ซึ่งเป็นพื้นที่ที่คุณสามารถกำหนดฟังก์ชันที่จะทำงานเมื่อผู้เล่นคลิกปุ่ม
- คลิกที่ปุ่ม + เพื่อเพิ่มฟังก์ชัน จากนั้นลาก GameObject ที่มีสคริปต์ที่ต้องการลงในช่อง แล้วเลือกฟังก์ชันที่จะให้ทำงานเมื่อปุ่มถูกกด
การสร้างข้อความ (Text)
การแสดงข้อความ (Text) เป็นวิธีการสื่อสารกับผู้เล่น เช่น การแสดงข้อความ "Game Over" หรือ "Congratulations!"
-
การสร้าง Text:
- ไปที่เมนู GameObject > UI > Text เพื่อสร้างข้อความใหม่ ข้อความจะถูกเพิ่มลงใน Canvas เช่นเดียวกับ Button
- ใน Hierarchy คุณจะเห็นวัตถุข้อความที่สร้างขึ้น และสามารถปรับตำแหน่งหรือขนาดได้ใน Scene View
-
การปรับแต่ง Text:
- เลือกวัตถุข้อความใน Hierarchy และใน Inspector คุณสามารถเปลี่ยนแปลงข้อความในช่อง Text ให้เป็นข้อความที่ต้องการ
- ปรับขนาดของข้อความ สี และรูปแบบฟอนต์ตามที่ต้องการเพื่อให้ข้อความอ่านได้ง่ายและสวยงาม
การสร้างหน้าจอคะแนน (Score)
การแสดงคะแนนเป็นอีกส่วนที่สำคัญในเกม เพื่อให้ผู้เล่นทราบถึงความคืบหน้าหรือผลลัพธ์ในเกม
1. การสร้าง Score Text:
-
- สร้างข้อความ (Text) ที่จะใช้แสดงคะแนน โดยทำตามขั้นตอนเดียวกับการสร้าง Text
- ตั้งชื่อวัตถุข้อความนี้เป็น ScoreText เพื่อให้ง่ายต่อการอ้างอิงในการเขียนโค้ด
2. การเขียนสคริปต์เพื่ออัปเดตคะแนน:
-
- สร้างสคริปต์ใหม่ชื่อว่า ScoreManager และเพิ่มโค้ดเพื่อจัดการคะแนนดังนี้:
using UnityEngine;
using UnityEngine.UI;
public class ScoreManager : MonoBehaviour
{
public Text scoreText;
private int score = 0;
void Start()
{
UpdateScoreText();
}
public void AddScore(int value)
{
score += value;
UpdateScoreText();
}
void UpdateScoreText()
{
scoreText.text = "Score: " + score.ToString();
}
}
ในโค้ดนี้:
-
- เราประกาศตัวแปร scoreText เพื่อเก็บข้อความคะแนน และ score เพื่อเก็บค่าคะแนน
- ฟังก์ชัน AddScore() จะถูกเรียกเมื่อผู้เล่นทำบางอย่างที่ทำให้คะแนนเพิ่มขึ้น
- ฟังก์ชัน UpdateScoreText() ใช้ในการอัปเดตข้อความในหน้าจอให้แสดงคะแนนล่าสุด
3. การเชื่อมต่อ Score Text กับสคริปต์:
-
- ลากวัตถุ ScoreText ลงในช่อง scoreText ใน Inspector ของสคริปต์ ScoreManager
- จากนั้นเมื่อคะแนนเพิ่มขึ้นในเกม สคริปต์จะทำการอัปเดตข้อความให้แสดงคะแนนใหม่โดยอัตโนมัติ
สรุป:
- Button ใช้สำหรับการโต้ตอบของผู้เล่นกับเกม เช่น การเริ่มเกมหรือการหยุดเกม โดยสามารถปรับแต่งข้อความ สี และฟังก์ชันของปุ่มได้
- Text ใช้ในการแสดงข้อความต่าง ๆ ให้ผู้เล่น เช่น การแสดงข้อความสำคัญหรือคำแนะนำ
- Score ใช้ในการแสดงผลคะแนนในเกม โดยใช้ Text และการเขียนสคริปต์เพื่อจัดการกับการอัปเดตคะแนน