2021. 11. 30. 16:28ㆍ유니티 수학 - 수포자
수포자를 위한 게임 수학
출처 유튜브 영상
https://www.youtube.com/watch?v=d-5pcuWrUEA&list=PL-xqYJ8bjgMC-p94R7iXjFCs-znRg93PJ&index=2
수학은 영어로도 알고 있어야 자료 찾을 때 수월하다고 합니다.
두 지점(A지점, B지점) 간 거리를 구하기 위해서, 삼각형의 빗변을 구하는 방법으로 사용하고
이 때 피타고라스의 정리로 계산 후 Itween.MoveTo(obj오브젝트, dst거리, time시간)으로 적용합니다.
직각삼각형은
밑변과 높이의 90도 각도를 이루고, 빗변(HYPOTENUSE)을 가짐.
이때 빗변C제곱 = 높이A제곱 + 밑변B 제곱
빗변C = 전체 루트 높이A제곱 + 밑변B 제곱
여기서 잠시 정사각형을 잠깐 생각해보면
정사각형 넓이(면적)은 한 변 x 한변 = 한변의 제곱이다
삼각형으로 다시 돌아가보면,
삼각형 밑변B 정사각형 제곱 + 높이A 정사각형 제곱 = 삼각형빗변 정사각형
따라서 삼각형의 빗변 = 두 지점간 거리 라고 생각해서 다음과 같은 좌표의 거리를 구한다고 치면
밑변은 100-20(X) = 80이 되고, 높이는 80-20(Y) =60이 되므로
빗변제곱 = 80제곱 + 60 제곱
빗변은 = 더한 값의 제곱근임 (1000은 실수임. 10000이 맞다)
제곱근 계산은 여기 사이트 참고
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sbssbi69&logNo=220221686187
따라서 10000(1000아님)제곱근으로 구한 빗변 길이는 100 이 된다.
다시 ITween으로 돌아가서,
1초당 40씩 이동한다고 쳤을 때
빗변 100 / 40 을 하게 되고 이것이 time이라고 한다.
Itewwn.MoveTo(오브젝트obj , 거리 dst, 시간 time)
+ 그냥 개인적인 생각...
학원에서 마지막 팀 프로젝트를 할 때 터레인으로 잠깐 레벨디자인 지형 만든 적 있었는데(따로 안 배움)
눈썰매를 pc버전에서 (Physics material)을 이용해서 구현 해본 적 있었음.
(터레인 콜라이더가 프레임 부하에 영향이 커서 low poly asset으로 결국 대체해서 눈썰매도 제외시킴.)
이 때 플레이어 x,y높이 - 미끄러져 도착할 예정 지점의 x,y 값으로 언덕 기울기를 구할 수 있지 않았을까 싶어지기는 함.
터레인의 높이를 구하는 이런 함수도 있다고 하니 필요하다면 적용해볼 수도 있었을까...??
float height = Terrain.activeTerrain.SampleHeight(transform.position);
아 그리고 터레인 자체 크기를 조정하는 것은 터레인 오브젝트 인스펙터창의 톱니바퀴 하위 항목에 있더라..