ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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문은 진짜 계속계속 많이 써보고 더 익숙해져야 할거같다..

    게임엔진 관련 수학공부도 해야할 것 같다는 필요성을 곧 느낄것같다

    단순 산수를 넘어선 부분이 많이 나올거같은 느낌 ㅠ

Designed by Tistory.