[Unity]/[Unity]

[Unity] 입사각, 반사각을 구하는 방법

극꼼 2022. 5. 11. 17:14
반응형


입사각, 반사각을 구하는 방법을 알아보겠습니다.

 

//입사벡터
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));

 

 

반응형