![สร้าง Scene ขึ้นมาดังนี้](https://www.daydev.com/wp-content/uploads/2014/11/screen12.jpg)
บทเรียนเกี่ยวกับ Unity 3D สำหรับเขียนเกม 3 มิติ กับการศึกษาเรื่องของการใช้ Script ด้วย JavaScript เพื่อทบสอบการชนกันของวัตถุ หรือตรวจสอบ Collision Detection
แนะนำว่าให้ศึกษาบทเรียนก่อนหน้าก่อนจะปฏิบัติตามในบทเรียนนี้
- เริ่มต้นเขียนเกม 3D ด้วย Unity
- เขียนเกม 3D ด้วย Unity การจัดการ Game Object ในเกม
- เขียนเกม 3D ด้วย Unity เรียกใช้งาน Physics กับ Rigidbody
สร้าง GameObject ขึ้นมาใหม่ตามตัวอย่างดังนี้
![สร้าง Scene ขึ้นมาดังนี้](https://www.daydev.com/wp-content/uploads/2014/11/screen12.jpg)
ไปที่ตัว Cube ที่เราสร้่างมาก่อน สังเกตที่ Tab ชื่อ Project ให้ทำการ คลิกที่ Create เลือกสร้างไฟล์ Javascript
![ที่ Tab Project ให้ create ตัว Javascript ขึ้นมา](https://www.daydev.com/wp-content/uploads/2014/11/screen22.jpg)
สร้างไฟล์ Javascript ขึ้นมาตั้งชื่อว่า falling
![ตั้งชื่อว่า falling](https://www.daydev.com/wp-content/uploads/2014/11/screen32.jpg)
คลิกที่ไฟล์ falling.js ขึ้นมาแก้ไข ให้ใส่คำสั่งดังนี้ลงไป
function OnCollisionEnter(){ Debug.Log("Hit!"); }
![เปิด Mono Developer](https://www.daydev.com/wp-content/uploads/2014/11/screen62.jpg)
เป็นคำสั่งที่ แสดง Log ว่า Hit! เมื่อวัตถุของเรา (Cube) ตกกระทบบางสิ่งใน GameScene ที่เราสร้างไว้ ทำการเอาไฟล์นี้ไปใช้กับ Cube ให้คลิกเลือก GameObjects ชื่อ Cube อีกครั้งทำการ Add Component ใหม่ ถ้าสังเกตดีๆ เราจะพบ Component ที่ชื่อว่า falling ปรากฏขึ้นมา
![เลือก Component ชื่อ falling](https://www.daydev.com/wp-content/uploads/2014/11/screen42.jpg)
ทดลอง Run ตัว GameScene ของเราแล้วดูการตกของวัตถุ อย่าลืมใส่ RigidBody ของบทเรียนก่อนหน้านะครับ
![ใส่ Rigid Body ให้เด้งหน่อย](https://www.daydev.com/wp-content/uploads/2014/11/screen82.jpg)
![กด Run แล้วดู log เมื่อวัตถุหล่นลงมา](https://www.daydev.com/wp-content/uploads/2014/11/screen52.jpg)
จะเห็นว่าการตกกระทบโดนอะไรบางอย่างจะมีการแจ้งว่า “Hit!” เสมอ ให้เราตั้งชื่อ กำแพงที่เราสร้างด้วย Cube ใหม่ว่า Wall1, Wall2, Wall3 และตั้งชื่อ Plane สำหรับพื้นที่เราเล่น
![ตั้งชื่อ Wall3](https://www.daydev.com/wp-content/uploads/2014/11/screen92.jpg)
แก้ไข 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](https://www.daydev.com/wp-content/uploads/2014/11/screen72.jpg)
![ลำดับการชน หรือ Collision จะปรากฏตามลำดับที่กระทบ](https://www.daydev.com/wp-content/uploads/2014/11/screen101.jpg)
เรียบร้อยไม่อยากเลยใช่ไหมครับ บทเรียนนี้ การใส่คำสั่ง Javascript เบื้องต้นสำหรับ Unity3D ตัวอย่างของ Video สำหรับทดสอบนั้นจะเป็นดังนี้ครับ