변수를 만들었을 때, 아직 값을 직접 넣지 않았을 경우 자동으로 들어가는 값이야.
C#은 초기화되지 않은 변수는 사용할 수 없게 막아놨어
하지만 클래스의 필드(멤버 변수)나 배열의 요소처럼
"자동으로 초기화되는" 경우엔 기본값이 자동으로 들어가!
지역 변수는 예외! (자동으로 초기화 되지 않음)
public class Player
{
public int hp;
public bool isDead;
public string nickname;
void Start()
{
Debug.Log(hp); // 0
Debug.Log(isDead); // false
Debug.Log(nickname); // null
}
}
💡 hp, isDead, nickname에 값을 넣지 않았지만, 기본값으로 초기화됨!
| 타입 | 기본값 | 설명 |
|---|---|---|
int, float, double |
0, 0f, 0.0 |
숫자는 0 |
bool |
false |
거짓 |
char |
'\\0' |
비어 있는 문자 |
Vector3 |
(0, 0, 0) |
구조체는 내부 값 0 |
string, object, 참조형 |
null |
값이 없음 |
GameObject, Transform |
null |
Unity 오브젝트 참조도 null |
void Example()
{
int score;
Debug.Log(score); // 에러! 초기화 안 됐음
}
⚠️ 지역 변수는 직접 값을 넣지 않으면 사용 불가!