[Unity] TIL 6 게임 개발이 처음이어도 쉽게 배우는 모바일 게임 개발

qkrrlcks00·2024년 8월 21일
post-thumbnail

강아지집을 습격하는 Normal고양이와 fat고양이를 만들고
애니메이션 효과를 줘서 움직이는것처럼 보이게 만든다
Pivot = 기준점의 위치

Vector3.up =0,1,0)
Vector3.down =0,-1,0)
Vector3.right =1,0,0)
Vector3.left =-1,0,0)

Cat과 food에 콜라이더를 넣고
food에 rigidbody를 넣는데

transform.position += Vector3.up * 0.5f; 

food가 올라가다가 중력에 영향을 받아 아래로 떨어진다.

그래서 바디 타입을 kinematic으로 하면

중력에 영향을 받지 않는다 물리 영향도 안받는다 충돌 효과만 부여
전엔 OnCollisionEnter2D 메소드로 충돌 여부를 체크햇는데 kinematic이라서 못쓰므로
cat과 food에 istriger를 체크하고 아래 코드를 사용

private void OnTriggerEnter2D(Collider2D collision)

이제 food가 cat에 닿으면 cat의 포만도(hp)가 오르는걸 구현

float full = 5.0f;
float energy = 0.0f;
if (energy < full)
{
    energy += 1.0f;
    front.localScale = new Vector3(energy / full, 1.0f, 1.0f); //에너지바가 차는걸 구현
    Destroy(collision.gameObject); 
    if (energy == 5.0f) // 에너지바가 풀이돼면
    {
        hungryCat.SetActive(false); //헝그리캣 이미지에서 풀캣이미지로 변경
        fullCat.SetActive(true);
    }
}

그 후 배부른 고양이가 떠나는 듯한 모션을 준다

if (energy < full) //에너지가 가득 안찻다면
{
    transform.position += Vector3.down * 0.05f; //내려간다
}
else
{
    if (transform.position.x > 0) //0 중심을 기준으로 우측에있다면
    {
        transform.position += Vector3.right*0.2f; // 우로이동
    }
    else //그외
    {
        transform.position += Vector3.left*0.2f; // 좌로이동
    }

고양이 반복생성을 위해

InvokeRepeating("MakeCat", 0f, 1f);

게임 오버가 되면 다시할수있는 버튼을 만들고
처음에 메인씬을 불러오는 코드를 재활용한다
그리고 배부른 고양이도 화면밖으로 나가면 파괴시켜준다.

public void AddScore()
{
    score++; //+1
    level = score / 5;
    levelTxt.text = level.ToString();
    levelFront.localScale = new Vector3((score - level * 5) / 5.0f, 1f, 1f) ;
    //실수라서 나머지값은 안나옴. 스코어가 12점이라면 레벨은 2.

0개의 댓글