현재 구현하고 있는 Wall run은 Character movement mode를 Flying으로 설정하여 사용하고 있고

Wall run중에 땅에 닿으면 자동으로 해제를 하려고 했다.

 

기존에 착지 이벤트를 Landed를 override하여 사용하고 있어서

자동으로 되겠거니 했는데 안타깝게도

Flying모드에서는 Landed가 호출이 되지 않더라 =~=;;

 

Trace를 사용하여 하는 방법이 있겠지만 뭔가 따로 Trace를 쓰지 않는 섹시한 방법이 있지 않을까? 했다..

그래서 CharacterMovement를 보던 중에 뭔가 그럴듯한 함수가 있었다

 

CharacterMovement에 있는 FindFloor함수를 사용한다.

Capsule에 collision이 켜져있지 않으면 의미없다고 한다

 


ACharacter를 상속받은 클래스에서의 사용

첫번째 매개변수는 캡슐의 위치를 넣는다고 하는데 나는 캐릭터에 붙어있는 캡슐의 위치를 원하니까

GetActorLocation과 같은 위치이기 때문에 GetActorLocation를 넣어주었다.

 

두번째는 결과값이 담기는 구조체

 

세번째는 마지막 테스트 값을 사용할수있다 인데  아직은 잘 모르겠다.

 

IsNearlyZero의 0.007f는 Wall run중에 바닥에 닿으면 0.005정도 오차가 있었기에 0.007로 오차허용을 해주었다.

 


Wall run중에 깔끔하게 지면으로 내려간다 =~=

 

+ Recent posts