Unity
-
화면 중앙에 Ray 쏘기(카메라에서 ray 쏘기)Unity 2024. 5. 7. 17:25
이런 느낌으로 Ray를 쏴서 Raycasting 하고 싶다. 화면 정중앙에서 발사되는 Ray는 Camera.ViewportPointToRay(Vector3 pos)로 만들 수 있다. Camera.ViewportPointToRay(Vector3 pos) Camera.ViewportPointToRay(Vector3 pos)는 카메라가 보는 화면에서 pos를 관통하는 Ray를 반환한다. pos는 카메라 기준으로 좌측하단이 (0,0), 우측 상단이 (1,1)이다. 즉 pos를 (0.5, 0.5)로 설정하면 카메라 중앙을 관통하는 Ray를 만들 수 있다. 이렇게 만들어진 Ray를 이용해 RayCasting을 하면 된다.
-
태양계 만들기 - 기울어진 자전 축을 가지고 공전하기Unity 2024. 3. 31. 15:10
태양계 모델을 만드는 과제를 하던 중, 태양 주위를 공전하는 지구의 자전축을 기울인 채로 고정해서 자전하는 것을 구현하고 싶었다. 문제는 그냥 지구를 기울여서 Rotate해버리면 자전축 방향이 태양을 공전할때 같이 돌아간다는 것이다. Rotate에 오버로드 되어있는 Rotate(Vector3 axis, float angle, Space relativeTo)를 활용해 해결하였다. 이 메서드는 해당 axis 방향으로 angle만큼 오브젝트를 회전 시키는데, 그 축 방향은 relativeTo를 따라간다. 지구를 그냥 Rotate했을 때는 지구의 로컬 축 방향으로 돌기 때문에 자전 축의 방향이 바뀌지만, relativeTo에 Space.World를 넣으면 월드 축 방향으로 돌아 공전하더라도 자전 축의 방향이 바..
-
Time.deltaTimeUnity 2024. 3. 31. 02:30
Time.deltaTime : 전 프레임이 완료되는데 걸린 시간. 60FPS(Frames per Second) : 1초에 60개의 프레임을 찍어냄. Time.deltaTime = 1/60 30FPS : 1초에 30개의 프레임을 찍어냄. Time.deltaTime = 1/30 Time.deltaTime을 곱하지 않고 그냥 이동거리나 회전 각도를 적용하면, 1프레임당 해당 수치만큼 적용되므로, 성능차이에 따라 이동거리나 회전 각도가 달라진다. Time.deltaTime을 각 수치에 곱해주면, 성능이 빠르면 그만큼 느리게 변화가 적용되고, 성능이 느리면 그만큼 빠르게 변화가 적용된다.