Collision

Ãæµ¹ ÄÄÆ÷³ÍÆ® Ãß°¡

Ã浹ü ¼³Á¤ : Ãæµ¹ ¸ð¾çÀ» ÁöÁ¤
¸Þ´º / 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·Î µå·¡±×ÇÑ´Ù.