ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Collision.Contact[]
    유니티/유니티 코드 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
    코루틴 (Coroutine)  (1) 2024.02.14
    foreach  (0) 2024.02.14
    딕셔너리 (Dictionary)  (0) 2024.02.13
Designed by Tistory.