2015-07-02 3 views
0

Я использую единство, и я хочу показать изображение «игры» в моем проекте 2D-единства, когда игра закончена. Например, у меня есть счетчик в моем коде от 0; когда счетчик достигнет 3, игра закончится, и вы проиграете. Но я не знаю, как показать Game Over Message. Это сообщение - это картина. , и я хочу добавить кнопку «Играть снова», после показа игры над сообщением. Как я могу это сделать?Как показать изображение в единстве по коду

+1

Для этого используется правильный тег, который является Unity3d. – Andy

ответ

0
int counter = 0; 
GameObject gameOver; 

public void IncreaseCounterBy(float amt) 
{ 
    counter += amt; 
    gameOver.SetActive(counter >= 3 && gameOverPanel != null); 
} 

или

int counter = 0; 

public void IncreaseCounterBy(float amt) 
{ 
    counter += amt; 
    if(counter >= 3) 
     Application.LoadLevel("GameOver"); 
} 
0

вы должны добавить объект с изображением и кнопки, а затем отключить объект с помощью инспектора и когда ваш счетчик достигнет 3 вы можете активировать объект по коду ..

что-то вроде:

public GameObject gameOverPanel; 
int counter = 0; 
public void YourCounterCode() 
{ 
//here's your code 
    if(counter >= 3 && gameOverPanel != null) 
    gameOverPanel.SetActive(true); 
} 

, что должно быть достаточно для вашей цели

+0

забыл упомянуть .. вы должны снова отключить объект (gameOverPanel) кодом при нажатии кнопки «Воспроизвести снова», если вы не перезапустите всю сцену –

0

Во-первых, вы должны иметь ссылку на свою игру через GameObject в своем игровом контроллере (код игры). Этот объект gameObject должен помечаться как дезактивированный по умолчанию.

Во-вторых, когда игра окончена или проигрывается проигрыватель, вы должны вызвать метод «wait» и показать GameObject. Этот метод должен быть сопрограммой, если вы считаете свой счетчик счетчиком времени.

public GameObject myGameOverGO; 

public void GameEnds() 
{ 
    //.... 
    StartCoroutine(DisplayGameOver()) 
    //.... 
} 

private IEnumerator DisplayGameOver() 
{ 
    yield return new WaitForSeconds(3.0f); 

    myGameOverGO.SetActive(true); 
}