본문 바로가기
Unreal Engine

Unreal Engine 이벤트(Events)의 이해 및 활용

by hfgraphic 2025. 10. 14.
반응형

 

 

이벤트(Events)의 이해 및 활용

 

자, 이제 **이벤트(Events)**에 대해 이야기해 봅시다. 그래프의 모든 내용을 삭제한 상태에서, 우리가 지금까지 사용했던 Begin Play 이벤트를 만들려면 단순히 **"begin play"**라고 작성하면 됩니다.

 

1. 이벤트의 기본 원칙

  • 이벤트 생성: 마우스 오른쪽 버튼을 클릭하고 **"event"**를 작성하면 추가할 수 있는 다양한 이벤트들이 나타납니다. 이벤트들은 옆에 작은 화살표가 있습니다.
  • 시각적 특징: 이벤트는 빨간색입니다. 코드에서 빨간색을 본다면 그것은 이벤트라는 뜻입니다.
  • 역할: 이벤트는 코드를 작동시키는 데(drive code) 필요합니다. 이벤트 없이는 어떤 코드도 실행할 수 없습니다.

예를 들어, 우리가 이전에 만든 바닥(Floor)의 위치를 변경하는 함수와 메시지를 출력하는 Print String 함수가 있다고 가정합시다.

  • 만약 이 함수들이 이벤트에 연결되어 있지 않고 (Alt 키를 누른 채 실행 핀을 클릭하면 연결 해제됨), Begin Play 이벤트가 없다면, 게임을 Play해도 아무 일도 일어나지 않습니다. 왜냐하면 게임에게 언제 이 코드를 실행하라고 명령하지 않았기 때문입니다.
  • 코드가 실행되려면 반드시 이벤트에 연결해야 합니다.

 

2. 표준 이벤트 (Standard Events)

 

 

A. Begin Play

 

  • 이것은 표준 이벤트이며, 게임을 Play하기 시작할 때 항상 실행됩니다.

 

B. Event Tick (이벤트 틱)

 

  • 다음은 Event Tick입니다. 이것은 약간 위험할 수 있지만, 유용합니다.
  • Event Tick은 프레임마다(for every frame) 호출됩니다. 즉, 코드를 초당 60번 실행할 것입니다.
  • 주의: Event Tick을 계속 사용하면 게임 최적화에 악영향을 주어 게임에 **랙(lag)**이 발생할 수 있습니다.
  • 권고: 정말, 정말, 정말 필요할 때가 아니면 이 이벤트를 사용하지 않도록 노력해야 합니다.
  • 예시: Event Tick에 Print String을 연결하고 Play를 클릭하면, 메시지가 초당 60번 출력되는 것을 볼 수 있습니다.

 

C. 오버랩 이벤트

  • **Actor Begin Overlap (액터 오버랩 시작)**과 **Actor End Overlap (액터 오버랩 종료)**와 같은 이벤트가 있습니다.
  • 뷰포트에서 **바닥(Floor)**을 선택한 상태에서 마우스 오른쪽 버튼을 클릭하고 **"Add event for Floor"**를 선택하면, Collision (충돌) 섹션에서 이러한 오버랩 이벤트들을 찾을 수 있습니다.
  • 이벤트는 무언가가 바닥과 오버랩을 시작할 때 또는 오버랩을 종료할 때 무엇을 할지 정의합니다.

 

3. 커스텀 이벤트 (Custom Events)

다음으로, 매우 중요하며 항상 사용하게 될 것은 **커스텀 이벤트(Custom Events)**를 생성하는 것입니다.

  1. 생성: 마우스 오른쪽 버튼을 클릭하고 **"custom"**을 작성한 다음 **'Add Custom Event'**를 클릭합니다.
  2. 이름 지정: 이 이벤트에 이름을 지정할 수 있습니다. 예를 들어, **'AddCoins' (코인 추가)**라고 하겠습니다.
  1. 로직 구현: 이 이벤트를 플레이어가 코인 위를 걸었을 때 'Amount of Coins' 변수(정수)에 코인을 추가하는 데 사용할 수 있습니다.
    • **'Amount of Coins'**를 가져와 '+' (덧셈) 연산자로 5를 더합니다.
    • Alt 키를 누른 채 Set 'Amount of Coins' 노드를 가져와서, 이 **새로운 값 (205)**을 설정합니다.
  1. 이벤트 호출 (Calling the Event):
    • 중요: 커스텀 이벤트를 만들었지만, 게임에게 언제 이 코드를 실행하라고 알려주지 않았습니다. 이 코드는 아직 어디에서도 실행되고 있지 않습니다.
    • 이 코드를 실행하려면 어딘가에서 이 이벤트를 **호출(Call)**해야 합니다. **'Calling the event'**라고 부릅니다.
    • 호출 방법: 호출하고 싶은 곳 (가장 논리적인 곳은 Begin Play입니다)에서 이벤트의 이름인 **'AddCoins'**를 작성하고 클릭합니다.
    • 실행 흐름: 이제 게임을 시작하면, Begin Play는 'AddCoins' 이벤트를 호출하고, 실행 흐름은 이 이벤트로 이동하여 코인 5개를 추가하고 변수를 설정합니다.
  2. 예시 2: 메시지 이벤트
    • **'CoinsMessage' (코인 메시지)**라는 다른 커스텀 이벤트를 만듭니다.
    • 이 이벤트 안에서 **'Amount of Coins'**의 새로운 값을 Print String으로 출력합니다.
    • 호출: 'AddCoins' 이벤트의 코인 추가 및 설정이 끝난 직후에 **'CoinsMessage'**를 호출하는 것이 논리적입니다.
    • 최종 흐름: Begin Play → 'AddCoins' 호출 → 코인 추가 → 'CoinsMessage' 호출 → 새로운 코인 값(205) 출력.
    • 결론: 이처럼 커스텀 이벤트를 만들어 코드를 모듈화하고, 원하는 곳에서 이름을 호출하여 실행할 수 있습니다. 이벤트를 호출해야만 코드가 작동한다는 것을 기억하세요.

 

반응형