บทที่ 4: การเขียนโค้ดด้วย C# เบื้องต้น

Unity ใช้ภาษา C# (ซีชาร์ป) เป็นภาษาหลักในการพัฒนาเกม การเรียนรู้การเขียนโค้ดใน Unity จะช่วยให้เราสามารถควบคุมการทำงานของวัตถุต่าง ๆ ในเกมได้ เช่น การเคลื่อนที่ การชนกัน หรือการตอบสนองต่อการกระทำของผู้เล่น ในบทนี้เราจะมาทำความเข้าใจพื้นฐานการเขียนโค้ดด้วย C# ใน Unity


การสร้างสคริปต์ใน Unity

ในการเริ่มเขียนโค้ด เราจำเป็นต้องสร้างสคริปต์เพื่อให้ Unity นำไปใช้กับวัตถุในเกม วิธีการสร้างสคริปต์มีดังนี้:

  1. คลิกขวาที่โฟลเดอร์ Assets ใน Project Window 
  2. เลือก Create > C# Script
  3. ตั้งชื่อสคริปต์ตามต้องการ เช่น PlayerMovement
  4. ดับเบิ้ลคลิกที่ไฟล์สคริปต์เพื่อเปิดในโปรแกรม Visual Studio (หรือโปรแกรมอื่นที่ใช้ในการเขียนโค้ดที่ถนัด)

โครงสร้างพื้นฐานของ C# ใน Unity

เมื่อเราเปิดสคริปต์ใน Visual Studio เราจะเห็นโครงสร้างพื้นฐานของโค้ด C# ที่ Unity สร้างขึ้นให้แล้ว ซึ่งประกอบไปด้วยฟังก์ชันหลักสองฟังก์ชันคือ:


using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    // ฟังก์ชันนี้จะถูกเรียกเมื่อเริ่มเกม
    void Start()
    {
        // ใช้สำหรับตั้งค่าเริ่มต้นต่าง ๆ
    }

    // ฟังก์ชันนี้จะถูกเรียกทุกเฟรมของเกม
    void Update()
    {
        // ใช้สำหรับเขียนโค้ดการทำงานที่ต้องอัปเดตทุกเฟรม เช่น การเคลื่อนไหว
    }
}

  • Start(): ฟังก์ชันนี้จะถูกเรียกเมื่อเริ่มต้นเกมหรือเมื่อวัตถุถูกสร้างขึ้น ใช้สำหรับตั้งค่าพื้นฐาน เช่น การกำหนดตำแหน่งเริ่มต้นของวัตถุ
  • Update(): ฟังก์ชันนี้จะถูกเรียกทุกเฟรมของเกม (หรือทุกครั้งที่หน้าจออัปเดต) ใช้สำหรับเขียนโค้ดการทำงานที่ต้องทำซ้ำ เช่น การเคลื่อนที่ของตัวละคร หรือการตรวจสอบการกดปุ่ม

การเคลื่อนที่ของวัตถุด้วย C#

ตัวอย่างต่อไปนี้จะแสดงวิธีการเขียนโค้ดเพื่อควบคุมการเคลื่อนที่ของตัวละครในแนวแกน X และ Y โดยใช้ปุ่มลูกศรบนคีย์บอร์ด:


using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float speed = 5f; // ความเร็วในการเคลื่อนที่

    void Update()
    {
        // รับค่าการเคลื่อนที่จากปุ่มลูกศร
        float moveX = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
        float moveY = Input.GetAxis("Vertical") * speed * Time.deltaTime;

        // เคลื่อนที่ตัวละครตามแกน X และ Y
        transform.Translate(new Vector2(moveX, moveY));
    }
}

ในโค้ดนี้ เราใช้ฟังก์ชัน Input.GetAxis() เพื่อรับข้อมูลจากการกดปุ่มลูกศรซ้าย-ขวา (Horizontal) และบน-ล่าง (Vertical) แล้วใช้ฟังก์ชัน transform.Translate() เพื่อเคลื่อนที่ตัวละครตามแกน X และ Y โดยมีการกำหนดความเร็ว (speed) ที่เราสามารถปรับได้ตามความต้องการ

การเพิ่มสคริปต์ให้กับวัตถุใน Unity

เมื่อเราสร้างสคริปต์เสร็จแล้ว ขั้นตอนต่อไปคือการนำสคริปต์ไปใช้กับวัตถุในเกม:

  1. เลือกวัตถุที่ต้องการ เช่น ตัวละครหลัก หรือวัตถุอื่น ๆ ใน Hierarchy
  2. ลากไฟล์สคริปต์จาก Project Window ไปวางบนวัตถุใน Inspector
  3. เมื่อสคริปต์ถูกเพิ่มแล้ว จะมีฟิลด์ให้เรากรอกค่าเช่น ความเร็ว (speed) ที่เราสามารถปรับได้ใน Inspector

การใช้งาน Debug เพื่อการตรวจสอบโค้ด

Debug เป็นเครื่องมือที่ช่วยในการตรวจสอบว่าโค้ดทำงานอย่างถูกต้องหรือไม่ ใน Unity เราสามารถใช้ Debug.Log() เพื่อแสดงข้อมูลในคอนโซลขณะเกมกำลังรัน ตัวอย่างเช่น:


void Update()
{
    Debug.Log("Player is moving");
}

เมื่อโค้ดนี้รัน เราจะเห็นข้อความ "Player is moving" ปรากฏใน Console ทุกครั้งที่ Update() ถูกเรียก ซึ่งช่วยให้เราตรวจสอบว่าโค้ดทำงานถูกต้องหรือไม่


Free Joomla templates by Ltheme