บทที่ 5: การโต้ตอบกับผู้เล่น (Player Interaction)

5.1 การสร้าง UI พื้นฐาน

UI (User Interface) คือองค์ประกอบที่ใช้ในการโต้ตอบกับผู้เล่นในเกม เช่น ปุ่ม ข้อความ และการแสดงผลคะแนน ซึ่งมีความสำคัญในการสร้างประสบการณ์การเล่นเกมที่ดี การสร้าง UI พื้นฐานใน Unity สามารถทำได้โดยการใช้ Canvas ที่จะเป็นพื้นหลังในการแสดง UI ต่าง ๆ

การสร้างปุ่ม (Buttons)

ปุ่ม (Button) เป็นองค์ประกอบ UI ที่สำคัญที่ใช้ในการทำให้ผู้เล่นโต้ตอบกับเกม เช่น การเริ่มเกม หรือการหยุดเกม

  1. การสร้าง Button:

    • ไปที่เมนู GameObject > UI > Button เพื่อสร้างปุ่มใหม่ ปุ่มจะถูกเพิ่มเข้ามาใน Canvas ซึ่งจะปรากฏใน Hierarchy พร้อมกับปุ่มที่เราสร้างขึ้น
    • คุณจะเห็นปุ่มปรากฏใน Scene View และสามารถปรับตำแหน่งหรือขนาดได้ตามที่ต้องการ
  2. การปรับแต่ง Button:

    • เลือกปุ่มใน Hierarchy แล้วใน Inspector คุณจะสามารถปรับแต่งปุ่มได้ เช่น:
      • เปลี่ยน Text ของปุ่มให้เป็นข้อความที่ต้องการ เช่น "Start" หรือ "Restart"
      • ปรับสีหรือรูปแบบของปุ่มในส่วน Image และ Button Component
  3. การเพิ่มฟังก์ชันให้กับ Button:

    • ใน Inspector ของปุ่ม ให้เลื่อนไปที่ส่วน OnClick() ซึ่งเป็นพื้นที่ที่คุณสามารถกำหนดฟังก์ชันที่จะทำงานเมื่อผู้เล่นคลิกปุ่ม
    • คลิกที่ปุ่ม + เพื่อเพิ่มฟังก์ชัน จากนั้นลาก GameObject ที่มีสคริปต์ที่ต้องการลงในช่อง แล้วเลือกฟังก์ชันที่จะให้ทำงานเมื่อปุ่มถูกกด

การสร้างข้อความ (Text)

การแสดงข้อความ (Text) เป็นวิธีการสื่อสารกับผู้เล่น เช่น การแสดงข้อความ "Game Over" หรือ "Congratulations!"

  1. การสร้าง Text:

    • ไปที่เมนู GameObject > UI > Text เพื่อสร้างข้อความใหม่ ข้อความจะถูกเพิ่มลงใน Canvas เช่นเดียวกับ Button
    • ใน Hierarchy คุณจะเห็นวัตถุข้อความที่สร้างขึ้น และสามารถปรับตำแหน่งหรือขนาดได้ใน Scene View
  2. การปรับแต่ง 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 และการเขียนสคริปต์เพื่อจัดการกับการอัปเดตคะแนน