728x90
using UnityEngine;
public class MonoBehaviorExample : MonoBehaviour
{
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
Debug.Log("Start: 게임이 시작될 때 호출");
}
// Update is called once per frame
void Update()
{
Debug.Log("Update: 프레임마다 호출");
}
private void FixedUpdate()
{
Debug.Log("FixedUpdate : 물리 연산에 사용");
}
}
Unity 메세지 구현 : 함수명 찾기
Ctrl+shift+M
벡터
✅ Vector.magnitude란?
Vector2나 Vector3의 **크기(길이)**를 반환하는 속성입니다.
이는 수학적으로 피타고라스 정리를 통해 계산됩니다.
Vector3 vec = new Vector3(3, 4, 0);
float length = vec.magnitude;
Debug.Log("벡터의 길이: " + length);
√(3² + 4² + 0²) = √(9 + 16) = √25 = 5
✅ 공식
- Vector2일 때: magnitude = Mathf.Sqrt(x² + y²)
- Vector3일 때: magnitude = Mathf.Sqrt(x² + y² + z²)
✅ Vector.normalized란?
벡터의 방향은 그대로 두고, 크기를 1로 만든 벡터입니다.
즉, 방향만 남기고 길이를 1로 만든 단위 벡터(Unit Vector) 입니다.
Vector3 vec = new Vector3(3, 4, 0);
Vector3 dir = vec.normalized;
Debug.Log(dir); // (0.6, 0.8, 0)
Time.deltaTime을 곱하는 이유 → 프레임(rate)마다 움직이는 속도를 일정하게 유지하기 위함임.
- Time.deltaTime은 **이전 프레임과 현재 프레임 사이에 흐른 시간(초)**을 의미함.
- 만약 Time.deltaTime 없이 transform.Translate(Vector3.right * move * speed)만 쓰면, 프레임 수가 많을수록 더 빠르게 움직임. → 고성능 PC에서는 빨라지고, 저성능 PC에서는 느려짐.
- Time.deltaTime을 곱하면 초당 속도(speed) 기준으로 움직이므로, 프레임 수가 달라도 이동 거리 일정해짐.
- 즉, **"프레임 독립적인 움직임 구현"**을 위해 반드시 Time.deltaTime 곱해야 함.
728x90
'공부 > 부트캠프' 카테고리의 다른 글
[멋쟁이사자처럼부트캠프 Unity 게임개발 4기] 유니티 Editor Window 윈도우 (0) | 2025.05.08 |
---|---|
[멋쟁이사자처럼부트캠프 Unity 게임개발 4기] 13일차 (0) | 2025.03.11 |
[멋쟁이사자처럼부트캠프 Unity 게임개발 4기] 11일차: 델리게이트/이벤트/액션 (0) | 2025.03.07 |
[멋쟁이사자처럼부트캠프 Unity게임개발 4기] 10일차 : 네임스페이스/인터페이스 (1) | 2025.03.06 |
[멋쟁이사자처럼부트캠프 Unity게임개발 4기] 9일차 : LINQ / 상속 (0) | 2025.03.05 |