-
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