ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Collision과 Trigger
    유니티 2022. 2. 3. 18:06

    1. Collision vs Collider

    Collider는 Collider끼리의 충돌을 검사하고,

    Collision은 물리적인 충돌을 검사한다.

     

    좀 더 단순하게 생각하면

    Collider에 Is Trigger가 켜져있으면 Collider로 충돌이 일어나고

    만약 활성화가 안되어있으면 Rigidbody를 이용해서 물리적인 충돌이 일어났는지를 검사해서 Collision으로 충돌이 일어난다.

     

    정리하자면

    Collision충돌이 일어나기 위해서는

    1) Rigidbody컴포넌트가 있어야한다.( Is Kinematic : off )

    2) 나한테 Collider가 있어야한다. ( Is Trigger : off)

    3) 상대한테 Collider가 있어야한다( Is Trigger : off)

     

    Collider충돌이 일어나기 위해서는

    1) 나한테 Collider가 있어야한다. (Is Trigger : on)

    2) 상데한테 Collider가 있어야한다. (Is Trigger : on)

     

    다시 처음의 말을보면  Collider의 충돌과 물리적인 충돌의 차이를 알 수 있을 것이다.

     

    2. Trigger(트리거)

    트리거 관련함수는 Collider와 Collsion에 대해 충돌여부를 확인하여 함수를 실행시킨다.

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class testCollision : MonoBehaviour
    {
        private void OnCollisionEnter(Collision collision)
        {
            Debug.Log("Collisinon 충돌!");
        }
        private void OnTriggerEnter(Collider other)
        {
            Debug.Log("Collider 충돌!");
        }
    }

    기본적으로

    OnCollisionEnter, OnCollisionStay, OnCollisionExit

    OnColliderEnter, OnColliderStay, OnColliderExit

    위에처럼 함수가 각각 3개씩 제공되는데

    Enter는 충돌하는 순간 1번 함수를 호출한다.

    Stay는 충돌하고 있는 동안 함수를 계속 호출한다.

    Exit는 충돌이 발생하고 두 객체가 떨어지는 순간 함수를 호출한다.

     

    1번에서도 설명되어있지만 Collider를 호출하려면 Is Trigger를 체크하는 것을 꼭 기억하자!

     

    '유니티' 카테고리의 다른 글

    레이어(Layer)  (0) 2022.02.04
    Raycasting(레이캐스팅) with 유닛 클릭  (0) 2022.02.04
    RigidBody와 Collider  (0) 2022.02.03
    Resource Manager  (0) 2022.02.03
    프리펩(Prefab)  (0) 2022.02.03
Designed by Tistory.