유니티/유니티 관련 용어

Collision.Contact[]

DOlpa_GB 2024. 3. 19. 16:35

Collision 타입은 충돌 지점들의 정보를 담는 ContactPoint 타입의 데이터를 

contacts[] 라는 배열의 형태로 제공한다

 

<예제>

private void OnCollisionEnter2D(Collision2D coll)
    {
        // 충돌 시 이전 속도의 벡터 크기를 이용하여 반사 후 속도를 계산하고, 속도를 감속시킵니다.
        Vector2 dir = Vector2.Reflect(lastVelocity.normalized, coll.contacts[0].normal);
        float speed = lastVelocity.magnitude; // 이전 속도의 크기를 사용
        rigid.velocity = dir * Mathf.Max(speed, 0f); // 감속하지 않고 반사만 진행
    }

 

collision.contacts[0]은 두 물체 사이의 여러 충돌지점중 첫번째 충돌지점 정보를 가져옴

 

충돌표면의 방향(normal)도 제공

 

ex) collision.contacts[0].normal.y

=> 노멀벡터의 y값이 1.0인 경우 해당 표면의 방향은 위쪽. 0.7인경우 45도 경사로 표면이 위쪽

 

ex) collision.contacts.Length

=> 충돌한 지점의 길이를 출력

반응형

'유니티 > 유니티 관련 용어' 카테고리의 다른 글

싱글톤 (Singleton Pattern)  (1) 2024.04.26
Vector3.Reflect  (0) 2024.03.19
글로벌 좌표 / 로컬 좌표 / Transform.Translate  (0) 2024.03.12
Shader, Rendering Pipeline  (0) 2024.02.18
코루틴 (Coroutine)  (1) 2024.02.14