본문 바로가기
프로그래밍/게임 개발

프로그래밍 「 게임 개발 편」더 많은 기능! 보조 발사 파워업!

by grapedoukan 2023. 7. 4.
728x90

우리는 불타고 있습니다! 왜 지금 멈춰?

보조 발사 파워업을 위한 빔을 만들겠습니다. 내가 원하는 것은 빔이 은하계를 스캔하고 경로에 있는 적을 파괴하는 것입니다.

Unity 내에서 레이저 이미지를 Heirarchy 안에 배치하고 Beam이라고 부르겠습니다.

레이저 이미지를 계층 구조로 이동하고 이름을 Beam-L2R로 바꿉니다.

스케일의 경우 X에서 Transform을 .2, Y에서 4.25, Z에서 0.2로 변경해야 합니다. 이렇게 하면 장면의 다른 레이저와 함께 일관된 너비를 갖게 됩니다. 차이점은 레이저가 광선처럼 더 길다는 것입니다.

또한 Sorting Layer 를 Foreground 로 변경하여 다른 게임 오브젝트 위에 표시되도록 해 보겠습니다.

또한 빔이 적과 충돌하여 파괴하려면 Rigidbody2D 와 BoxCollider2D 를 추가해야 합니다.

Rigidbody2D 컴포넌트에서 중력 스케일(Gravity Scale) 을 0 으로 변경합니다. 그리고 BoxCollider2D에서 "Is Trigger" 옵션을 선택해야 합니다.

Unity로 이동하여 Beam을 구성해 보겠습니다. 이 첫 번째 빔은 왼쪽에서 오른쪽으로 이동하므로 Beam-L2R이라는 이름이 붙습니다.

올바른 위치에 배치해야 합니다. 플레이어를 x, y, z의 0, -3.5, 0에 중앙에 배치합니다. 이제 빔을 플레이어의 왼쪽에 배치해 보겠습니다. 빔이 플레이어의 BoxCollider2D에 닿으면 플레이어에게 피해를 줄 수 있으므로 원하지 않습니다.

z에서 빔을 90도 회전하고 x, y, z에서 위치를 -7, -4.5, 0으로 설정해 보겠습니다.

현재 빔이 회전하도록 애니메이션하면 빔이 중심에서 회전합니다. 우리는 이 행동을 원하지 않습니다. 우리가 원하는 것은 빔이 바닥에서 회전하는 것입니다. 피벗 포인트를 만들려면 설정을 센터 및 글로벌에서 피벗 및 로컬로 변경해야 합니다.

이동 도구를 선택한 상태에서 설정을 가운데에서 피벗으로, 글로벌에서 로컬로 변경합니다.

이제 Beam-Leftside 라는 빈 게임 오브젝트를 생성하겠습니다.

빈 게임 오브젝트를 피벗 포인트가 될 위치로 이동합니다.

이제 우리는 이것을 우리 빔의 부모(자식)로 비워둘 것입니다.

Empty를 Beam의 부모로 만듭니다.

이제 "Beam-Leftside"라는 이름의 빈 게임 오브젝트를 사용하여 빔을 피벗할 수 있습니다.

빔을 아래에서 회전합니다.

다음으로 해야 할 일은 빔을 복제하는 것입니다. 두 번째 빔의 이름을 오른쪽에서 왼쪽으로 "Beam-R2L"로 지정했습니다.

다음으로 해야 할 일은 빔을 복제하는 것입니다. Parent 이름을 Beam-Rightside로 변경했습니다. 그리고 두 번째 빔은 오른쪽에서 왼쪽으로 "Beam-R2L"로 이름을 바꿨습니다.

그런 다음 Beam-R2L을 선택한 상태에서 빔을 플레이어의 반대편 또는 x, y, z의 8.25, 0, 0으로 재배치했습니다.

빔은 애니메이션을 위한 준비가 거의 완료되었습니다. 최종 빈 게임 오브젝트를 생성해야 합니다. 이 빈 공간을 빔 사이, 중앙으로 직접 이동합니다.

이제 이 두 Beam을 방금 만든 Beams라는 Parent Empty 안에 자식으로 포함할 수 있습니다.

Parent "Beams"를 선택한 상태에서 Animation 창에서 Create를 클릭합니다. 명명 체계에 따라 Beam_Powerup_anim라고 부릅니다.

플레이어 주변의 빔 스캐닝을 애니메이션화할 것입니다. 플레이어의 위치는 x, y, z에서 0, -4, 0으로 설정해 보겠습니다.

플레이어 주위의 빔을 설정하려고 합니다. 빔의 x, y, z에서 부모 빔의 위치를 0, -4.9, 0으로 업데이트해 보겠습니다.

애니메이션 창 안에 있는 빨간색 녹음 버튼을 클릭합니다.

이 녹음 버튼은 모든 변경 사항을 자동으로 저장합니다.

Beam_Leftside 및 Beam_Rightside의 속성을 수동으로 설정합니다.

첫 번째 프레임의 경우 Beam_Leftside 및 Beam_Rightside의 속성을 수동으로 설정해야 할 수도 있습니다. 첫 번째 키프레임은 단순히 시작 위치를 설정합니다.

이제 트레일 헤드를 10번째 프레임으로 이동하고 빔을 45도 각도로 돌려 스캐닝을 시뮬레이션해 보겠습니다.

계층 구조에서 두 빔을 모두 선택하고 빔을 씬 창 안의 다음 위치로 이동하여 두 빔의 위치를 조정합니다. Y축에서 2.12로 설정했습니다. 이것은 빔이 가장 잘 보이는 곳입니다.

그런 다음 Beam_Leftside 회전의 경우 Z축에서 -45로 설정합니다. Beam_Rightside 경우 Z축에서 회전을 225로 설정해 보겠습니다.

20번째 프레임으로 계속 진행해 보겠습니다. Beam_Leftside와 Beam_Rightside의 경우 X 위치에서 둘 다 0으로 설정합니다.

그런 다음 Beam_Leftside 경우 Z축에서 회전을 -90으로 변경해 보겠습니다. Beam_Rightside 경우 Z축에서 회전을 270으로 변경해 보겠습니다.

빔은 플레이어 앞의 중앙에 위치해야 합니다.

30번째 프레임으로 계속 진행해 보겠습니다. Beam_Leftside 경우 위치를 X축에서 1.05로, Beam_Rightside축에서 X축에서 -1.05로 설정해 보겠습니다.

그런 다음 Beam_Leftside Z축에서 회전을 -135로 변경해 보겠습니다. Beam_Rightside 경우 Z축에서 회전을 315로 변경해 보겠습니다.

40번째 프레임으로 넘어갑시다. Beam_Leftside와 Beam_Rightside의 경우 Y 위치에서 둘 다 0으로 설정합니다.

그런 다음 Beam_Leftside Z축에서 회전을 -180로 변경해 보겠습니다. Beam_Rightside 경우 Z축에서 회전을 360로 변경해 보겠습니다.

40번째 프램에서 빔을 마무리합니다.

빔 무기는 프리팹 준비가 완료되었습니다.

Beams Parent 게임 오브젝트를 Hierarchy에서 Project 뷰의 Prefabs 폴더로 드래그하여 프리팹해 보겠습니다. 이제 계층 구조에서 Beams 게임 개체를 제거할 수 있습니다.

이것으로 더 많은 기능을 마칩니다! 보조 발사 파워업! 파트 I. 2부에서는 이 기능 설정을 완료하기 위해 코드로 이동합니다.

728x90