Cộng đồng Hỏi & Đáp của Inflearn
상자에 상호작용으로 아이템을 얻는 경우
Viết
·
106
0
안녕하세요.
지금은 상자가 오버랩 판정을 했을 때 들어온 액터가 캐릭터라면 자동으로 아이템을 습득하기 때문에, 아이템에서 인터페이스를 사용해 캐릭터에 접근하고 있는데요.
만약 F 키를 눌러 상호작용으로 상자를 열어 아이템을 습득한다고 가정했을 때는 캐릭터 IA_Interaction과 같은 인풋 액션을 추가해서 함수를 바인드하고, 그 함수에서 아이템으로 접근하면 될까요?
Quiz
액터 컴포넌트를 사용하여 캐릭터 스탯을 관리하는 주된 이유는 무엇일까요?
액터 자체에 모든 기능을 구현하기 위해서
스탯과 UI 로직을 분리하여 모듈성을 높이기 위해서
컴포넌트가 트랜스폼 정보를 가지기 때문에
틱 함수 없이 매 프레임 스탯을 업데이트하기 위해서
Câu trả lời 3
0
안녕하세요. 답신이 늦었습니다.
네 말씀하신대로 상호작용해야하는 대상이 많아지면 캐릭터에서 처리하는 것보다 상자, NPC 등에서 캐릭터에게 상호작용을 전달하는 형태가 좋아 보입니다.
보다 좋은 구조에 대해 관심이 있으시면 파트4 강의인 게임플레이 어빌리티시스템을 참고해주시면 좋습니다.
0
캐릭터 클래스에서 핸들링하게 되었을 때, 이 아이템이 무엇인지 판단해야 하는 로직이 캐릭터에 있는 것이 맞는지 의문입니다.
AI 인턴님이 말씀해주신
void AYourCharacter::HandleInteraction()
{
// 상호작용을 처리하는 로직 (예: 근처의 상자를 찾아 아이템을 습득)
}
의 경우, 이것이 상자라면 -> 아이템 습득
이것이 NPC라면 -> 대화 상호작용 등의 서로 다른 행동을 해야하는데,
캐스팅이 많아지면 지저분해 질 것 같고,
이 경우에는 인터랙션 인터페이스를 캐릭터가 아니나 상자, NPC에게 상속하게 하여 처리하는 것이 맞을까요?
0
안녕하세요, 인프런 AI 인턴입니다. 섬세한 늑대님.
언리얼 엔진에서 상호작용(Interaction)의 방식으로 아이템을 습득하도록 구현하려는 경우, 말씀하신 대로 특정 입력(예: F 키)를 사용하여 상자와 상호작용하는 시스템을 구축할 수 있습니다. 이러한 구현 방식은 플레이어의 의도에 따라 아이템을 획득할 수 있게 하여 게임플레이의 유연성과 사용자 경험을 향상시킬 수 있습니다.
당신의 프로젝트에서 진행할 수 있는 방법에 대해 간단히 설명 드리겠습니다:
Input Action 설정:
- 프로젝트 설정(Project Settings)에서
Input범주로 가서IA_Interaction과 같은 새로운 Input Action을 추가합니다. 여기에서 F 키를 바인딩합니다.
- 프로젝트 설정(Project Settings)에서
캐릭터 클래스에서 Input Action 핸들링:
- 캐릭터 클래스에
SetupPlayerInputComponent메서드를 오버라이드 하여IA_InteractionInput Action을 처리하는 함수를 바인딩합니다.
”`cpp
void AYourCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
Super::SetupPlayerInputComponent(PlayerInputComponent);PlayerInputComponent->BindAction(“IA_Interaction”, IE_Pressed, this, &AYourCharacter::HandleInteraction);
}- 캐릭터 클래스에
void AYourCharacter::HandleInteraction()
{
// 상호작용을 처리하는 로직 (예: 근처의 상자를 찾아 아이템을 습득)
}
“`
- 상호작용 처리 로직 구현:
HandleInteraction함수에서 현재 상호작용 가능한 상자나 오브젝트를 식별하고 아이템을 습득하는 로직을 구현합니다. 이때, 상호작용 가능한 상자와의 거리나 시야 등을 계산하여 실제로 상호작용할 수 있는지 체크하는 방법을 사용할 수 있습니다.
- 상자를 인터페이스를 통해 제어하는 경우, 해당 인터페이스에 적절한 함수를 추가하여 상자와 상호작용하도록 할 수 있습니다.
더 자세한 구현 방법에 대해서는, 아래의 관련 질문과 답변을 참고하시면 도움이 될 것입니다:
이러한 절차를 통해 F 키를 눌러 특정 상호작용을 통해 아이템을 습득할 수 있는 구조를 설계하게 되면, 플레이어가 능동적으로 게임 내 상호작용을 할 수 있게 됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





