ฟิสิกส์ระเบิดแบบ 2 มิติด้วย 2D Explosion Force

hqdefault

สวัสดีครับ กลับมาพบกับเทคนิคการเขียนเกมด้วย Unity กันอีกเช่นเคยนะครับ วันนี้ผมก็มี Asset ดีๆมาฝากเพื่อนๆเช่นเคยครับ โดย Asset ที่นำมาฝากกันวันนี้เป็น Asset ที่เกี่ยวกับระบบฟิสิกส์ครับ นั้นก็คือการทำระเบิดแบบ 2D นั่นเอง

ถ้าเพื่อนๆเคยใช้งานระบบฟิสิกส์ของ Unity แบบ 3 มิติมา อาจจะคุ้นเคยกับฟังชั่นก์ Rigidbody.AddExplosionForce มาบ้างนะครับ โดยฟังชั่นก์นี้จะเป็นการใส่แรงให้กับวัตถุรอบๆตัว Ridgidbody ที่เรียกใช้ฟังชั่นก์นี้ครับ พูดง่ายๆก็คือเหมือนกับการทำระเบิดรอบตัวนั่นเอง แต่ปัญหาเกิดขึ้นสำหรับคนที่ทำเกมสองมิติแล้วใช้ระบบฟิสิกส์แบบ 2 มิติทันที เพราะว่า Ridgidbody2D ไม่มีฟังชั่นก์ AddExplosionForce มาให้ครับ ก็เลยเป็นที่มาของ Asset ที่ผมนำมาฝากวันนี้จะช่วยให้ปัญหานี้หมดไปครับ

Asset ในวันนี้มีชื่อว่า 2D Explosion Force โดยเพื่อนๆสามารถดาวโหลดได้ ที่นี่ ครับ

มาดู Scene ตัวอย่างกันครับ

01

 

จากตัวอย่างถ้าลอง Play จะเห็นว่า เราสามารถคลิกเหมือนกับใส่แรงระเบิด ให้ลูกกลมๆขยับไปในทิศทางรอบๆได้ครับ

ซึ่งจุดสำคัญคือฟังชั่นที่อยู่ในสคริป ExplosionForce2D ครับ

ซึ่งฟังชั่นนี้ถูกตั้งเป็น Static แปลว่าเราสามารถเรียกใช้ฟังชั่นก์นี้จากสคริปไหนก็ได้ครับ โดยเรียกใช้ว่า  ExplosionForce2D. AddExplosionForce ครับ

02

โดยฟังชั่นก์นี้ต้องการพารามิเตอร์  4 ตัวครับ คือ

  • Rigidbody2D body – ส่ง Ridgidbody2d ที่เราต้องการให้ได้รับผลของการะเบิดครับ
  • Float expForce – แรงที่เราต้องการระเบิด ส่งมาเป็น Float ครับ
  • Vector3  expPosition – ตำแหน่งเริ่มระเบิด
  • float expRadius – รัศมีของการระเบิด

เพียงเรากำหนดพารามิเตอร์ 4 ตัวนี้ Ridgidbody2D ของเราก็สามารถที่จะมีแรงระเบิดได้แล้วครับ

เป็นไงบ้างครับสำหรับ Asset ที่ผมนำมาฝากกันวันนี้ เพื่อนๆอาจจะต้องคอยปรับค่าแรงและค่ารัศมีกันนิดนึงนะครับก่อนที่จะได้ค่าที่ต้องการ หวังว่า Asset นี้จะช่วยให้เพื่อนๆทำเกมด้วย Unity ได้ง่ายขึ้นนะครับ แล้วพบกันใหม่โอกาสหน้าครับ