Ãæµ¹ ÄÄÆ÷³ÍÆ® Ãß°¡
Ã浹ü ¼³Á¤ : Ãæµ¹ ¸ð¾çÀ» ÁöÁ¤ ¸Þ´º / Component / Physics / Box Collider
Rigidbody ¼³Á¤ : ¹°¸®ÀûÀÎ ¼Ó¼º ÁöÁ¤ ¸Þ´º / Component / Physics / Rigidbody
¾Æ·¡´Â xy Æò¸é À§¿¡¼ ¿òÁ÷ÀÌ´Â ¿ÀºêÁ§Æ®ÀÇ Rigidbody ¼³Á¤ÀÌ´Ù. "Use Gravity" üũ¸¦ ÇØÁ¦ÇÏ¿© Áß·ÂÀÇ ¿µÇâÀ» ¹ÞÁö ¾Êµµ·Ï ÇÑ´Ù. Constraints´Â ¿òÁ÷ÀÇ Á¦ÇÑÀ» ÇÏ´Â °ÍÀ¸·Î xy Æò¸é¿¡¼¸¸ ¿òÁ÷À̵µ·Ï üũ ÇÏ¿³´Ù.
"Is Trigger"°¡ üũ µÇ¸é Æ®¸®°Å·Î ÀÛµ¿ÇÑ´Ù. Player¿¡ ÃѾËÀÌ Ãæµ¹ ÇÒ ¶§, ÃѾËÀÌ ÅÍÁø ÈÄ »ç¶óÁö´Â È¿°ú¸¦ ÁÙ·Á¸é, ¾Æ·¡¿Í °°ÀÌ ½ºÅ©¸³Æ®¸¦ ÀÛ¼º ÇÏ¸é µÈ´Ù.
"Is Trigger" üũ½Ã¿¡ OnTriggerEnter À̺¥Æ®°¡ ¹ß»ýÇÑ´Ù. Explosion´Â ÀÌÆåÆ® ¿ÀºêÁ§Æ®ÀÌ´Ù.
public class Bullet : MonoBehaviour {
public GameObject Explosion;
void OnTriggerEnter(Collider other)
{
Instantiate (Explosion, transform.position, transform.rotation);
Destroy(gameObject);
}
}
|
OnTriggerEnter( ) À̺¥Æ®¸¦ Player ½ºÅ©¸³Æ®¿¡¼ ó¸®Çصµ µÈ´Ù.
public class Player : MonoBehaviour {
public GameObject Explosion;
void OnTriggerEnter(Collider other)
{
Instantiate (Explosion, transform.position, transform.rotation);
Destroy(other.gameObject);
}
}
|
Ãæµ¹½Ã À̺¥Æ®µéÀº ´ÙÀ½°ú °°´Ù.
OnTriggerEnter(Collider other) : Æ®¸®°Å¿Í Ãæµ¹ ½ÃÀÛ OnTriggerStay(Collider other) : Æ®¸®°Å¿Í Ãæµ¹ Áß OnTriggerExit(Collider other) : Æ®¸®°Å¿Í Ãæµ¹ Á¾·á
OnCollisionEnter(Collider other) : Ãæµ¹ ½ÃÀÛ OnCollisionStay(Collider other) : Ãæµ¹ Áß OnCollisionExit(Collider other) : Ãæµ¹ Á¾·á
Æ®¸®°Å¿¡¼ "Is Trigger"·Î üũÇÑ ¿ÀºêÁ§Æ®°¡ Æ®¸®°Å Ãæµ¹ÀÌ Àß ¾ÈµÉ ¶§´Â Rigidbody ÄÄÆ÷³ÍÆ®¸¦ Ãß°¡ÇÑ´Ù.
Rigidbody.AddForce( )¿¡ ´ëÇؼ
¾Æ·¡´Â Æ®¸®°Å¸¦ ¹þ¾î ³µÀ» ¶§, °ÔÀÓ¿ÀºêÁ§Æ®°¡ À§·Î Æ¢µµ·Ï ÇÏ¿´´Ù.
void OnTriggerExit(Collider other)
{
if(other.tag == "Bullet")
{
other.gameObject.rigidbody.AddForce(Vector3.up * 3.0f, ForceMode.Impulse);
}
}
|
AddForce( )´Â Rigidbody¿¡ ÈûÀ» °¡ÇÏ¿© ¿òÁ÷ÀÌ´Â ÇÔ¼öÀÌ´Ù. ForceMode¿¡ µû¶ó ¿òÁ÷ÀÓÀÇ Â÷ÀÌ°¡ ÀÖ´Ù.
ForceMode.Force : ¿ªÇÐÀûÀÎ °³³äÀÇ ÈûÀ» ¸®Áöµå ¹Ùµð¿¡ ÁÖ´Â ¸ðµå´Ù. ªÀº ½Ã°£¿¡ ¹ß»ýÇÏ´Â ¿îµ¿·® º¯ÈÀÇ Å©±â¸¦ ³ªÅ¸³»¸ç ÁÖ·Î ¹Ù¶÷À̳ª ÀÚ±â·Âó·³ ¿¬¼ÓÀûÀ¸·Î ÁÖ¾îÁö´Â ÈûÀ» ³ªÅ¸³»´Â µ¥ ÀÌ¿ë µÈ´Ù.
ForceMode.Impulse : Ãæ°Ý·®À» ¸®Áöµå¹Ùµð¿¡ ÁÖ´Â ¸ðµå·Î Ãæ°Ý·®À̶û ÈûÀÇ Å©±â¿Í ÁÖ´Â ½Ã°£À» °öÇÑ ¼öÄ¡´Ù. ÁַΠŸ°ÝÀ̳ª ÆøÆÈó·³ ¼ø°£ÀûÀ¸·Î ÈûÀ» ³ªÅ¸³»´Â µ¥ ÀÌ¿ëµÈ´Ù.
ForceMode.Acceleration : ¸®Áöµå¹Ùµð°¡ °®´Â Áú·®À» ¹«½ÃÇÏ°í Á÷Á¢ÀûÀ¸·Î °¡¼Ó·®À» ÁÖ´Â ¸ðµå´Ù. ¾ÕÀÇ µÎ ¸ðµåÀÇ °æ¿ì Áú·®¿¡ µû¶ó ¿òÁ÷ÀÓÀÌ ´Þ¶óÁöÁö¸¸ ÀÌ ¸ðµåÀÇ °æ¿ì Áú·®¿¡ »ó°ü ¾øÀÌ ÀÏÁ¤ÇÑ °¡¼ÓÀ» ¸¸µé¾î ³½´Ù. ÁÖ·Î Áö±¸ÀÇ Á߷ ǥÇö¿¡ ¾²ÀδÙ.
ForceMode.VelocityChange : ¸®Áöµå¹Ùµð°¡ °¡Áø Áú·®À» ¹«½ÃÇÏ°í Á÷Á¢ÀûÀ¸·Î ¼ÓµµÀÇ º¯È¸¦ ÁÖ´Â ¸ðµå´Ù. ¾Õ¼ ¸»ÇÑ AccelerationÀº ½Ã°£ÀÌ Èê·¯°¡¸é¼ º¯È¸¦ ÀÏÀ¸Å°´Â µ¥ ºñÇØ ÀÌ ¸ðµå´Â ¼ø°£ÀûÀ¸·Î ÁöÁ¤ÇÑ ¼Óµµ·Î º¯È¸¦ ÀÏÀ¸Å²´Ù.
Ãæµ¹ ·¹À̾î
|
1. ¸Þ´º / Project Settings / Tags³ª InspectorâÀÇ "Add Tag"·Î Tag Manager¸¦ ½ÇÇàÇÑ´Ù.
2. User Layer¸¦ Ãß°¡ÇÑ´Ù. 0 ~7±îÁö´Â À¯´ÏƼ ½Ã½ºÅÛ¿¡¼ ¿¹¾àÇÑ ·¹À̾î·Î 8ºÎÅÍ 31±îÁö »ç¿ë ÇÒ ¼ö ÀÖ´Ù.
3. °ÔÀÓ ¿ÀºêÁ§Æ®ÀÇ ·¹À̾ ¼³Á¤ÇÑ´Ù.
|
4. Ãæµ¹ ¸ÞÆ®¸¯½º ¼³Á¤
Ãæµ¹ ¸ÅÆ®¸¯½º·Î ·¹À̾¸® Ãæµ¹ ¿©ºÎ¸¦ °áÁ¤ ÇÑ´Ù. üũ¸¦ ÇØÁ¦Çϸé ÇØ´ç ·¹À̾î´Â Ãæµ¹ ÇÏÁö ¾Ê´Â´Ù.
¸Þ´º / Project Settings / Physics·Î PhysicsManager¸¦ ½ÇÇàÇÑ´Ù. ¾Æ·¡¿¡ Layer Collision Matrix¸¦ È®ÀÎ ÇÒ ¼ö ÀÖ´Ù.
µðÆúÆ® Physics Material ¼³Á¤
Physics Material¸¦ »ý¼ºÇÏ¿© µðÆúÆ® Physics MaterialÀ» µî·ÏÇÏ¸é ¸ðµç RigidBody¿¡ ±âº»ÀûÀ¸·Î µðÆúÆ® ¹°¸® ÀçÁú °ªÀÌ Àû¿ëµÈ´Ù.
PhysicsManager¸¦ ¿ÀÇÂÇÑ´Ù.
ProjectâÀÇ Physics MaterialÀ» PhysicsManagerâÀÇ Default Material·Î µå·¡±×ÇÑ´Ù.
|