본문 바로가기
Unreal Engine

Unreal Engine 액터 생성(Spawn) 및 파괴(Destroy)

by hfgraphic 2025. 11. 1.
반응형

 

액터 생성(Spawn) 및 파괴(Destroy)

 

이번에는 **액터(Actor)**를 **생성(Spawn)**하고 **파괴(Destroy)**하는 방법에 대해 알아보겠습니다. 이는 게임플레이 중에 동적으로 오브젝트를 제어하는 매우 기본적인 방법입니다.


 

1. 액터를 생성하는 두 가지 방법

 

액터를 레벨에 추가하는 방법은 크게 두 가지가 있습니다.

 

A. 레벨에 직접 배치 (디자인 시)

 

  • 만들어진 BP_LightPole과 같은 액터 파일을 드래그 앤 드롭하여 레벨에 원하는 위치에 배치합니다. (레벨 디자인이나 코인 배치 등에 사용)
  • Alt 키를 누른 채 이동하면 액터를 **복제(Duplicate)**할 수 있습니다.

 

B. 게임플레이 중 동적 생성 (Spawn)

게임이 시작된 후 특정 조건이나 이벤트에 따라 액터를 생성하려면 블루프린트 노드를 사용해야 합니다.

  1. 레벨 블루프린트를 엽니다.
  2. Begin Play 이벤트 노드를 만듭니다.
  3. Delay 노드를 추가하고 시간을 3초로 설정하여 게임 시작 3초 후에 코드가 실행되도록 합니다.
  4. 지연 노드 뒤에 Spawn Actor from Class 노드를 추가합니다.
  • Class: 생성할 액터의 클래스를 지정합니다. 검색창에 우리가 만든 액터 이름인 BP_LightPole을 검색하여 선택합니다.
  • Spawn Transform (생성 변환): 액터를 어디에, 어떤 회전 및 크기로 생성할지 위치를 지정해야 합니다.
  1. 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 (항상 생성)**을 선택하면, 해당 위치에 다른 오브젝트가 있더라도 액터를 강제로 생성합니다.
  1. 테스트: Play를 클릭하면, 3초 후에 지정된 위치에 라이트 폴 액터가 생성됩니다.

 

2. 액터 파괴(Destroy)하기

 

액터를 게임플레이 중에 제거하고 싶을 때(예: 캐릭터가 코인을 획득하여 코인을 제거할 때)는 Destroy Actor 노드를 사용합니다.

  1. 지연 노드 추가: Spawn Actor 노드 뒤에 다시 Delay 노드를 추가하고 시간을 3초로 설정합니다. (총 6초 후에 파괴됨)
  2. Destroy Actor (액터 파괴) 노드 추가: 지연 노드 뒤에 Destroy Actor 노드를 추가합니다.
  1. 파괴 대상 (Target) 지정: Destroy Actor 노드는 어떤 액터를 파괴할지 지정하는 Target (대상) 입력 핀이 필요합니다. 우리는 방금 생성한 라이트 폴을 파괴해야 합니다.
  2. 액터 변수로 저장:
  • Spawn Actor from Class 노드의 Return Value (반환 값) 핀(방금 생성된 액터 객체 자체)을 오른쪽 클릭  Promote to Variable을 선택합니다.

 

  • 이 변수 이름을 Light Pole이라고 지정합니다. (이것이 바로 BP_LightPole 타입의 액터 변수입니다.)
  • 결과: 이제 액터가 생성될 때, 해당 액터 자체가 이 Light Pole 변수에 저장됩니다.
  1. 파괴 연결:
  • 저장된 Light Pole 변수 (Get 노드)를 그래프로 드래그합니다.
  • 이 변수를 Destroy Actor 노드의 Target 핀에 연결합니다.
  1. 최종 테스트: Play를 클릭합니다.
  • 3초 후: 라이트 폴이 생성됩니다.
  • 추가 3초 후 (총 6초): 라이트 폴이 파괴되어 사라집니다.

 

이것이 게임 내에서 액터를 동적으로 생성하고 파괴하는 기본적인 방법입니다.

 

반응형