[햄] 작업일기
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 반환)