집게사장의 꿈

[영혼들] 아이템 상호작용 본문

제작/영혼들

[영혼들] 아이템 상호작용

Krapboss 2024. 8. 2. 00:17

기본적인 구조

모든 아이템은 InteractionObjects 클래스의 파생클래스를 상속 받고
InteractionObjects로부터 파생된 클래스는 각 아이템 종류[Interactiontype] 별로 필요한 함수를 정의한다.

클래스 다이어 그램
실제 파생 클래스를 상속받은 클래스 예시

 

아이템의 종류

public enum InteractionType
{
    Throwing = 0,      //단순히 던지는 오브젝트
    Get,                //획득하는 오브젝트
    Self,               //스스로 상호작용이 가능함. // musicBox
    Expand,             //다른 오브젝트들과 상호작용 가능 //잡을 수 없습니다.
    Continues,          //지속적인 상호작용을 해야 되는 오브젝트
    EquipAuto,           //소지한 상태에서 지속적인 자동으로 작동한다.
    None = -1                //사용할 수 없는 상태가 되었을 때 표시하지 않는다.
}

 

아이템 상호작용 방법

아이템의 상호작용의 종류

*Continues
휠 값을 입력받아 사용하는 오브젝트의 경우

*Expand
고정된 오브젝트
throwing과 같은 오브젝트와 상호작용이 가능함

*상호작용 방법
각자의 이름을 판단하여 적용

 

상호작용의 예시

아래의 예시는 
Obj_WireBox : Expand
ThrowingObject : Throwing
두 오브젝트를 나타내며,
Obj_WireBox 인스펙터 TargetObjectName에 "Hammer"가 상호작용 가능한 Name임을 나타냅니다.

해머와 전압박스의 경우

해머
전압박스

 

예시 설명
전압박스는 망치를 들고 있어야 상호작용이 가능하지만, 첫 도입 부분에 망치가 없이 E키를 눌러 상호작용을 하려고 하여 동작하지 않았다.
그 다음 장면으로 떨어진 망치를 주워 상호작용하니 이벤트가 실행이 되었다.

예시