스크립트 특징
2. TetrominoType
튜플(tuple)은 여러 값을 하나의 복합적인 데이터로 묶어서
반환할 수 있게 해주는 C#의 자료형.
다수의 값을 반환하거나 타입을 명확하게 할 떄 사용
private (int, int, int, int) GetGridState()
return (minX, minY, maxX, maxY);
Int32는 32비트(4바이트) 정수 타입을 나타내는 C#의 데이터 타입
- Int32는 C#에서 사용되는 기본적인 정수형 자료형으로,
양수와 음수를 모두 포함하는 정수를 저장할 수 있음.
- Int32.MaxValue는 Int32가 가질 수 있는 최댓값인 2,147,483,647입니다.
- Int32.MinValue는 Int32가 가질 수 있는 최솟값인 -2,147,483,648입니다.
// 초기 값은 Int32.MaxValue로 설정
// 초기 값은 Int32.MinValue로 설정
// Int32는 32비트(4바이트) 정수 타입을 나타내는 C#의 데이터 타입
// Int32는 C#에서 사용되는 기본적인 정수형 자료형으로, 양수와 음수를 모두 포함하는 정수를 저장할 수 있음.
// Int32.MaxValue는 Int32가 가질 수 있는 최댓값인 2,147,483,647입니다.
// Int32.MinValue는 Int32가 가질 수 있는 최솟값인 -2,147,483,648입니다.
int minX = Int32.MaxValue;
int minY = Int32.MaxValue;
int maxX = Int32.MinValue;
int maxY = Int32.MinValue;
(형변환)과 Random.Range() 메서드
-(형변환)


// 형변환 (Casting)은 프로그래밍에서 한 데이터 타입을 다른 데이터 타입으로 변환하는 작업을 의미
// TetrominoType.I; 을 사용하면 해당 프리팹만 나옴
// TetrominoType.Max는 8 이고, (int)TetrominoType.Max - 1 이기 때문에 Random.Range(0, 7)와 동일하게 동작
// Random.Range(0, 7)은 0이상 7미만의 랜덤한 정수를 반환합니다. 즉, 반환 가능한 값은 0, 1, 2, 3, 4, 5, 6
// + 1을 더하면 최종 값이 1부터 시작하게 됨. 그렇게 되면 enum 열거형에서 None 과 Max 를 제외한, 그 사이의 있는 값을 전부 사용가능하게됨.
TetrominoType nextBlockIndex = (TetrominoType)Random.Range(0, (int)TetrominoType.Max - 1) + 1;
Resources.Load<>() 는 Resources 폴더에서 특정 리소스를 불러오는 Unity의 메서드
$ : 문자열 보간법 (String Interpolation)
(문자열 보간법을 사용하면 문자열 내에서 중괄호 {} 안에 변수나 표현식을 넣을 수 있다)
// Resources.Load<GameObject>()는 Resources 폴더에서 특정 리소스를 불러오는 Unity의 메서드
// $ : 문자열 보간법 (String Interpolation)
// 문자열 보간법을 사용하면 문자열 내에서 중괄호 {} 안에 변수나 표현식을 넣을 수 있습니다
// 예를 들어 tetrominoDatas[TetrominoType.I]가 "I"를 반환한다면
// Prefab/{tetrominoDatas[TetrominoType.I]}는 "Prefab/I"로 변환됩니다.
Tetromino_Prefab = Resources.Load<GameObject>($"Prefab/{tetrominoDatas[nextBlockIndex]}");
TryGetComponent는 컴포넌트가 없을 때 false를 반환하고 예외를 발생시키지 않기 때문에,
컴포넌트를 찾을 수 없을 때 예외 처리를 따로 할 필요가 없음.
// GetComponent<T>(): GetComponent를 호출한 후,
컴포넌트가 없으면 null이 반환되기 때문에, null 체크가 반드시 필요)
(out 키워드는 TryGetComponent 메서드에서 out 변수에 값을 할당하는 데 사용되며,
컴포넌트가 있으면 할당하고, 없으면 false를 반환)
spawndTetromino.TryGetComponent(out _currentTetrominoData);
** 보통 .TryGetComponent(out 변수) 로 자주 쓰임 **
'게임 개발(유니티) > 멋쟁이 사자처럼 3기_회고록' 카테고리의 다른 글
| 유니티 디자인패턴_Command 패턴 (0) | 2025.01.08 |
|---|---|
| Uni Task는 무엇인가? (0) | 2025.01.05 |
| [멋쟁이사자처럼 유니티 TIL] 2024_12_30~31 강의 요약 및 정리(3) (0) | 2025.01.05 |
| [멋쟁이사자처럼 유니티 TIL] 2024_12_30~31 강의 요약 및 정리(4) (0) | 2025.01.05 |
| [멋쟁이사자처럼 유니티 TIL] 2024_12_30~31 강의 요약 및 정리(2) (0) | 2025.01.04 |