반응형
입사각, 반사각을 구하는 방법을 알아보겠습니다.
//입사벡터
Vector2 incidentVector;
//충돌할 면의 벡터
Vector2 collisionVector;
//충돌한 면의 벡터를 각도로 변환
float collisionAngle = Mathf.Atan2(collisionVector.y, collisionVector.x) * 180f / Mathf.PI;
//입사벡터를 각도로 변환
flot incidentAngle = Vector3.SignedAngle(collisionVector, incidentVector, -Vector3.forward);
//반사할 벡터의 각도를 구함(충돌한 면의 벡터 기준)
float reflectAngle = incidentAngle - 180 + collisionAngle;
//반사할 벡터의 각도를 라디안으로 변환
float reflectionRadian = reflectAngle * Mathf.Deg2Rad;
//반사벡터
Vector reflectVector = new Vector2(Mathf.Cos(reflectionRadian), Mathf.Sin(reflectionRadian));
반응형
'[Unity] > [Unity]' 카테고리의 다른 글
[Unity] 유니티용 비동기 라이브러리 패키지 Unitask (0) | 2022.09.22 |
---|---|
[Unity] onClick.AddListener() 함수의 파라미터 전달 문제 (0) | 2022.05.28 |
[Unity] Error Unity AndroidJavaException: java.lang.ClassNotFoundException: com.google.android.gms.games.Games (1) | 2022.04.04 |
[Unity] UI터치와 게임 화면 터치 분리해주는 방법 (0) | 2022.03.19 |
[Unity] Button onClick 이벤트 연결 방법(feat. AddListener()) (0) | 2022.02.13 |