1. RigidBody를 사용할 경우 KinematicBody에서와 같은 is_on_floor(), is_on_wall(), 그리고 is_on_celling()과 같은 함수를 지원하지 않는다.

2. RigidBody를 사용할 경우, 바닥을 체크할 수 있는 방법은 RayCast와 Area를 이용하는 방법이 있다.

3. RayCast를 이용하여 바닥을 체크할 경우, 위의 이미지와 같은 위치에 서 있을 경우 점프를 할 수 없는 경우가 생긴다.(바닥 상태여야만 점프를 할 수 있게 코딩을 한 경우에 해당)

4. 3번과 같은 경우는 RayCast를 여러개 사용하면 해결할 수 있다.

 

결론 : 바닥상태 체크는 오히려 Area를 사용하는 것이 더 좋을 것 같다.(3.1에서 RayCast Shape가 추가될 예정이라 위와 같은 문제가 해결될 수도 있슴.)

1. _physics_process()함수 안에 lerp()함수의 결과값을 RigidBody에 바로 적용시키지 말아야 한다. 적용시에 Snake, Frame drop이 일어나며, 심한 경우에는 Jittering까지 일어난다.

2. 실시간으로 lerp()함수의 결과값을 구하여 RigidBody에 적용하여 물리적 특성을 변경하고자 할 경우, _physics_process()함수 안에서 lerp()함수를 사용하여 결과값을 얻은 후에 _integrate_forces()함수 안에서 적용시켜야 한다.

+ Recent posts