1

의식의 흐름대로 게임 만들기 9. 플레이어 회전

의식의 흐름대로 게임 만들기 9. 플레이어 회전

노아의 블로그

    목차
반응형

프로젝트 해야되는데 글쓰는게 너무 좋네요..

오늘은 플레이어 회전까지만 하겠습니다.

 

발사를 할때 플레이어가 마우스 위치를 바라보았으면 좋겠습니다.

그러면 마우스가 갈수있는 모든 방향으로 발사가 가능하겠죠..

 

그럼, PlayerMove에 코드를 작성합시다..

먼저 마우스를 보려면 마우스의 위치를 알아야겠죠...이런식으로 위치를 얻어낼수가 있습니다.

 

그리고 Camara.main으로 현재 메인카메라에 접근해서

마우스 위치를 Camera서 ScreenTo WorldPoint를 합니다. (월드 좌표로 변환합니다.)

결국에는 마우스 위치가 실제 게임의 월드 좌표, Vector가 됩니다. 가상의 점이 찍혔다고 생각하면 됩니다.

 

그럼 이 백터로 무엇을 할 수 있는가.. 플레이어가 이 백터를 바라보면 되는것 아닌가요?

 

A 는 플레이어고 B는 마우스 위치가 백터로 변환된 위치입니다.

 

뭐. 두 백터 사이의 각도를 가지고 회전을 할 수도 있겠지만 좀 어렵습니다.

항상 쉽게 쉽게 생각하는게 좋죠.

 

저 그림은 잠시 치워두고 

 

수직선을 그려본다면...

 

점 A에서 점 B까지 가고싶습니다. 어떻게 해야 할까요?

 

B에서 A를 빼면 A에서 B까지 가는 거리가 나오죠?

 

2-(-1) = 3이죠?

 

반대로 B에서 A까지 가려면 

 

A에서 B를 뺀 값이 되겠죠?

 

방향과 크기가 있네요? 백터네요?

 

그럼 이차원 백터에서도?

 

A에서 B까지 가려면? B - A 즉 

 

(-2,-1) - (2,1)

그러면 -4,-2 가 되겠죠.

 

4,2는 결국 이거거든요

 

근데 A에서 B까지니까 A에서 시작하면

 

이런 백터가 나오네요?

 

이거 지금 A에서 B를 바라보는 백터 아닌가요?

 

결국 백터의 뺄셈은 타깃을 바라보는 백터를 구할수 있습니다..

 

그래서 코드에 적용한다면.

 

내 방향을 바라보는 방향으로 일치시키면서 마우스 위치를 바라보게 되는거죠.

 

실행을 해 본다면..

 

 

하나를 빼먹었네요.. 카메라의 z축이 -10이여서 그렇습니다.

 

이렇게 수정을 한다면 끝이 납니다!!!!

 

반응형