DeveloperFeaturedGame DevelopmentGame DevelopmentUnity 3D

เขียนเกม 3D ด้วย Unity ศึกษา Basic Collision Detection

บทเรียนเกี่ยวกับ Unity 3D สำหรับเขียนเกม 3 มิติ กับการศึกษาเรื่องของการใช้ Script ด้วย JavaScript เพื่อทบสอบการชนกันของวัตถุ หรือตรวจสอบ Collision Detection

แนะนำว่าให้ศึกษาบทเรียนก่อนหน้าก่อนจะปฏิบัติตามในบทเรียนนี้

สร้าง GameObject ขึ้นมาใหม่ตามตัวอย่างดังนี้

สร้าง Scene ขึ้นมาดังนี้
สร้าง Scene ขึ้นมาดังนี้

ไปที่ตัว Cube ที่เราสร้่างมาก่อน สังเกตที่ Tab ชื่อ Project ให้ทำการ คลิกที่ Create เลือกสร้างไฟล์ Javascript

ที่ Tab Project ให้ create ตัว Javascript ขึ้นมา
ที่ Tab Project ให้ create ตัว Javascript ขึ้นมา

สร้างไฟล์ Javascript ขึ้นมาตั้งชื่อว่า falling

ตั้งชื่อว่า falling
ตั้งชื่อว่า falling

คลิกที่ไฟล์ falling.js ขึ้นมาแก้ไข ให้ใส่คำสั่งดังนี้ลงไป

function OnCollisionEnter(){ 
   Debug.Log("Hit!");
}
เปิด Mono Developer
เปิด Mono Developer

เป็นคำสั่งที่ แสดง Log ว่า Hit! เมื่อวัตถุของเรา (Cube) ตกกระทบบางสิ่งใน GameScene ที่เราสร้างไว้ ทำการเอาไฟล์นี้ไปใช้กับ Cube ให้คลิกเลือก GameObjects ชื่อ Cube อีกครั้งทำการ Add Component ใหม่ ถ้าสังเกตดีๆ เราจะพบ Component ที่ชื่อว่า falling ปรากฏขึ้นมา

เลือก Component ชื่อ falling
เลือก Component ชื่อ falling

ทดลอง Run ตัว GameScene ของเราแล้วดูการตกของวัตถุ อย่าลืมใส่ RigidBody ของบทเรียนก่อนหน้านะครับ

ใส่ Rigid Body ให้เด้งหน่อย
ใส่ Rigid Body แบบ Bouncy ให้เด้งหน่อย
กด Run แล้วดู log เมื่อวัตถุหล่นลงมา
กด Run แล้วดู log เมื่อวัตถุหล่นลงมา

จะเห็นว่าการตกกระทบโดนอะไรบางอย่างจะมีการแจ้งว่า “Hit!” เสมอ ให้เราตั้งชื่อ กำแพงที่เราสร้างด้วย Cube ใหม่ว่า Wall1, Wall2, Wall3 และตั้งชื่อ Plane สำหรับพื้นที่เราเล่น

ตั้งชื่อ Wall3
ตั้งชื่อ Wall3

แก้ไข falling.js ให้เป็นดังนี้

function OnCollisionEnter(theCollision : Collision){
 if(theCollision.gameObject.name == "plane"{
  Debug.Log("Hit the plane");
 }else if(theCollision.gameObject.name == "Wall1"){
  Debug.Log("Hit the wall1");
 }else if(theCollision.gameObject.name == "Wall2"){
  Debug.Log("Hit the wall2");
 }else if(theCollision.gameObject.name == "Wall3"){
  Debug.Log("Hit the wall3");
 }
}

ทดสอบ Run เกมของเราอีกครั้ง สังเกต Log ที่มันหล่นลงไป

ตรวจสอบการหล่นว่าชน Floor หรือ Wall
ตรวจสอบการหล่นว่าชน Floor หรือ Wall
ลำดับการชน หรือ Collision จะปรากฏตามลำดับที่กระทบ
ลำดับการชน หรือ Collision จะปรากฏตามลำดับที่กระทบ

เรียบร้อยไม่อยากเลยใช่ไหมครับ บทเรียนนี้ การใส่คำสั่ง Javascript เบื้องต้นสำหรับ Unity3D ตัวอย่างของ Video สำหรับทดสอบนั้นจะเป็นดังนี้ครับ

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Back to top button

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน