그 작은 수준이 몇승 이하로 떨어지면이겠지 0.14 차이인데 노말라이즈 안나올리가 있겠음?
익명(121.139)2024-10-16 00:30:00
답글
맞다 크기 기준 -5승이하 기준인 것 같다
글쓴 ㅇㅇ(61.72)2024-10-16 00:38:00
답글
안나오는 경우가 반드시 생깁니다.
ㅇㅇ 2(121.157)2024-10-16 08:03:00
벡터 계산할때는 매 순간 계산할꺼면 첫머리에 벡터의 크기가 목적지까지 도달했는가를 검사해야 함. 그렇지 않으면 운좋으면 진동으로 끝나고 운나쁘면 무한대 에러뜸.
ㅇㅇ 2(121.157)2024-10-16 08:02:00
답글
답변 고맙다. "벡터의 크기가 목적지까지 도달했는가" 이거 좀만 보충 설명해줄 수 있음?
글쓴 ㅇㅇ(61.72)2024-10-16 10:00:00
답글
프레임수를 고정으로 했다고해도 그렇지만 매 프레임 사이간격의 시간이 t라고 하고, 노말벡터는 방향을 알려주는 벡터임, 즉 노말벡터는 1초(단위시간)에 이동하는 거리를 의미하므로 시간 t를 곱해줘야 해당 프레임의 이동거리가 나오는건 알꺼라고 보면, 결국 해당 프레임에 갈수있는 거리 = v*t >= (목적지위치-현위치)벡터의 크기 이면 이동을 계산하는게 아니라 현위치=최종목적지가 되면 0벡터를 안쓸 수 있음.
ㅇㅇ 2(121.157)2024-10-16 10:15:00
답글
결론은 아무리 컴파일러가 좋아졌다고해도 결국은 예외처리없이 진행하면 과거 컴파일러 기준으론 뻑이나는거고 현재 컴파일러 기준으론 버그가 발생하는거임. 솔직히 말하자면 과거에 뻑나는게 버그찾기는 더 쉬움. 특히 게임에선 이런 위치에 전부 예외처리해줘야함. 좋은 개발자의 기준은 예외처리를 얼마나 잘하는가에 있다고해도 과언은 아니지
ㅇㅇ 2(121.157)2024-10-16 10:17:00
답글
특히 벡터같은 실수형을 사용할때는 더욱 예외처리에 신경써야함
ㅇㅇ 2(121.157)2024-10-16 10:18:00
답글
내가 도착 확인할 때 if(목적지 거리 < 이동속도 * Time.fixedDeltaTime) 일때 도착으로 처리했는데, 이게 딲 게이가 말한거지? 고맙다.
너가 먼가 잘못한거임
https://docs.unity3d.com/ScriptReference/Vector3-normalized.html
너무
작으면 Vector3.zero 반환한다고 되어 있긴한데..
거리랑 같이 (목적지 - 내위치).nomarlized 이거 디버그 찍은거라 잘못할 것도 없는거 같은데
목적지랑 내위치도 로그 찍어보셈
게이가 옳았다.. 고맙다.
그 작은 수준이 몇승 이하로 떨어지면이겠지 0.14 차이인데 노말라이즈 안나올리가 있겠음?
맞다 크기 기준 -5승이하 기준인 것 같다
안나오는 경우가 반드시 생깁니다.
벡터 계산할때는 매 순간 계산할꺼면 첫머리에 벡터의 크기가 목적지까지 도달했는가를 검사해야 함. 그렇지 않으면 운좋으면 진동으로 끝나고 운나쁘면 무한대 에러뜸.
답변 고맙다. "벡터의 크기가 목적지까지 도달했는가" 이거 좀만 보충 설명해줄 수 있음?
프레임수를 고정으로 했다고해도 그렇지만 매 프레임 사이간격의 시간이 t라고 하고, 노말벡터는 방향을 알려주는 벡터임, 즉 노말벡터는 1초(단위시간)에 이동하는 거리를 의미하므로 시간 t를 곱해줘야 해당 프레임의 이동거리가 나오는건 알꺼라고 보면, 결국 해당 프레임에 갈수있는 거리 = v*t >= (목적지위치-현위치)벡터의 크기 이면 이동을 계산하는게 아니라 현위치=최종목적지가 되면 0벡터를 안쓸 수 있음.
결론은 아무리 컴파일러가 좋아졌다고해도 결국은 예외처리없이 진행하면 과거 컴파일러 기준으론 뻑이나는거고 현재 컴파일러 기준으론 버그가 발생하는거임. 솔직히 말하자면 과거에 뻑나는게 버그찾기는 더 쉬움. 특히 게임에선 이런 위치에 전부 예외처리해줘야함. 좋은 개발자의 기준은 예외처리를 얼마나 잘하는가에 있다고해도 과언은 아니지
특히 벡터같은 실수형을 사용할때는 더욱 예외처리에 신경써야함
내가 도착 확인할 때 if(목적지 거리 < 이동속도 * Time.fixedDeltaTime) 일때 도착으로 처리했는데, 이게 딲 게이가 말한거지? 고맙다.