경사면에서도 매끄럽게 이동할 수 있도록 코드를 짜다가 막히는 부분이 있어 질문드립니다.
경사 판정과 보정에 대해서는 사진으로 올려놨습니다.
대부분의 경우에 잘 작동하지만 이동 중에 경사가 꺾이는 경우에 문제가 생겼습니다.
예를 들면, 경사가 10도인 곳에서 20도인 곳으로 이동할 때, 10도를 기준으로 보정된 속도가 20도인 곳으로 넘어가기 직전까지도 적용되어 잠시 공중에 떠버리는 문제입니다.
영상에서 경사가 꺾이는 지점에서 체공 상태 애니메이션이 튀어나오는게 이것 때문인데, 이게 굉장히 거슬리더라구요.
레이캐스트로 진행 경로를 예측해서 아래로 눌러주거나 스냅하는 것도 시도해봤는데, 어중간하게 눌러서는 해결되지도 않는데다가 예측을 정말 정확하게 해주지 않으면 경사 주변을 스치기만 해도 보정이 적용되어서 빨려들어가는 현상이 계속 발생했습니다.
고려할 부분이 너무 많아지다 보니 오히려 방향성을 잃는 느낌이었어요.
Unity6 신기능 슬라이드도 써봤는데 이건 너무 구려서 일찌감치 포기했습니다.
어떤 방식으로 해결하면 좋을지 자유롭게 의견 주시면 감사드리겠습니다.
영상보니까 아래서 위로 올라가는건 괜찮은데 위에서 아래로 내려올 때 점프 상태랑 런 상태가 바뀌면서 애니메이션이 교체되는 것 같음 이럴 땐 바닥을 체크하는 거리를 좀 늘리면 어느정도 해결됨
잠시 공중에 뜨는 문제는 어쩔 수 없지만 "체공 상태 애니메이션이 튀어나오는게" << 이 문제는 확실하게 잡을 수 있을거임
@디시콘쓸려고만듦 이게 경사에서는 레이캐스트를 길게쏴서 판정하는게 좀 문제가 있더라구요. 실제 콜라이더 접촉면과 레이캐스트 충돌지점이 달라지는 상황이 많아서 각도 보정이 잘못 들어가거나 바닥 판정이 정확하지 않은 문제가 있었습니다. 근본적인 문제를 해결하고 싶은 마음이 크긴 하지만 너무 늘어지면 애니메이션 문제만 해결하고 넘어가는것도 고려해야겠네요
낙하 애니메이션이 있다면 밑으로 경사면에서 낙하애니메이션이 나오면서 자연스러운 슬라이딩 가능해집니다. 참고하세요.
낙하 애니메이션 조건을 velocityY가 마이너스일때와 허공에있을때 조건 넣으면 됩니다.
낙하 애니메이션 있고 조건도 설정되어 있습니다. 체공 판정이 잠깐 생기면서 낙하 애니메이션이 튀어나오는게 문제인 상황입니다.
걷기 모션 -> 공중 체공 -> 0.1초 이후 -> (아직 체공 중) ? (체공 모션으로 변경) : (걷기 모션 유지)
애니메이터 ExitTime 0.1로 설정해봤는데 이동이 정말 깔끔해지네요. 의견 감사드립니다
나도 예전에 비슷한 경험 있었는데, 나는 ray를 여러 개 쏴서 대강 넘어갔음. 얼마나 비슷한 상황인지는 모르겠는데 그리고 애니메이션은 애니메이션의 전환 자체에 약간 딜레이를 주면 얼추 될듯? 기존의 체공 판정 자체가 얼마나 오래 지속되었냐 등으로
애니메이터 ExitTime을 설정해보니 매끄럽게 넘어가네요. 공중에 뜨는 현상 자체는 다중 레이캐스트 조정해가면서 예외상황 발생하는대로 해결해나가는 수밖엔 없나보네여..
걍 충돌 노말에 수직으로 움직이면 되잖아