| 항목 | 설명 |
| const | 컴파일 타임 상수. 숫자/문자열 등 기본형에만 사용 가능. |
| readonly | 런타임 초기화 가능. 생성자 또는 선언 시 한 번만 설정 가능. 참조형도 허용. |
| static readonly | 클래스 단위 공유 + 런타임 초기화. 실행 중 한 번만 설정되고 인스턴스 없이 접근 가능. |
- const
- const의 경우 기본형만 사용할 수 있는데 이는 컴파일 시에 이미 값이 정해지는 특성 때문이다.
- 그렇기 때문에 배열과 같은 변수를 선언할때 배열의 크기에 const 변수를 이용해 크기를 정할수 있다.
- readonly
- 런타임 시 1회 초기화 가능하다.
- 프로퍼티를 이용하여 참조형도 허용하여 const보다 넓은 스펙트럼을 가진다.
- static readonly
- private static readonly라는 형식이 따로 있는건 아니고 static 에 private를 왜 붙일까 궁금해서 찾아보았다.
- static자체가 전역에서 사용 가능함을 뜻하는건데 이를 private로 사용하는게 무슨 의미가 있지? 라는 의문이 들었다.
- 이는 해당 클래스가 인스턴스화 되어도 항상 같은 값을 가지는 변수이기 때문에 모든 인스턴스 객체가 같은 값을 사용하게 만들때 선언한다.
- private은 외부의 접근을 막는것이고, 인스턴스화 된 여러 개체에서 공유하도록 만드는 것이다.
- 예를 들어 Enemy Animation에 isDamaged라는 파라미터가 있다고 가정해보자.
- 이때 readonly를 통해 isDamaged를 해시값으로 변환하여 private static 으로 지정해준다.
- 이는 어떤 Enemy객체를 생성해도 사용하는 값이기 때문에 인스턴화 하여도 새로 생성하지 않게 하여 메모리를 아껴준다.
- const는 해시값을 변환하여 넣을수 없기때문에 readonly를 사용하면 제격이다.
'Unity > 기능' 카테고리의 다른 글
| [Unity] UI의 Rect Transform (0) | 2025.05.04 |
|---|---|
| [Unity] BoxCast로 히트 박스 제작하기 (1) | 2025.05.02 |
| [Unity] 2D - Mathf.Atan2를 이용한 Rotate 계산 (0) | 2025.05.01 |
| [Unity] Camera (1) | 2025.04.30 |
| [Unity] Pixel per Unit(PPU) (1) | 2025.04.29 |