1

의식의 흐름대로 게임 만들기 8. 플레이어 사격 보완

의식의 흐름대로 게임 만들기 8. 플레이어 사격 보완

노아의 블로그

    목차
반응형

생각을 해 보니까 플레이어 사격에서 보완할 점이 있습니다. (진짜 의식의 흐름대로여서 생각나면 고쳐야됩니다.)

 

현재 사격은 사격자의 위치와 방향을 기준으로 총알을 발사하고 있는데요.

 

그것을 코드로 조작해서 하고 있습니다.

 

Player Fire 스크립트의 생성한 총알의 위치를 내 위치로 이동시킨다와 총알의 방향을 사격자의 위 방향으로 하는 코드요.

 

코드를 최대한 적게 써서 많은 기능들을 하는게 좋습니다.

 

따라서 코드를 쓰지 않아도 같은 기능을 하는 방법을 사용 해 봅시다.

 

부모와 자식을 사용하는 방법인데요, 매우 간단합니다.

 

부모와 자식은 캥거루 주머니를 생각하시면 됩니다. 캥거루와 캥거루 주머니 안에 아기 캥거루가 있습니다.

 

캥거루는 앞방향을 보고있습니다. 아기 캥거루는 옆방향을 보고 있습니다.

 

이 상태로 부모 캥거루가 왼쪽 방향을 바라본다면.

아기 캥거루는 가만히 있었는데도 앞쪽 방향을 바라보게 됩니다.

 

이해 되시나요?

 

그럼, 이동으로 비유를 해 보죠.

 

캥거루가 이동하면 아기 캥거루가 가만히 있어도 부모 캥거루의 주머니에 있기에 함께 이동하지 않습니까?

 

그것은 주머니 속에 있기에 가능한 일이죠. 

 

뭐 캥거루 비유도 좋지만 더 좋은 예시가 생각났습니다. 

마우스를 잡아서 들어볼까요? 그리고 좌 우로 회전해보세요.

마우스는 잡히는 순간부터 손의 움직임과 회전을 따라오죠? 그겁니다.

마우스는 손에 종속(?) 됩니다. 손이 부모고 자식이 마우스입니다.

 

이것을 이제 게임에서 구현을 해 본다면 

 

Player을 우클릭 하시고 

Create Empty를 합니다.

 

그러면 플레이어 밑에 빈 오브젝트 하나가 생겼습니다.

이름을 FIrePos라고 바꾸어 줍니다.

 

FIrePos는 Player의 자식입니다.

FIrePos의 위치를 Player 조금 앞에다가 가져다 놓고요.

 

끝입니다^^ 이제 사격을 FIrePos의 위치에서 하면 되겠지요.

 

총구를 받고요.

 

이제 총구에서 총알을 발사하면 되네요..

 

하지만 이 코드도 간결하게 할 수가 있습니다.

 

이렇게요.

 

하지만 결국 밑에 Bullet은 똑같습니다..

생각을 해 보았는데 이렇게 해 버리면 직선의 총알 이동만 표현할수가 있습니다.

 

그래도 일단 지금 목표는 '코드를 줄이기' 이기 때문에 나중에 필요할시 다시 수정하겠습니다.

 

이렇게 이것만 남기고 모두 지워버리고요

 

FIre은 단지 총구에서 생성한다만 되었습니다. 

이제 무엇을 하느냐

 

총알을 발사하는 코드를 다시 수정해야겠죠.

왜냐하면 이전 코드는 발사에서 방향과 속력을 결정하는 코드였는데

지금은 그냥 총구의 위치에서 발사를 하는 코드입니다.

 

총알은 단지 자신의 앞방향.. 직선으로만 이동하면 되죠. (총구의 방향과 위치를 따르니까)

 

이제 

 

Player Fire에 FirePos를 끌어다가 넣으시고

 

Bullet Prefab에 Speed를 설정한다면 되겠네요.

 

 

 

 

플레이어가 회전하니까 총구도 같이 회전하고 총구의 방향으로 총알이 나가는것을 볼 수 있습니다.

 

굿..

반응형