반응형
액터 생성(Spawn) 및 파괴(Destroy)
이번에는 **액터(Actor)**를 **생성(Spawn)**하고 **파괴(Destroy)**하는 방법에 대해 알아보겠습니다. 이는 게임플레이 중에 동적으로 오브젝트를 제어하는 매우 기본적인 방법입니다.
1. 액터를 생성하는 두 가지 방법
액터를 레벨에 추가하는 방법은 크게 두 가지가 있습니다.
A. 레벨에 직접 배치 (디자인 시)
- 만들어진 BP_LightPole과 같은 액터 파일을 드래그 앤 드롭하여 레벨에 원하는 위치에 배치합니다. (레벨 디자인이나 코인 배치 등에 사용)
- Alt 키를 누른 채 이동하면 액터를 **복제(Duplicate)**할 수 있습니다.
B. 게임플레이 중 동적 생성 (Spawn)

게임이 시작된 후 특정 조건이나 이벤트에 따라 액터를 생성하려면 블루프린트 노드를 사용해야 합니다.
- 레벨 블루프린트를 엽니다.
- Begin Play 이벤트 노드를 만듭니다.
- Delay 노드를 추가하고 시간을 3초로 설정하여 게임 시작 3초 후에 코드가 실행되도록 합니다.
- 지연 노드 뒤에 Spawn Actor from Class 노드를 추가합니다.

- Class: 생성할 액터의 클래스를 지정합니다. 검색창에 우리가 만든 액터 이름인 BP_LightPole을 검색하여 선택합니다.
- Spawn Transform (생성 변환): 액터를 어디에, 어떤 회전 및 크기로 생성할지 위치를 지정해야 합니다.

- Spawn Transform 설정:
- Make Transform 노드를 사용하여 위치(Location), 회전(Rotation), 크기(Scale) 값을 직접 입력할 수 있습니다.

- 또는, Spawn Transform 핀을 오른쪽 클릭하고 **Split Struct Pin (구조체 핀 분할)**을 선택하여 위치, 회전, 크기 값을 개별적으로 입력할 수도 있습니다.

- 변수로 승격(Promote to Variable): 가장 권장되는 방법은 Spawn Transform 핀을 오른쪽 클릭 →Promote to Variable을 선택하여 Pole Transform과 같은 이름의 변수로 만드는 것입니다.

- 변수를 컴파일하면 **기본값(Default Values)**을 설정할 수 있습니다.

- 예를 들어, 레벨의 바닥에 배치하기 위해 **Z 위치(Location Z)**를 15와 같이 적절한 값으로 설정합니다. (이 값은 액터의 피벗 포인트를 기준으로 합니다.)
- Collision Handling Override (충돌 처리 재정의): **Always Spawn (항상 생성)**을 선택하면, 해당 위치에 다른 오브젝트가 있더라도 액터를 강제로 생성합니다.
- 테스트: Play를 클릭하면, 3초 후에 지정된 위치에 라이트 폴 액터가 생성됩니다.
2. 액터 파괴(Destroy)하기
액터를 게임플레이 중에 제거하고 싶을 때(예: 캐릭터가 코인을 획득하여 코인을 제거할 때)는 Destroy Actor 노드를 사용합니다.
- 지연 노드 추가: Spawn Actor 노드 뒤에 다시 Delay 노드를 추가하고 시간을 3초로 설정합니다. (총 6초 후에 파괴됨)
- Destroy Actor (액터 파괴) 노드 추가: 지연 노드 뒤에 Destroy Actor 노드를 추가합니다.

- 파괴 대상 (Target) 지정: Destroy Actor 노드는 어떤 액터를 파괴할지 지정하는 Target (대상) 입력 핀이 필요합니다. 우리는 방금 생성한 라이트 폴을 파괴해야 합니다.
- 액터 변수로 저장:
- Spawn Actor from Class 노드의 Return Value (반환 값) 핀(방금 생성된 액터 객체 자체)을 오른쪽 클릭 → Promote to Variable을 선택합니다.

- 이 변수 이름을 Light Pole이라고 지정합니다. (이것이 바로 BP_LightPole 타입의 액터 변수입니다.)

- 결과: 이제 액터가 생성될 때, 해당 액터 자체가 이 Light Pole 변수에 저장됩니다.
- 파괴 연결:
- 저장된 Light Pole 변수 (Get 노드)를 그래프로 드래그합니다.

- 이 변수를 Destroy Actor 노드의 Target 핀에 연결합니다.
- 최종 테스트: Play를 클릭합니다.
- 3초 후: 라이트 폴이 생성됩니다.
- 추가 3초 후 (총 6초): 라이트 폴이 파괴되어 사라집니다.
이것이 게임 내에서 액터를 동적으로 생성하고 파괴하는 기본적인 방법입니다.
반응형
'Unreal Engine' 카테고리의 다른 글
| Unreal Engine 블루프린트 액터 (Blueprint Actor) 소개 (0) | 2025.11.01 |
|---|---|
| Unreal Engine 폰(Pawn) 클래스와 캐릭터(Character) 클래스 설명 (0) | 2025.11.01 |
| Unreal Engine 플레이어 컨트롤러 (Player Controller) 클래스와 게임 모드 (Game Mode) 클래스 설명 (0) | 2025.11.01 |
| Unreal Engine 블루프린트 클래스 (Blueprint Classes) 소개 - 액터(Actor) 클래스 (0) | 2025.11.01 |
| Unreal Engine 열거형, 멀티 게이트, Switch 활용 예시: 무작위 과일 먹기 (0) | 2025.10.31 |