2023.10.16 오늘의 기록

2023. 10. 17. 15:54카테고리 없음

3주차 슈팅게임 만들기

dog vs cat

 

유니티와 VS커뮤니티를 활용하여 게임을 만들어보며 사용되는 코드와, 기능들에 대해서 더욱 자세하게 알 수 있었다.

 

1. 게임 제작에 필요한 기본 씬 만들기

2. 메인씬과 더불어 시작씬 만들어주기

- 버튼 컴포넌트는 "sprite"가 아니라, 반드시 "UI Image"에 붙여야 작동한다

3. 밥쏘기

-food scripts 만들어서 코딩해주기

transform.position += new Vector3(0.0f, 0.5f, 0.0f);

-반복 코딩

InvokeRepeating("makeFood", 0.0f, 0.2f);

 

void makeFood()

{

float x = dog.transform.position.x;

float y = dog.transform.position.y + 2.0f;

Instantiate(food, new Vector3(x,y,0), Quaternion.identity);

}

-Y좌표를 넘어가면 밥 사라기게 하기

void Update()
{
    transform.position += new Vector3(0.0f, 0.5f, 0.0f);
    if (transform.position.y > 26.0f)
    {
        Destroy(gameObject);
    }
}

4. 고양이 나타내기

-고양이와 밥 충동하게 하기

rigidbody

collider

- gameManager 싱글톤 화

public static gameManager I;

void Awake()
{
    I = this;
}

5. 레벨구성하기

-void Start()
{
    float x = Random.Range(-8.5f, 8.5f);
    float y = 30.0f;
    transform.position = new Vector3(x, y, 0);

    if (type == 1)
    {
        full = 10.0f;
    }
}

-// 업데이트 구문 안의 if문
if (energy < full)
{
    if (type == 0)
    {
        transform.position += new Vector3(0.0f, -0.05f, 0.0f);
    }
    else if (type == 1)
    {
        transform.position += new Vector3(0.0f, -0.03f, 0.0f);
    }

    if (transform.position.y < -16.0f)
    {
        gameManager.I.gameOver();
    }
}

6. 버그 수정하기

-재시작이 안될때,

void Start()
{
    Time.timeScale = 1.0f;
    InvokeRepeating("makeFood", 0.0f, 0.1f);
    InvokeRepeating("makeCat", 0.0f, 1.0f);
}

 

간단한 과정을 통해 게임제작을 할 수 있는데, 아직까지는 익숙하지 않아서 더딘 편인 것 같다.