본문 바로가기
엔진 공부/Buildbox_Classic

06. 첫 프로젝트 만들기 | 적 이동 및 생성 ( Path, Movement, Spawner)

by OhEasy 2023. 3. 5.
728x90

이전 시간에 마우스 터치에 따라 캐릭터를 기준으로 방어막이 회전하는 기능을 구현하였다.

이제 사방에서 날아오는 적을 구현할 차례이다.

날아오는 적은

방어막에 충돌하였을 때는 점수를 획득하고,

방어막을 지나쳐 캐릭터와 충돌했을 경우에는 게임오버 처리가 되야 한다.

사방에서 날아오는 적을 구현한다.


일단 캐릭터를 가운데로 보내기 위한 방법은

2가지가 있다.

첫번째는 패스 기능이다.

패스 기능은 왼쪽 탭 내 Logic의 하위에 있는데,

여러 점을 생성하여 인접 점끼리의 선을 만들고 그 경로를 따라가도록 할 수 있다.

드래그 드롭으로 패스를 생성하면

요렇게 생성이 되는데,

흰 박스를 잡고 드래그하면 패스의 위치를 옮길 수 있다.

( 첫 점이 아닌 패스 전체를 움직인다. )

+를 누르면 시작 점의 다음 점을 생성 시킬 수 있다.

+를 누르면 작은 +와 함께 주황색 원이 생성 되는데,

작은 +는 주황색 원 ( 패스의 두번째 점 ) 사이에 새로운 점을 생성시키는 역할을 하고,

주황색 원은 해당 패스의 각 점을 나타내며 해당 점을 드래그로 이동 시켜 경로를 설정할 수 있다.

패스로 경로를 설정하는 법은 알았으니

패스를 따라가게하는 기능을 구현한다.


패스를 선택하면 화면 오른쪽에 다음과 같은 화면이 보이는데,

각 기능 중 중요한 기능만 살펴보자면

  1. Search Radius : 탐색 범위의 반지름을 입력하는 공간으로 생성 시킨 패스의 시작점 주변 흰색원의 반지름 크기와 동일하다. 해당 원 안에 움직이고자 하는 녀석이 들어오면 패스로 설정한 경로대로 움직이게 할 수 있다.
  2. Speed : 말 그대로 속도인데, 패스로 설정한 경로대로 움직일 녀석들의 속도를 지정하는 공간이다.
  3. Play Mode : Single, Loop, Ping Pong 세가지 모드를 선택할 수 있는데 어떤 방식으로 움직이는지는 아래를 보자. (위부터 싱글, 루프, 핑퐁 )

4. Affected Asset : 무엇을 패스로 지정한 경로에 따라 움직이게 할 것인가 설정하는 곳으로 All, Character, Assets이 있는데, 캐릭터를 제외한 특정 오브젝트를 경로에 따라 움직이게 하고 싶은 경우 Assets을 선택한다.

Assets을 선택하면 하단에 Asset이라는 메뉴가 생기면서 어떤 에셋을 적용 시킬 것인지 선택하는 드롭 다운 목록이 생성 된다. 여기서 원하는 녀석의 이름을 선택하면 된다.


패스는 원하는 이동 경로로 움직이게 할 수 있지만

지그재그로 움직이게 하는 기능은 굳이 필요하지 않다...

그리고 패스를 사용하게 된다면

적을 생성시키는 Spawner의 수량 만큼의 패스가 필요하다. ( 적어도 1/2개 )

이유를 설명하기 전 적을 생성하는 기능을 살펴보자

( 적을 ) 생성하는 기능은 아래와 같이 Spawner 컴포넌트를 추가하여 사용할 수 있다.

 

Objects로 분류된 녀석들은 Spawner를 추가할 수 있다

총 16개의 Spawner 배치

잘 보이지는 않지만 회색 주변으로 검은 점이 16개 배치되어 있다.

배치된 점( EnemyBullet )들은 전부 Spawner가 달려있는데,

12시 방향부터 45도씩 2개씩 배치 되어 있다.

Spawner 컴포넌트를 추가하면 해당 오브젝트에 오른쪽 방향을 가리키는 십자 무늬가 생기는데

해당 화살표 방향이 이동 및 회전 방향의 기준이 된다.

그렇기 때문에 해당 화살표만 돌려주고 ( Rotation 값 조절 )

회전한 각도에 따라 위치를 조절하면 매우 간단하게 캐릭터 방향으로 보낼 수 있다.

간단하게 하기 위해 45도 ( 탄젠트 45도는 1이다.)로 회전

캐릭터를 바라보게 하였으니 캐릭터 쪽으로 이동 시키는 기능만 설정하면 된다.

방금 Rotation 값을 45로 설정하여 아래와 같이 좌표계가 바뀌었다 보면 된다.

캐릭터쪽 방향으로 보내려면 X > 0의 속도를 주면 된다.

화살표 ( +X축 )가 캐릭터를 바라보게 하였으니 속도만 설정해주면 된다.

이동을 시키기 위해 Movement를 보니

Liner Velocity가 속도인 것 같고 위가 X고 아래가 Y 값인 것 같은데,

오른쪽에 값을 더 쓸 수 있게 해놨다.

공식 튜토리얼 영상을 보면 알겠지만

왼쪽에 적는 값은 기준 값, 오른쪽에 적는 값은 +-범위 값이다.

예를 들어 설명하자면

[ 50 ] ~ [ 10 ] 로 적는다면 40 ~ 60사이의 랜덤 값이 나온다.

일단 등속도로 설정해 두자.

추가 시킨 스포너 컴포넌트를 보면

누가봐도 생성시키는 빈도일 것 같은 ( 쿨타임 ) Spawn Rate가 있다.

재미있을 것 같으니 값을 랜덤으로 한번 줘보고,

아래의 Spawn Action은 "언제" 생성 시킬 것인가에 가까운데

어떤 조건에 따라 생성 시킬 것이 아니기 때문에 Permanent로 해준다.

이때까지만 해도

랜덤으로 생성되니 딱히 여러 씬을 둘 필요는 없겠거니 생각했다.

하지만

왜 같이 나오냐 X빡X게

짤에 등장하는 검은 점은 위에서부터

Spawn Rate를 5, 6, 7로 해놓은 것인데 ( 7만 랜덤 1 들어감 ) 세개 모두 시작하자마자 동시에 나온다.

쉽게 되나 싶었는데 역시나 고생하게 생겼다.

그래도 덕분에 Spawn Rate의 적용 방식을 알게 되었는데.

이렇게

시작하자마자 일단 생성 시키고

Spawn Rate 값만큼 기다린 뒤 생성 시키는 것을 반복한다.

결국 저기서 랜덤이나 차등을 줘봐야 첫발은 아무 의미가 없다!


그래서 일단

모든 Spawner 컴포넌트를 제거하고...

이동 및 생성은 나중에 하기로 했다.

1. 일단 캐릭터 쪽으로 가도록 만들어 놨다.

2. 씬 선택하고 ( 처음 생성하면 Start만 있음 ) 키보드 D만 누르면 복제가 되니

이렇게 씬을 양산하고 적 몇개는 빼주고 특정 조건 만족 시 랜덤으로 넘기면 되지 않을까?

하는 희망적인 생각을 했다... ( 씬 넘기는 과정도 매우 XX같았다. )

 

728x90

댓글