public GameObject normalCat;
public GameObject fatCat;
void MakeCat()
{
Instantiate(normalCat);
if(level == 1)
{
// lv.1 20% 확률로 고양이를 더 생성해준다.
int p = Random.Range(0, 10); // 0 ~ 9
if(p < 2) Instantiate(normalCat); // 10개중에 2개만 선택됨 => 20% 확률 표현
}
else if(level == 2)
{
// lv.2 50% 확률로 고양이를 더 생성해준다.
int p = Random.Range(0, 10); // 0 ~ 9
if (p < 5) Instantiate(normalCat); // 10개중에 5개만 선택됨 => 50% 확률 표현
}
else if(level == 3)
{
// lv.3 뚱뚱한 고양이를 생성해준다.
Instantiate(fatCat);
}
}
20%, 50%의 확률로 고양이가 더 생성되록 코드를 작성했습니다.
20%를 표현하려면?
20%는 100중에 20이라는 의미니까 10중에 2도 동일합니다.
그러면 0~9까지(10개)의 수 중에서 2개만 뽑으면 20%의 확률이 표현될 수 있습니다.
그래서 위와 같이 코드를 작성했습니다.
50%도 마찬가지로 10개 중 5개가 뽑히도록 작성했습니다.
반응형
'스파르타 게임개발종합반(Unity) > 사전캠프 공부 기록' 카테고리의 다른 글
[Unity/2D] 숙제 - 해적 고양이 만들기 (0) | 2024.04.04 |
---|---|
[Unity] 프리팹 인스턴스 언패킹 - Unpack (0) | 2024.04.04 |
[Unity/2D] 레벨 시스템 구현 - UI, text, ToString, localScale (0) | 2024.04.04 |
[Unity/2D] 체력바 게이지 상승하는 코드 작성 - UI, OnTriggerEnter2D, localScale (2) | 2024.04.03 |
[Unity] Prefab을 Hirarchy창에서 변경했을 때 기존 Prefab에도 변경사항 적용하는 법 (0) | 2024.04.03 |
댓글