OrderBy()
를 이용한 배열 정렬OrderBy
는 배열 안의 다양한 값을 정렬해주는 메서드다.numbers = numbers.OrderBy(x => x);
코드를 사용하면 데이터는 오름차순으로 정렬된다. (1, 2, 4, 5, 8)(x => x)
부분을 (x => -x)
로 바꾸면 내림차순으로 정렬된다. (8, 5, 4, 2, 1)OrderBy
는 오름차순과 내림차순 뿐만 아니라 =>
옆에 무엇을 놓느냐에 따라 다양한 기준으로 값을 정렬할 수 있는데, 이번에 Random
를 이용해 값을 무작위로 정렬한 방법이 이에 속한다. (더 다양한 방법은 기회가 될 때 작성하고 링크를 걸어두겠음)OrderBy(x => Random.Range(0f, 7f))
가 작동하는 대략적인 과정은 다음과 같다:예를 들어, 이런 배열이 있다고 생각해 보자
int[] arr = { 1, 2, 3, 4 };
이 배열에
OrderBy(x => Random.Range(0f, 7f))
코드를 적용했을 때, 이 코드는 다음과 같은 순서로 작동한다:1. 배열의 각 숫자(1, 2, 3, 4)에 대해 0f부터 7f까지의 랜덤한 숫자-실수-를 뽑는다.
//Random number EX 1 -> 3.14 2 -> 0.72 3 -> 6.53 4 -> 2.18
2. 뽑힌 랜덤한 숫자(3.14, 0.72, 6.53, 2.18)를 기준으로 배열을 정렬한다.
- 정렬 결과: 2(0.72), 4(2.18), 1(3.14), 3(6.53).
이 숫자는 매번 랜덤을 통해 뽑아내므로, 결과는 늘 다르게 출력된다.
"문자열" + 변수명.ToString()
을 이용해도 좋지만, $"문자열{변수이름}"
을 사용해도 같은 결과가 나온다.public void Setting(int number) { idx = number; //Resources.Load<Sprite>("rtan" + idx.ToString());와 같은 코드임 frontImage.sprite = Resources.Load<Sprite>($"rtan{idx}"); }
Random
의 모호한 참조 오류Random
메서드가 C#의 시스템에도, 유니티 엔진에도 있어서 확실히 해달라는 오류였다.Random
을 쓰는건 처음이 아니지만, 배열을 쓰기 위해 System
을 참조하면서 이제야 보게된 듯.using Random = UnityEngine.Random;
코드로 지정해주니 잘 돌아갔다. 👉참고 블로그card에 front를 붙이려는데 Type missmatch 오류가 뜸
go.transform.parent = cards
코드를 삭제하니 정상적으로 돌아갔다.Front
, Back
, Front Image
전부 Type missmatch 오류가 뜸
go.transform.parent = cards
코드같은 경우 강의에선 나오지 않은 코드였음에도, 강의 노트에 적혀있다는 이유로 그대로 썼다가 오류가 났음.OrderBy()
를 제대로 이해하지 않은 채 대충 넘어갔다는 걸 깨달음