// UI 변수
int level = 0;
int cat = 0;
public Text levelText;
public GameObject levelFront;
public void addCat()
{
cat += 1;
level = cat / 5; // level 은 int
levelText.text = level.ToString();
levelFront.transform.localScale = new Vector3((cat - level * 5)/5f, 1f, 1f);
}
레벨 반영하기
방법1. makeCat에 조건문을 넣어서 level이 2이면 Instantiate(normalCat)을 두번 할 수 있음
방법2. Random.Range를 함께 활용하면 조금 더 디테일한 레벨 구성이 가능
if 절이 한줄일때는 괄호안에 안넣어도 되나보다
void makeCat()
{
Instantiate(normalCat);
if (level == 1)
{
float p = Random.Range(0, 10);
if ( p < 2) Instantiate(normalCat);
}
else if (level >= 2)
{
float p = Random.Range(0, 10);
if (p < 5) Instantiate(normalCat);
}
}
고양이 종류에 따라 다른 값 주는 방법
같은 cat.cs 스크립트를 공유하지만 고양이 타입에 따라 다른 수치가 적용될 수 있도록 구현
// 고양이 타입 변수
public int type;
위처럼 변수 생성 후 Unity Inspector 상에서 Type 값을 넣어주면 그 값이 적용된 채 스크립트가 실행이 된다.
cat.cs에 type 을 구분하여 코드를 새로 짜주고
void Start()
{
float x = Random.Range(-8.5f, 8.5f);
float y = 30.0f;
if (type == 0)
{
full = 5.0f;
}
if (type == 1)
{
full = 10.0f;
}
transform.position = new Vector3(x, y, 0f);
}
// Update is called once per frame
void Update()
{
if (energy < full)
{
if (type == 0)
{
transform.position += new Vector3(0f, -0.05f, 0f);
}
else if( type == 1)
{
transform.position += new Vector3(0f, 0.03f, 0f);
}
... 생략
}
}
gameManager에서 fatCat을 등장시키는 코드를 새로 짜준다
public GameObject fatCat;
void makeCat()
{
Instantiate(normalCat);
if (level == 1)
{
float p = Random.Range(0, 10);
if ( p < 2) Instantiate(normalCat);
}
else if (level == 2)
{
float p = Random.Range(0, 10);
if (p < 5) Instantiate(normalCat);
}
else if ( level >= 3)
{
float p = Random.Range(0, 10);
if (p < 5) Instantiate(normalCat);
Instantiate(fatCat);
}
}