[햄] 작업일기

230714 상호작용 중임을 판단하기

리리쟝 2023. 7. 14. 18:03

상호작용 중일때는 상호작용 가능 텍스트(Press E to Interact)가 뜨지 않도록 처리하려면

상호작용 중일 때에는 isSucessInteract 를 false로 뱉도록 하려고 했는데

 

 

Interact() 에 isSuccessInteract를 넣어줘서 이 때는 false로,

EndInteract()에서는 true로 뱉도록 하려고 했는데

 

생각해보니 character.cpp의 tick에서 항상 상호작용 가능 여부를 체크하고 있기 때문에 이렇게 처리해주면 한 번 false로 변경되었어도 금방 다시 true로 갱신되는 것 같다.

 

 

실제로 해결한 방법)
상호작용 가능 여부를 체크하는 과정에서 쓰이는 InteractableObj의 bool IsInteractable() 에서 (해당 함수가 true를 반환하면 상호작용 가능, 반대는 불가능. )

해당 물체가 상호작용 중임을 나타내는 bool IsInteracting를 사용한다

IsInteracting은 디폴트로 false로 되어 있고, E키를 눌러 Interact() 함수가 작동하게 되면 IsInteracting이 true로 바뀐다.

IsInteractable 에서는 IsInteracting==false 를 반환하여 상호작용 가능 여부를 판단하게 된다. (IsInteracting이 false 이면 true 반환)