-
14일차 카드 배치하기 ( for 반복문 )개발일지/스파르타 코딩클럽 유니티 강의 2024. 4. 8. 15:42
오늘은 반복문 for문을 배웠다.
이미 여러번 써봤지만 배울때마다 볼때마다 어려운 것 같다..
오늘 배운 내용
- 카드 배치 전략 세우기
- 자동으로 카드 생성하기
- for문 사용법
- 카드 위치 잡아주기
- 르탄이 이미지 집어넣기
- 랜덤으로 섞기
- 리스트를 랜덤으로 섞기
- 르탄이 붙여주기
- 기본 애니메이션 만들기
- 뒤집기 애니메이션 만들기
- 애니메이션 조건 만들기
새롭게 알게 된 내용
반복으로 생성한 오브젝트 폴더 안에 넣기
public GameObject card; void Start() { for (int i = 0; i < 16; i++) { GameObject newCard = Instantiate(card); newCard.transform.parent = GameObject.Find("cards").transform; } }
새롭게 생성된 카드를 newCard로 지칭하고
newCard의 부모를 cards 폴더를 Find 해서 바꿔준다
카드 위치 잡아주기
void Start() { for (int i = 0; i < 16; i++) { GameObject newCard = Instantiate(card); newCard.transform.parent = GameObject.Find("cards").transform; float x = (i / 4) * 1.4f; float y = (i % 4) * 1.4f; newCard.transform.position = new Vector3(x, y, 0); } }
오랫동안 수학과 친하게 지내지 않던 내가
오랜만에 숫자와 놀았는데
정말 힘들었다..
for문 자체는 알고 있었지만
이런 식으로 위치 조정을 할 수 있구나를 배웠다.
리스트 만드는 법
int[] rtans = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 };
리스트를 랜덤하게 섞기
using System.Linq; 를 넣어주고
int[] rtans = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 }; rtans = rtans.OrderBy(item => Random.Range(-1.0f, 1.0f)).ToArray();
이 부분 잘 이해가 되지 않았던 부분은
Random.Range(-1.0f, 1.0f) 부분이다 왜 -1.0f에서 1.0f지??
르탄이 붙여주기
일단 어떤 파일을 코드로 지정하고 싶을 때는 Resources 폴더를 만들어서 파일을 옮긴다.
string rtanName = "rtan" + rtans[i].ToString(); newCard.transform.Find("front").GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>(rtanName);
후에 Resources폴더 안에 있는 이미지의 이름들이 rtan0~rtan7 이기 때문에
rtanName을 rtan + i로 지정해준다
그 후 newCard의 front를 찾은 후 front의 스프라이트를 랜덤 rtan으로 바꾼다
오늘 발생한 문제
중요하게 생각하는 부분
오늘 새로 배운 부분들 모두가 너무 중요한 부분이다.
특히나 for문은 진짜 계속계속 많이 써보고 더 익숙해져야 할거같다..
게임엔진 관련 수학공부도 해야할 것 같다는 필요성을 곧 느낄것같다
단순 산수를 넘어선 부분이 많이 나올거같은 느낌 ㅠ
'개발일지 > 스파르타 코딩클럽 유니티 강의' 카테고리의 다른 글
[TIL] 15주차 1일 오류 개선 사항 (2) 2024.07.22 13일차 르탄이 카드 뒤집기 게임 (0) 2024.04.05 12일차 레벨 구성하기 (1) 2024.04.03 11일차 고양이 나타내기 (0) 2024.04.02 10일차 고양이 밥주기 게임 (0) 2024.04.01