강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

섬세한 늑대님의 프로필 이미지
섬세한 늑대

작성한 질문수

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

8강 아이템 시스템

상자에 상호작용으로 아이템을 얻는 경우

작성

·

50

0

안녕하세요.

 

지금은 상자가 오버랩 판정을 했을 때 들어온 액터가 캐릭터라면 자동으로 아이템을 습득하기 때문에, 아이템에서 인터페이스를 사용해 캐릭터에 접근하고 있는데요.

 

만약 F 키를 눌러 상호작용으로 상자를 열어 아이템을 습득한다고 가정했을 때는 캐릭터 IA_Interaction과 같은 인풋 액션을 추가해서 함수를 바인드하고, 그 함수에서 아이템으로 접근하면 될까요?

답변 3

0

이득우님의 프로필 이미지
이득우
지식공유자

안녕하세요. 답신이 늦었습니다.
네 말씀하신대로 상호작용해야하는 대상이 많아지면 캐릭터에서 처리하는 것보다 상자, NPC 등에서 캐릭터에게 상호작용을 전달하는 형태가 좋아 보입니다.
보다 좋은 구조에 대해 관심이 있으시면 파트4 강의인 게임플레이 어빌리티시스템을 참고해주시면 좋습니다.

0

캐릭터 클래스에서 핸들링하게 되었을 때, 이 아이템이 무엇인지 판단해야 하는 로직이 캐릭터에 있는 것이 맞는지 의문입니다.

 

AI 인턴님이 말씀해주신

void AYourCharacter::HandleInteraction()
{
// 상호작용을 처리하는 로직 (예: 근처의 상자를 찾아 아이템을 습득)
}

의 경우, 이것이 상자라면 -> 아이템 습득

이것이 NPC라면 -> 대화 상호작용 등의 서로 다른 행동을 해야하는데,

캐스팅이 많아지면 지저분해 질 것 같고,

이 경우에는 인터랙션 인터페이스를 캐릭터가 아니나 상자, NPC에게 상속하게 하여 처리하는 것이 맞을까요?

 

0

안녕하세요, 인프런 AI 인턴입니다. 섬세한 늑대님.

언리얼 엔진에서 상호작용(Interaction)의 방식으로 아이템을 습득하도록 구현하려는 경우, 말씀하신 대로 특정 입력(예: F 키)를 사용하여 상자와 상호작용하는 시스템을 구축할 수 있습니다. 이러한 구현 방식은 플레이어의 의도에 따라 아이템을 획득할 수 있게 하여 게임플레이의 유연성과 사용자 경험을 향상시킬 수 있습니다.

당신의 프로젝트에서 진행할 수 있는 방법에 대해 간단히 설명 드리겠습니다:

  1. Input Action 설정:

    • 프로젝트 설정(Project Settings)에서 Input 범주로 가서 IA_Interaction과 같은 새로운 Input Action을 추가합니다. 여기에서 F 키를 바인딩합니다.
  2. 캐릭터 클래스에서 Input Action 핸들링:

    • 캐릭터 클래스에 SetupPlayerInputComponent 메서드를 오버라이드 하여 IA_Interaction Input Action을 처리하는 함수를 바인딩합니다.

    ”`cpp
    void AYourCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
    {
    Super::SetupPlayerInputComponent(PlayerInputComponent);

    PlayerInputComponent->BindAction(“IA_Interaction”, IE_Pressed, this, &AYourCharacter::HandleInteraction);
    }

void AYourCharacter::HandleInteraction()
{
// 상호작용을 처리하는 로직 (예: 근처의 상자를 찾아 아이템을 습득)
}
“`

  1. 상호작용 처리 로직 구현:
    • HandleInteraction 함수에서 현재 상호작용 가능한 상자나 오브젝트를 식별하고 아이템을 습득하는 로직을 구현합니다. 이때, 상호작용 가능한 상자와의 거리나 시야 등을 계산하여 실제로 상호작용할 수 있는지 체크하는 방법을 사용할 수 있습니다.
    • 상자를 인터페이스를 통해 제어하는 경우, 해당 인터페이스에 적절한 함수를 추가하여 상자와 상호작용하도록 할 수 있습니다.

더 자세한 구현 방법에 대해서는, 아래의 관련 질문과 답변을 참고하시면 도움이 될 것입니다:

이러한 절차를 통해 F 키를 눌러 특정 상호작용을 통해 아이템을 습득할 수 있는 구조를 설계하게 되면, 플레이어가 능동적으로 게임 내 상호작용을 할 수 있게 됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

섬세한 늑대님의 프로필 이미지
섬세한 늑대

작성한 질문수

질문하기