2017-12-03 3 views
0

내 게임의 레벨을 변경하는 기능이 있습니다. 게임에서 첫 번째 레벨은 두 번째 레벨로 바뀝니다. 하지만 두 번째 레벨도 첫 번째 레벨로 변경되고 count = 4가됩니다. 어떻게 해결할 수 있습니까? 여기 내 코드는 다음과 같습니다.레벨 변경을위한 If-else 문

public void CheckLevelCompletion() { 
    if ((count == 4) && (levelOneCompleted == false)) { 
     img.sprite = levelCompletedImage; 
     count = 0; 
     levelOneCompleted = true; 
     SceneManager.LoadScene("FifthGameSecondLevel"); 
    } 
    else if ((count == 6) && (levelOneCompleted == true)) 
    { 
     img.sprite = levelCompletedImage; 
     count = 0; 
     levelTwoCompleted = true; 
     SceneManager.LoadScene("FifthGameThirdLevel"); 
    } 
} 
+0

코드를 단계별로 실행하면 어떻게됩니까? – mjwills

+2

'count'가 어디에 채워지는 것처럼 더 많은 코드 부분을 게시해야합니다. 변수 범위는 무엇입니까? –

답변

2

저는 코드 단계를 모르지만 아마도 이런 상황입니다. 장면이 다시로드되면 이전 장면의 게임 개체가 소멸됩니다. 이므로 levelOneCompleted은 항상 false입니다. SceneManager.LoadScene("FifthGameThirdLevel");이 실행되지 않는 이유는 다음과 같습니다.

맞으면 levelOneCompleted public으로 설정하고 true을 2 차 게임 개체로 설정하는 것이 좋습니다.

+0

네, 또한 levelOneCompleted 변수가 값을 변경하지 않는다고 생각하지만 이유를 모르겠습니다. 프로그램 시작시 값은 거짓입니다. 하지만 분기 if ((count == 4) && (levelOneCompleted == false)) 값을 true로 변경해야하지만 아무 일도 발생하지 않습니다. 어떻게해야합니까? – Dagget

+0

고마워요! 그것은 작동합니다. 당신은 내 하루를 만들었습니다 – Dagget

+0

또는 그 값을 유지할 수 있도록'static' 변수를 만들 수 있습니다. – PassetCronUs