혼자 독학으로 게임을 만든다는 것이 막막하여 내일배움카드를 이용하여 부트캠프에 지원하게 되었다.

사전 캠프가 시작한지 3일이 지났지만 그동안 TIL을 어떤식으로 작성을 해야할지 막막했지만 그래도 오늘 모임에서 각자 자율 학습을 하게 되어 한번 끄적여보기로 했다.

 

첫번째 사전 강의의 난이도는 코딩을 하나도 모르는 사람이 봐도 문제없이 따라 할 수 있을 정도의 난이도였고 

캠프를 하기전에 혼자 유튜브와 구글링을 통해 독학으로 Unity를 사용하여 게임을 만들어 봐서 막힘 없이 사전강의를 보고 게임을 따라 만들 수 있었다.

 

사전 강의를 보면서 만든 게임은 '빗물받는 르탄이' 게임으로 '르탄이'라는 캐릭터를 좌우로 이동하면서 하늘에서 떨어지는 빗물을 받으면 점수가 올라가는 게임이다

 

 '빗물받는 르탄이'게임에서 가장 핵심 부분은 빗물을 생성하는 부분이라고 생각된다.

public class GameManger : MonoBehaviour
{
    public GameObject rain;
    
    private void Start()
    {
        InvokeRepeating("MakeRain", 0 , 0.5f);// "MakeRain"메소드를 0초 뒤에 0.5초 마다 실행
    }

    void MakeRain()
    {
        Instantiate(rain);
    }
}

InvokeRepeating()를 이용하여 MakeRain 메소드를 0초 뒤에 0.5초 마다 실행을 하여 빗물을 게임화면에 생성한다

 

 

생성된 빗물의 크기와 위치는 

public class Rain : MonoBehaviour
{
    void Start()
    {
        Rainrenderer = GetComponent<SpriteRenderer>();

        float x = Random.Range(-2.4f, 2.4f);
        float y = Random.Range(3f, 5f);
        transform.position = new Vector3(x, y, 0);
    }
}

Random.Range()를 이용하여 설정한 범위내 숫자를 랜덤으로 생성하고 x와 y의 좌표값을 설정한다.

 

또한 다양한 점수를 획득할 수 있게 크기와 점수가 다른 빗물을 설정한다

public class Rain : MonoBehaviour
{
    float size;
    int score;

    SpriteRenderer Rainrenderer;

    private void Start()
    {
        Rainrenderer = GetComponent<SpriteRenderer>();

        float x = Random.Range(-2.4f, 2.4f);
        float y = Random.Range(3f, 5f);
        transform.position = new Vector3(x, y, 0);

        int type = Random.Range(1, 5);

        if (type == 1)
        {
            size = 0.8f;
            score = 1;
            Rainrenderer.color = new Color(100 / 255f, 100 / 255f, 1f, 1f);
        }
        else if (type == 2)
        {
            size = 1.0f;
            score = 2;
            Rainrenderer.color = new Color(130 / 255f, 130 / 255f, 1f, 1f);
        }
        else if (type == 3)
        {
            size = 1.2f;
            score = 3;
            Rainrenderer.color = new Color(150 / 255f, 150 / 255f, 1f, 1f);
        }
        else if(type == 4)
        {
            size = 0.8f;
            score = -5;
            Rainrenderer.color = new Color(1f, 100 / 255f, 1f, 1f);
        }
        transform.localScale = new Vector3(size, size, 0);

    }
}

 

if문을 사용하여 5가지의 빗물의 속성을 만들어주고 Random.Range()를 이용하여 5가지중 하나의 속성을 빗물에 적용시켜준다.

 

이렇게 되면 빗물이 게임화면에 다양한 모양으로 생성하게 된다.

 

 

 

 

 

 

'사전캠프 > TIL' 카테고리의 다른 글

2025-01-02 TIL  (0) 2025.01.02
2024-12-31 TIL  (0) 2024.12.31
2024-12-27 TIL  (0) 2024.12.27
개발 블로그 개설 및 첫 글 작성하기!  (1) 2024.12.23

+ Recent posts