C# 유니티

20251224 숙제

myuzzang 2025. 12. 30. 22:18

트랜스폼.트랜스레이트 메서드 / 현재 좌표에서 인수 값만큼 이동시키는 메서드
인수가 현재 좌표 값을 직접 나타내는 것은 아님. 현재 좌표의 상대적인 이동 값을 나타냄

Time.deltaTime이란 마지막 프레임이 완료된 후 경과한 시간을 반환합니다.
Update는 프레임 당 한 번 호출된다는 점을 생각해 보면 Time.deltaTime은 Update의 간격이라고도 볼 수 있습니다.

FPS가 N일 경우 프레임 사이의 시간은 1/N이라고 볼 수 있습니다. 두 수를 곱할 경우 1이 되는 것을 볼 수 있습니다. 그렇다면 초당 프레임 수와 관계없이 동일한 처리가 되는 것입니다.

1. 삼각함수 써서 한번 만들어보기 / 되면하고 안되면 공부만
--------------------------------------
2. 타임.델타타임 공부하기

Time.deltaTime을 곱하는 이유는
👉 “초당 속도”를 “프레임당 이동량”으로 바꾸기 위해서다.

이거 하나만 머리에 박아도 절반은 끝임.
만약에 
(업데이트 함수 안) transform.Translate(Vector3.forward * 5); ==> 업데이트 한번에 5만큼 이동한다
60fps - 1초에 업데이트 60번 -> 1초에 300 이동
120fps - 1초에 업데이트 120번 -> 1초에 600 이동
--> 컴퓨터 속도에 따라서 속도가 달라짐 --> 게임에선 몹쓸 짓

deltaTime을 곱하면 뭐가 달라지냐?
transform.Translate(Vector3.forward * 5 * Time.deltaTime); ==> 초당 5만큼 이동, Time.deltaTime → 지난 프레임에서 흐른 시간 (초)
예시로 보면
60fps → deltaTime ≈ 0.016
→ 한 프레임에 5 × 0.016 = 0.08
30fps → deltaTime ≈ 0.033
→ 한 프레임에 5 × 0.033 = 0.165
프레임은 다르지만
1초 동안 이동한 총량은 동일함
👉 그래서 모든 PC에서 같은 속도가 된다.

****deltaTime 없는 경우
“업데이트 한 번마다 5걸음 가!”
사람마다 걸음 횟수가 다르니까
누군 빠르고 누군 느림

****deltaTime 있는 경우
“1초에 5미터 가!”
프레임 수가 달라도
시간 기준이라 결과가 같음

언제 꼭 써야 하냐?
✅ 반드시 곱해야 하는 것 /// “시간에 따라 변하는 값” 전부
이동
회전
속도
감속
시간 누적 

Update는 “프레임 기준”이고
게임 로직은 “시간 기준”이어야 한다
그래서 그 둘을 연결해주는 게
👉 Time.deltaTime
--------------------------------------
3. 트랜스폼에서 파생되는 함수들 / 자주 쓰는 것들은 조금 외워보기

포지션 / 월드 좌표 - 이동 순간이동 위치비교 등등 / 그냥 이동

트랜스레이트() / 자기자신 기준 이동 - 로컬 좌표 이동, 간단한 이동 처리 *물리 안쓰는 오브젝트만 추천 / 내가 원하는 방향으로 밀어주는 느낌

로테이션 / 월드 회전 - 방향 즉시 변경, 카메라 캐릭터 방향 제어


로테이트() / 상대 회전 - 계속 도는 물체나 회전 애니메이션


로컬스케일 / 크기 조절 - 커졌다 작아졌다.. 이펙트 연출에 자주 쓰임


룩엣() / 타겟 바라보기 - 포탑, 적 추적, 카메라 시선 등등


포워드, 라잇, 업 등등 방향 / 현재 방향 벡터 - 이동에 대한 것들


로컬포지션 / transform.localPosition = Vector3.zero; 부모 기준 위치 - 유아이나 무기 장착, 자식 오브젝트 정렬 등


SetParent() / 아이템 장착, ui 계층 이동 등


TransformPoint / InverseTransformPoint transform.TransformPoint(localPos); ==> 로컬 <-> 월드 좌표 변환, 총알 발사 위치 계산 등

이동 - 포지션 트랜스레이트
회전 - 로테이션, 로테이트, 룩엣
방향 - 포워드 라잇 업
부모자식 - 로컬포지션, 셋패런트

실전 팁 (이거 하나 기억해)

물리 쓰면 → Transform 직접 조작 ❌
물리 안 쓰면 → Transform 적극 사용 ⭕
--------------------------------------
4. mathf. 에서 파생되는 함수들

--------------------------------------

 

++추가))

자전이랑 공전 마저하자면, 나는 탑다운으로 x를 움직이지않고 수평 바닥에서 원을 그릴거임
내 로컬 좌표계를 그 축 기준으로 회전 시킨다 --> 축이 중요하다

y축 회전이 괜찮은 이유는 x-z 평면과 수직
모델과 빙글빙글 도는 것 처럼 보이고, 공전 계산에는 영향이 없음

이미 나는 x랑z를 건드니까
X축은 공전 평면(X–Z)의 일부다. Z축이 위/아래로 기울어짐 즉, “이 오브젝트의 앞/뒤 방향”이 위아래로 섞임
X–Z 평면 = 회전판 바닥
Y축 회전 = 회전판 위에서 제자리 회전
X축 회전 = 회전판 자체를 세워서 흔드는 것

 

축을 생각해!!!!!!!!!!!!!!!!

'C# 유니티' 카테고리의 다른 글

친구가 내준 숙제(2)  (2) 2025.12.19
친구가 내준 숙제(1)  (0) 2025.12.15
연습 문제 (1)  (0) 2025.11.20
안녕하세요. 아무것도 모르는데 개발하는 사람입니다.  (0) 2025.11.20