이전에 AI에 시각 감각을 추가해 플레이어를 볼 수 있었다. 이번 시간에는 플레이어가 있는 환경에 따라 AI가 볼 수 없게 만들어 볼것이다. 예시를 들자면 풀숲에 들어가면 은신을 할 수 있는 기능을 생각하면 된다.
Movement State
enum에 stealth
를 추가해 풀숲에 들어가면 CurrentMovementState = E_Stealth
로 설정UENUM(BlueprintType)
enum class EMovementState : uint8
{
E_Walking = 0 UMETA(DisplayName = "Walking"),
E_OnLedge UMETA(DisplayName = "OnLedge"),
E_Hanging UMETA(DisplayName = "Hanging"),
E_Covering UMETA(DisplayName = "Covering"),
E_Stealthing UMETA(DisplayName = "Stealthing"), //추가
E_Falling UMETA(DisplayName = "Falling"),
};
AI의 sight Perception은visible
Trace Type에 Block 된다. 따라서 플레이어에 visible
trace가 도달하지 못한다면 AI는 플레이어를 보지 못한다.
결론적으로 Stealth State일 때 Player 주변에 visible
trace를 block하는 object를 활성화시켜 AI의 sight를 막으면 된다.