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 |