ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 3일차 빗방울 코딩하기 ~
    개발일지/스파르타 코딩클럽 유니티 강의 2024. 3. 21. 14:23

    복습느낌의 기본기 강의가

    생각보다 도움이 많이 되는 것 같다.

     

    역시 공부는 복습!

     

    오늘 배운 내용

    • 빗방울 내리게 하기
    • 땅에 닿으면 없어지게 하기
    • 빗방울 생성 및 크기, 색상 세팅
    • Rigidbody 2D 를 통해서 중력의 영향 받게하기
    • 땅과 빗방울에 Collider를 줘서 충돌 세팅
    • 땅에 tag를 부여해서 (이름 부여) 충돌 조작
    • 땅에 닿았는지 확인하기
    • Destroy 함수로 비 없어지게 하기
    • Random.Range로 랜덤하게 위치 잡아주기
    • transform.localScale로 랜덤하게 크기 설정
    • GetComponrnt<SpriteRenderer>().color로 색상 변경
    • GameManager 만들기
    • Prefabs로 빗방울 복제하기
    • Instantiate 함수로 빗방울 복제하기
    • InvokeRepeating 함수로 반복하기

    새롭게 알게 된 내용

     

    오늘 발생한 문제

     

    중요하게 생각하는 부분

    랜덤한 위치 설정

    void Start()
    {
        float x = Random.Range(-2.7f, 2.7f);
        float y = Random.Range(3.0f, 5.0f);
        transform.position = new Vector3(x, y, 0);
    }

    랜덤한 사이즈 설정

    transform.localScale = new Vector3(size, size, 0);

    색상 변경

    GetComponent<SpriteRenderer>().color = new Color(100 / 255f, 100 / 255f, 255 / 255f, 255 / 255f);

    100 / 255f는 100과 255사이의 값 이라는 의미

    255.0f로 나눠주는게 핵심

     

    랜덤한 빗방울 만들기 완성코드

    int type;
    float size;
    int score;
    
    // Start is called before the first frame update
    void Start()
    {
        float x = Random.Range(-2.7f, 2.7f);
        float y = Random.Range(3.0f, 5.0f);
        transform.position = new Vector3(x, y, 0);
    
        type = Random.Range(1, 4);
    
        if (type == 1)
        {
            size = 1.2f;
            score = 3;
            GetComponent<SpriteRenderer>().color = new Color(100 / 255f, 100 / 255f, 255 / 255f, 255 / 255f);
        }
        else if (type == 2)
        {
            size = 1.0f;
            score = 2;
            GetComponent<SpriteRenderer>().color = new Color(130 / 255f, 130 / 255f, 255 / 255f, 255 / 255f);
        }
        else
        {
            size = 0.8f;
            score = 1;
            GetComponent<SpriteRenderer>().color = new Color(150 / 255f, 150 / 255f, 255 / 255f, 255 / 255f);
        }
    
        transform.localScale = new Vector3(size, size, 0);
    }

     

    gameManager 스크립트에 prefabs의 rain 끌어다놓기

    public GameObject rain;

    0.5초마다 특정 함수 반복시키기

    InvokeRepeating("makeRain", 0, 0.5f);

    끌어다 놓은 rain 복제하기

    Instantiate(rain);

     

     

    오늘은 모르는 내용은 없었지만

    모두 복습하면서 정말로 다들 중요한 부분이라고 생각하여

    배운 내용을 거의 다 일지에 작성한 것 같다.

     

     

     

Designed by Tistory.