> For the complete documentation index, see [llms.txt](https://docs.sandbox.game/the-game-maker-academy_kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sandbox.game/the-game-maker-academy_kr/logic/message-system.md).

# 메시지

![](/files/-MiV3iV1S3lsV7xHdTYo)

메시지는 **액션**이 발생했음을 알리는 데 이용됩니다. 경험 내 **다른 오브젝트들이 이러한 메시지를 받아** 해당 오브젝트에 포함된 비헤이비어와 컴포넌트에 따라 특정 결과가 나타납니다.

로직이 액션에서 결과로 이어지는 **절차의 집합**이라 본다면, **트리거**는 로직을 **시작**하는 초기 액션, **태그**는 액션에 포함된 **오브젝트를 식별하는 도구**, **메시지**는 액션을 결과와 **연결**짓는 매개체라 할 수 있습니다. 마치 스위치로부터 전류가 흘러 전등에 빛이 들어오도록 하는 것과 같은 원리죠.

{% hint style="info" %}
메시지는 한 곳에서 다른 곳으로 **신호를 운반**하여 트리거가 발생했음을 확인하고 결과를 도출하도록 합니다.
{% endhint %}

### 메시지 사용하기

메시지 시스템은 **보기보다 어렵지 않습니다**. 한 번 이해하고 나면 경험에 한 층 더 깊이를 더해줄 것입니다.

일부 비헤이비어와 컴포넌트는 하나 이상의 **메시지를 '전송**'할 수 있습니다 *(보통 이를 '**Broadcasters(브로드캐스터)***'라 합니다).

![](/files/-MiV5nVMLUADIdGzCtqw)

일부 비헤이비어와 컴포넌트는 하나 이상의 메시지 수신을 **대기**합니다 (보통 이를 '***Listeners(리스너)***'라 합니다).

### 기본 메시지&#xD;

일부 비헤이비어와 컴포넌트는 다른 컴포넌트와 비헤이비어와 함께 작동하는 **사전 정의된 특정 메시지**를 이용합니다. 즉, 언제든 이러한 프리셋 메시지를 내가 원하는 대로 **수정**할 수 있다는 의미입니다.

예를 들어 '**Interact (상호작용)**' 메시지가 있습니다. 이는 오브젝트와 상호작용하기 위해 **E** 키를 눌렀을 때 *아바타*가 전송하는 **기본 메시지**입니다.

'**Interact**'는 플레이어가 E 키를 누를 때 '**전송**'되며, 기본적으로 일부 비헤이비어와 컴포넌트가 수신할 메시지로 이미 설정되어 있습니다.

**버튼**, **문** 비헤이비어와 **스피커** 컴포넌트는 '***Interact***' 메시지를 '*듣기*' 위해 '*Message Required (메시지 필요*)' 파라미터가 사전 설정되어 있습니다.

![](/files/-MiUjWyo1srRPhm_Hs5Z)

**Door(문)** 비헤이비어를 살펴보면, 몇 번의 클릭만으로 내 경험에 상호작용적으로 작동하는 문을 설치할 수 있습니다. 연관 오브젝트에서 E 키를 누르면 아바타가 **액션을 트리거**하여 **'Interact' 메시지를 전송**하고 Door 비헤이비어 파라미터가 **'Message Required (메시지 필요)' 메시지를 수신**한 다음 문이 열리는 애니메이션이 플레이됩니다.

![](/files/-MiUy87euGivd3ZKl4re)

**기본 메시지를 사용하고 싶지 않다면**, 내가 원하는대로 메시지를 커스텀할 수 있습니다.

### 커스텀 메시지 생성하기&#xD;

**메시지 생성**에는 두 가지 옵션이 있습니다. 두 가지 옵션 모두 변경할 비헤이비어 또는 컴포넌트 **메시지 파라미터**를 살펴보아야 합니다. 여기에서 **'ADD +'를 클릭**하여 새 메시지를 추가하거나, 이미 설정된 메시지를 덮어쓰고 싶다면 **현재 메시키를 클릭**합니다.&#x20;

![](/files/-MiV7O4cTVV5vAdBtBZd)

두 가지 경우 모두 사용 가능한 기존 메시지의 **드롭 다운 메뉴**가 표시되나 이를 클릭하지 말고 필드에 메시지를 입력합니다. 그러면 '**ADD + 입력한 텍스트**'라는 **초록색** 옵션이 나타나게 됩니다. 이를 **클릭**하면 필수 메시지로 설정됩니다.

### 기존 메시지 사용하기&#xD;

**기존 메시지**를 이용하려면 관련 컴포넌트나 비헤이비어로 이동하여 '**Message Required**'에 입력된 내용을 찾아 사용할 메시지의 이름을 입력합니다. 목록에는 기존의 모든 관련 메시지가 포함되어 있습니다. 그런 다음 원하는 내용과 **가장 잘 맞는 옵션**을 선택합니다.

![](/files/-MiVEqwNn-JHbKcEgp5N)

### &#xD;&#xD;메시지 삭제하기&#xD;

이 섹션에서는 두 가지 유형의 메시지 삭제에 대해 살펴보겠습니다. 하나는 *오브젝트*에서, 다른 하나는 **게임 메이커** 전체에서 삭제하는 방법입니다.

비헤이비어 또는 컴포넌트에서 메시지를 삭제하기 위해서는 관련 메시지의 오른편에 표시된 **'X' 마크를 클릭**합니다. 그러면 특정 오브젝트에서 메시지가 삭제됩니다.

![](/files/-MiV9HulZzfMDQYLS7fJ)

특정 메시지를 사용 중인 메시지 목록에서 삭제하려는 경우, 메시지가 '사용 중'인 것으로 감지되지 않으면 자동으로 삭제되는 것을 확인할 수 있습니다.

즉, **수동으로 목록에서 메시지를 삭제할 수 없으며** 경험에서 사용하지 않으면 **자동으로 삭제**된다는 의미입니다. 컴포넌트 또는 비헤이비어 파라미터에서 전송되거나 수신된 메시지로 나타나지 않으면 메시지는 목록에 포함되어 있지 않습니다.

{% hint style="info" %}
기본적으로 메시지를 'none (해당 없음)'으로 설정하는 것은 메시지를 비워두는 것과 같지 않습니다.
{% endhint %}

이제 게임 메이커에서 몇 가지 비헤이비어와 컴포넌트를 적용하고 서로 '**대화를 나누게**' 하여 메시지를 이용해 보세요.
