일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 장학팀
- 드로잉 연습
- 인디게임 개발
- Pixelart
- 도트공부
- 서포터즈
- 자원순환보증금관리센터
- Aseprite
- pixel art
- 노하우
- 도트
- TOOL
- 스마일게이트
- 에이세프라이트
- photoshop
- 픽셀아트
- 포토샵
- COSMO
- 연습
- 픽셀 아트
- 모작
- 멋쟁이사자처럼
- 기초
- 반환원정대
- 드로잉
- 애니메이션
- 채색
- 개발
- menu
- layer
- Today
- Total
소소한 나의 하루들
이동거리를 공평하게, 델타타임 본문
출처: https://youtube.com/playlist?list=PLO-mt5Iu5TeYI4dbYwWP8JqZMC9iuUIW2&feature=shared
키 또는 버튼을 이용하여 이동할 때, 이동거리를 공평하게 하는 방법이 있다.
Time.deltaTime을 사용하는 것이다.
Time.deltaTime을 사용하는 방법
- Translate : 벡터에 곱하기 transform.Translate(Vec * Time.deltaTime);
- Vector 함수 : 시간 매개 변수에 곱하기 Vector3.Lerp(Vec1, Vec2, T * Time.deltaTime);
델타 타임(Time.deltaTime)은 1프레임에 사용된 시간(이전 프레임의 완료까지 걸린 시간)이다.
안좋은 컴퓨터는 성능이 10프레임이고, 좋은 컴퓨터는 성능이 60프레임이다. (n프레임: 1초에 n번 업데이트)
그러면 컴퓨터 성능에 따라서 실행 주기(속도)도 달라질 것이다. 만약 카트라이더같은 온라인 게임을 한다고 한다면, 같은 게임인데 누구는 1초에 10번 돌고 누구는 1초에 60번 돈다. 컴퓨터 성능에 따라 1초에 누구는 10m, 누구는 60m를 가면 안될 것이다. 같은 종류, 성능의 카트면 컴퓨터 성능이 달라도 같이 가야할 것이다. 그래서 붙이는 것이 델타 타임이다.
10 프레임 컴퓨터 vs 60프레임 컴퓨터 프레임이 적을수록 프레임 하나가 소비하는 시간이 크다. = 델타 타임이 크다. 10 프레임 = 델타 타임이 크다 60 프레임 = 델타 타임이 작다
deltaTime 값은 프레임이 적으면 크고, 프레임이 많으면 작다.
따라서 델타 타임을 곱하게되면 프레임 수가 크든 작든 간에 나오는 값은 동일해진다.
Vector3 vec = new Vector3
( Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"), 0) * Time.deltaTime;
위 코드에서는 벡터의 x좌표, y좌표에 각각 곱해주었지만, z값이 0이므로 벡터 자체에 곱해주어도 좋다.
(벡터 * 숫자 = 벡터의 모든 좌표에 숫자를 곱한 것과 마찬가지)
'개발 > 유니티' 카테고리의 다른 글
힘을 이용하여 물체 움직여보기_Rigidbody (0) | 2024.01.18 |
---|---|
실제와 같은 물체 만들기 (0) | 2024.01.18 |
목표지점으로 이동시키기 (0) | 2024.01.18 |
키보드 마우스 이동하기 (0) | 2024.01.18 |
유니티 오브젝트의 생명주기 (0) | 2024.01.18 |