[Unity] TIL 7 게임 개발이 처음이어도 쉽게 배우는 모바일 게임 개발과 퀘스트

qkrrlcks00·2024년 8월 22일


이제 레벨이 오르면 난이도도 같이 올려주면서 fatcat도 등장시켜준다

if(level == 1)
{
    // lv.1 20% 확률로 고양이를 더 생성해준다
    int p = Random.Range(0, 10);
    if (p < 2) Instantiate(normalCat);
    // 랜덤 0~9까지의 값에서 0,1일때만 normalcat이 나오므로 20 % 구현
}
else if(level == 2)
{
    // lv.2 50% 확률로 고양이를 더 생성해준다
    int p = Random.Range(0, 10);
    if (p < 5) Instantiate(normalCat);
    // 랜덤 0~9까지의 값에서 0~4일때만 normalcat이 나오므로 50%구현
}
else if (level == 3) 
{
    // lv.3 뚱뚱한 고양이를 생성해준다
    Instantiate(fatCat);
}
InvokeRepeating("MakeFood", 0f, 0.1f); //name, time, repeatRate 순

밥주는 속도도 올려줬다

3주차 숙제
해적 고양이 만들기

  • 숙제 설명
    LV.4에서 해적 고양이가 나오게 해볼까요?

  • 고양이와 통통한 고양이, 그리고 해적 고양이가 나오는거에요!
    게임 메커닉 개발을 복습하는 것으로, 게임을 더 풍성하게 만들어봅시다.

필수숙제

  • 해적고양이는 아래의 조건을 갖고 있습니다.
    normalCat 보다 사이즈가 작음 scale x: 0.8, y: 0.8
    normalCat 보다 빠르게 내려옴 -0.1f

숙제를 보며 level이 1혹은 2일때만 작용하는 코드라서

else if (level >= 3) 
{
    // lv.3 뚱뚱한 고양이를 생성해준다
    Instantiate(fatCat);
}

이런 식으로 바꿧더니 작동하지 않아서 else if문에 대해 알아봤다.

  • if-else if-else 구조에서는 위에서 아래로 순차적으로 조건이 평가됩니다.
  • 첫 번째 if 조건이 true인 경우, 해당 블록의 코드가 실행되고, 이후의 else if나 else 블록은 모두 무시됩니다.
  • 첫 번째 if 조건이 false라면, 다음 else if 조건이 평가됩니다. 이 과정이 순차적으로 진행되며, 첫 번째로 true인 조건이 발견되면 그 블록만 실행됩니다.
  • 모든 if와 else if 조건이 false일 때 실행될 기본 동작을 정의할 수 있습니다. 이때 else 블록이 사용됩니다.
  • else는 조건 없이 무조건 실행되는 블록입니다. 만약 조건이 하나도 참이 아니면, else 블록이 실행됩니다.
  • 조건 순서에 주의: 조건문을 배치할 때 순서가 매우 중요합니다. 가장 특수한 조건부터 일반적인 조건 순으로 배치하는 것이 일반적입니다. 예를 들어, level == 3보다 level >= 1이 앞서 있으면 level == 3은 절대 실행되지 않습니다.
  • 한 번만 실행될 필요가 있는 경우 사용: else if는 여러 조건 중 하나만 실행되어야 하는 상황에 적합합니다. 모든 조건을 평가하고자 한다면 if를 독립적으로 사용해야 합니다.

이런 특징들이 있어서

else if (level >= 4)
{
    // lv.4 해적 고양이를 생성해준다
    int p = Random.Range(0, 10);
    if (p < 5) Instantiate(normalCat);
    Instantiate(fatCat);
    Instantiate(pirateCat);
}

위에 코드는 그대로 두고 이 코드만 추가했더니 성공적으로 작동했다.
그리고 강의엔 안나왓던거 같은데? 내가놓쳣나

if (energy == 5)

이걸 그대로 두면 fatCat의 full energy가 10인데
5만 되도 full인것처럼 나와서

if (energy == full)

이렇게 변경하니 잘 작동했다.

이로써 3주차까지 마무리지었고,
이후 C# 사전 문법 기초에 대해 알아보려고 한다.

0개의 댓글