지피티에 물어보니까 Time.deltaTime을 이용하는것보다
절대시간을 이용해 캐릭터의 공격속도를 관리하는게 프레임드랍으로 인한 딜로스에서 자유롭다는데
저 방법보다 딜로스 억제에 더 좋은 방법이 있음? 최적화 개썩창만 아니면 크게상관없는수준인가
지피티에 물어보니까 Time.deltaTime을 이용하는것보다
절대시간을 이용해 캐릭터의 공격속도를 관리하는게 프레임드랍으로 인한 딜로스에서 자유롭다는데
저 방법보다 딜로스 억제에 더 좋은 방법이 있음? 최적화 개썩창만 아니면 크게상관없는수준인가
아닌데 생각해보니 델타타임 쓰는게 오히려 효과적인게 맞는데 걍 지피티 찐빠난건가 아 헷갈리노
해당 댓글은 삭제되었습니다.
딜로스라 말하기보단 프레임드랍으로 인한 오브젝트의 행동 로스라고 해야했겠구만 그르게 일반적으로 생각할수 있는 답변과 너무 괴리가 있으면 알아서 걸러들어야겠네 ㅋㅋ 답변 감사르
음 결과는 비슷한데 지금 말하는 렉이라는게 네트워크 패킷로스로 인한거면 엔진문제가 아닌거고 프레임드랍으로 인한 랙이면 엔진문제라고 본다고 생각하고있음 프레임드랍이 심하게 생기면 오브젝트 상호작용의 손실이 생기는게 유니티 엔진의 고질적 문제라는 말을 어디서 몇번 주워들어갖고.. 그 말이 유니티에만 적용되는건지 다른 엔진도 대체로 그러한지 정도의 지식도 아직 없어서 ㅋㅋ
게임 장르, 특성에 따라 접근을 달리해야겠네 ㄳㄳ
deltaTime은 FPS가 낮으면 낮을수록 값이 커져서 그 특성 때문에 프레임 드랍이 한번 일어나면 그 사이 간극의 deltaTime은 1의자리까지 갈 수도 있음.
이게 왜 문제가 되는지 예를 들어주자면 일단 간단하게 5초를 deltaTime을 더해서 재는 로직이 있다고 해보자. 근데 4.9초 쯤에 프레임 드랍 때문에 deltaTime이 1초까지 늘어나버려서 결국 5.9초를 재고 나서야 타이머가 끝이 나는거임 그러니까 0.9초 만큼의 손해를 보는건데 이런거 말하는거 일듯?
솔직히 Update 기반으로 돌아가는게 유니티 내부에서 한두가지가 아니라서 그냥 비동기를 사용하는게 맘편할걸
갱신주기 끝자락에 걸릴쯤 드랍생기면 그런 현상도 나타날수 있겠네..배워감둥
projectile도 update기반으로 갱신할거고 spine이든 3d animation이든 update기반으로해서 프레임마다 갱신해서 작동되고 이벤트가 터져서 로직이 실행될텐데 어떤 게임 만들길래 딜로스 생김? 시뮬레이션쪽인가
아직 유니티런+지피티로 학습중인 단계긴 한데 최적화 방향성도 고려해서 개념을 잡으려고 하는중이라.. 현재 상태에 주제넘는 질문인거같긴한데 지피티 답변이 내기준엔 이해가 안돼서 아는사람있나 궁금했음 ㅋㅋ
ㅇㅇ 지금 단계에서 생각할 필요 없는 부분이긴함 게임 전체의 시간 주기를 유니티에서 제공하는걸 따라갈꺼냐, 0.01초도 놓칠 수 없이 따라가야하냐 그 문제라서 이건 프로젝트 정책상의 문제지 정답이 있는건 아님
답변들 보고나니 그렇네 결국 기획에 따라 코딩 방향이 달라져야겠군 답글 ㄳㄳ
가속력처럼 미적분 붙는거나 유효하지 딜은 델타타임만으로 안정적으로 계산돼 - dc App
100ms 마다 1회씩 5번 다단히트 시키는 공격이 있을때 델타 타임을 써서 구현하면 렉 유발등에 의해 500ms가 진행됐다면 update가 1회 호출되어 1타 밖에 안들어감 그러나 픽스드델타면 렉을 먹든 뭐하든 업데이트 주기만큼 update함수가 반복적으로 수행됨 예를 들어 주기가 33ms 인경우 렉이 500ms 가량 먹었다면 렉이 풀린 후 16회의
update가 수행되며 빠졌던 타수를 가 때릴 수 있음
문제는 한번에 몰아서 16회를 실행해버리니... 픽시드는 시간 같은 가벼운 것만 넣는게 나을듯 - dc App
물리틱 쓰셈 - dc App
waitforseconds쓰는 코루틴을 무한반복하게 만들다가 update에서 끊는것만 체크해서 멈추게 하고 발사하는 탄막같은 경우는 time.time으로 계산해서 프레임 사이에 생산됐다면 진행방향보다 살짝 앞에다 배치하는 식으로 구현한다 들었음...gpt에서