
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
3-6 강의 6분 쯤에
bool 자료형을 사용하여, 조건문을 만드는 부분에서
if(energy == full)이 만족이 되어 이 조건을 타게 되었을 때
if(!is_full) 의 조건문을 타는 이유가 헷갈려서 질문을 남겼습니다 :)
첫번째 생각해본 것은
처음에 bool = is_full = false; 초기 설정을 하였기에
if(!is_full)가if( is_full == True )를 뜻한다고 생각했고,
이게 맞다면 is_full 을 True로 만들 다른 정의가 전혀 되어있지 않은데 왜 작동이 되는지 모르겠습니다,
두번째는
만약 !is_full 이 초기 값과 상관 없이, 그저 조건문에서 !is_full은 False를 뜻하고, !가 없는 is_full은 True를 뜻하는 것인지
그래서 is_full이 false이기에 처음엔 조건문을 통과하였지만, is_full = true를 만나 true 값이 되었기에, full 상태 이더라도, 조건을 통과 못하는 상태가 된다.
인지,
후자가 더 가능성은 높지만 확실하게 정의를 내리고 싶어서 여쭤보고싶습니다!
우다다다 여쭤보는게 너무 많지만,, 틀린 부분이 있으면 정정 부탁드립니다. 감사합니다!
if (energy == full)
{
if (!is_full)
{
is_full = true;
Hungry_cat.SetActive(false);
Full_cat.SetActive(true);
Destroy(this.gameObject, 3f);
Game_Manager.instance.add_score();
}
}
작성한 코드 및 에러 메세지
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.CompareTag("Food"))
{
if (energy < full)
{
energy += 1f;
front.localScale = new Vector3(energy / full, 1f, 1f);
Destroy(collision.gameObject);
}
if (energy == full)
{
if (!is_full)
{
is_full = true;
Hungry_cat.SetActive(false);
Full_cat.SetActive(true);
Destroy(this.gameObject, 3f);
Game_Manager.instance.add_score();
}
}
}
}
