ChangePos는 화면밖으로 안나가게 계산한뒤 transform.position = temp; 이런식으로 이동시키는 메소드임
dashDistance = 21
즉 21프레임에 걸쳐서 대쉬를 하게하고싶은데
에디터상에서는 0.1초 만에 이동하고(인스펙터창에서 플레이어 게임오브젝트 눌러놓고 하면 0.3초 걸림)
빌드상에서는 0.3초 정도 걸리는 현상이 발생함
뭔가 느낌상 WaitForEndOfFrame이 원인인것 같긴한데 문제가 발생하는 원리를 모르겠음.....
설명 해줄수있는 인붕이 있음?ㅠㅠ
WaitForEndOfFrame 이 프레임 단위임. 시간으로 고쳐보셈
애초에 컴터 프레임이 폰보다 보통 더 좋음. 컴터에선 1초에 60 프레임 나올수있는데 폰에선 1초에 30프레임 나올수도있잖
아 그러면 에디터상에서는 60프레임 이상 뽑혀서 저런현상이 벌어지는건가? 일단 대략은 알겠다 고마워
인스펙터창에서 플레이어 게임오브젝트 눌러놓고 하면 0.3초 걸림 <- 이런식으로 먼가 일을 더 시키면 컴터 프레임이 느려지는 상황이 발생해서 시간 바뀌는 거고 ㅇㅋ?
위에 갤러가 단말기마다 프레임이 다르다고 충분히 설명했기 때문에 따로 말할 건 없는데, 각기 다른 단말기마다 프레임은 다를수 있어도 속도는 같게 하고 싶다면 Time.deltaTime 을 활용해보셈. 내 생각엔 코드를 보아하니 이것만으로도 충분히 해결될 이슈라고 보는데.
추측컨대 스샷에 dashspeed 변수가 지정된 수치임에도 프레임에 따라 속도가 가변한다고 느껴진다면 dashspeed * Time.deltaTime 을 써야하고 향후 값은 조정이 필요할 수 있음. 간단히 고등학교 물리1으로 비교하자면 프레임을 주파수라 치면 각 기기마다 1초마다 프레임은 각기 다르지만 주파수의 역수인 주기는 항상 "1"초로 고정되어 있기 때문에 모든 경우에도 같은 프레임을 기대하게 만들 수 있는 원리인 셈임