닷지(2)

suhan cho·2022년 9월 25일
0

프레임 제한 해제

  • 고정프레임
    초당 프레임을 60으로 고정했을 시 1초 동안 1미터 이동한다면
    Update() 메서드에서 한번에 1/60미터 이동하도록 작성

  • 강제로 프레임 제한 해제하면 1초에 120번 화면을 갱신한다 하면
    2미터를 이동하게 된다

즉) 초당 프레임이 다른 경우를 고려해야 한다.

void Update(){
	transform.Rotate(0f, rotationSpeed * Time.deltaTime, 0f);
    }
  • Time.deltaTime으로 해결 가능

GameManager

  • 게임오버 상태 표현
  • 생존 시간 갱신
  • UI를 갱신하고 표시
  • 게임오버 시 게임 재시작

벡터 수학

  • 위치, 방향, 속도를 나타내는 데 사용

절대 위치, 상대 위치

  • 상대 좌표: 현재 좌표에서 (1,1)만큼 더 가려한다
  • 절대 좌표: 게임 세상 속 나의 좌표는 (1,1)이다

벡터 스칼라 곱

  • (-3,4)와 (-6,8) -3,4는 5이고 -6,8은 그 두배이다

방향벡터

(3,-3) = (방향) x (속력 또는 이동거리)

  • 화살표 방향은 이동하려는 방향
  • 화살표 길이는 속력(이동거리)가 된다

단) 벡터A x 스칼라B로 표현했을 때 A의 크기가 1이 아니면 속도의 실제 속력은 B보다 크거나 작은 문제가 생길 수 있다

결론)
벡터는 방향과 크기를 동시에 표현 그런데 어떤 벡터의 방향과 크기(속력)를 직관적으로 파악하기 쉽게 나누어 표현할 때는 '방향벡터 x 스칼라 곱'으로 표현할 수 있다
-> 이때 사용되는 방향벡터는 어떤 벡터의 크기를 1로 늘리거나 줄이는 정규화를 통해 얻는다

벡터 덧셈, 뺄셈

벡터 내적

벡터 외적

백터 응용

위치를 나타내는 벡터 currentPos와 destPos가 있다고 가정

  • 두 점 사이의 거리
//currentPos에서 destPos로 향하는 벡터
Vecotr3 delta = destPos - currentPos

//currentPos에서 destPos까지 거리
float distance = delta.magnitude;
  • 현재 위치에서 목적지로 향하는 방향
//currentPos에서 destPos로 향하는 방향벡터
Vector3 direction = (destPos - currentPos).normalized;

//목적지를 향해 10만큼 현재 위치에서 이동한 새로운 위치
Vector3 newPos = currentPos + direction * 10;

Quaternion

  • 회전을 담당 rotation은 Quaternion이다
  • Querternion.Euler로 회전값 생성할 수 있다
Quaternion.Euler(Vector3);
Quaternion rotation = Quaternnion.Euler(new Vector3(0,60,0));
profile
안녕하세요

0개의 댓글