이전편 참고해주세요!
2024.04.08 - [Unity/2D] - [Unity/2D] 랜덤 정렬 - OrderBy, OrderByDescending, ToArray, Random.Range
랜덤 정렬한 값을 카드에 넣어주기
public class Card : MonoBehaviour
{
int idx = 0;
public void Setting(int number)
{
idx = number;
}
}
이전에 만들었던 카드 프리팹에 Card.cs를 붙여줬습니다.
Setting 함수는 number 멤버변수에 값이 들어오면 idx라는 변수에 초기화하는 기능입니다.
이전편에서 Board로 랜덤 정렬한 arr배열의 요소를 number 멤버변수에 하나씩 불러오게 됩니다.
void Start()
{
int[] arr = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 };
arr = arr.OrderBy(x => Random.Range(0f, 7f)).ToArray();
for (int i = 0; i < 16; i++)
{
GameObject go = Instantiate(card, this.transform); // 임시 변수
float x = (i % 4) * 1.4f - 2.1f; // 나머지 * 카드 간격
float y = (i / 4) * 1.4f - 3.0f; // 몫 * 카드 간격
go.transform.position = new Vector2(x, y); // 카드 배치
go.GetComponent<Card>().Setting(arr[i]);
}
}
마지막 줄에 'go.GetComponent<Card>().Setting(arr[i]);'가 추가되었죠? 이 부분을 통해 카드마다 랜덤한 숫자값을 지정해주게 됩니다.
idx값 디버깅하기
실행을 하고 idx값에 잘 넣어졌는지 확인해보고 싶은데 idx가 public이 아니라서 확인할 수가 없습니다.
Inspector 문구에 우클릭 해주시고, Debug를 눌러주시면
이렇게 idx 값을 확인할 수 있습니다. 수정은 못합니다!
다음편에서는 코드를 통해 카드마다 이미지를 넣어보도록 하겠습니다~
2024.04.08 - [Unity/2D] - [Unity/2D] 코드를 통해 이미지 받아오기 - Resources, Resources.Load, 문자열 보간, $
반응형
'스파르타 게임개발종합반(Unity) > 사전캠프 공부 기록' 카테고리의 다른 글
[Unity/2D] 카드 뒤집기 - Button (0) | 2024.04.08 |
---|---|
[Unity/2D] 코드를 통해 이미지 받아오기 - Resources, Resources.Load, 문자열 보간, $ (0) | 2024.04.08 |
[Unity/2D] 랜덤 정렬 - OrderBy, OrderByDescending, ToArray, Random.Range (0) | 2024.04.08 |
[Unity/2D] 코드로 간격있게 카드 배치하기 (0) | 2024.04.05 |
[Unity] 부모 오브젝트 안에 자식 프리팹 생성하기 - Prefabs, Instantiate (0) | 2024.04.05 |
댓글