Кнопка перезагрузки Unity 3d C#

Я делаю игру. В моей игре мяч вращается, и если он попадет в ловушку, он умрет, и вам придется перезапустить. Моя проблема: я не могу придумать, как сделать так, чтобы кнопка появлялась на текущей сцене, когда вы попали в ловушку. Я пишу сценарии на C#.

using UnityEngine;

public class PlayerCollision : MonoBehaviour{
public Rigidbody rb;

void OnCollisionEnter(Collision collisionInfo)
{
    if (collisionInfo.collider.name == "Trap_Spike")
    {

        FindObjectOfType<Gamemanager>().RestartGame();




    }
}

}

На ловушке есть тег Trap_Spike.

Мой скрипт RestartGame выглядит так:

using UnityEngine;

public class Gamemanager : MonoBehaviour{

public void RestartGame()
{


}

}

Так что я буду открыт для любой помощи, которую я могу получить

2 ответа

Есть Button под вашим Canvas объект. Отключите кнопку в иерархии, сняв этот флажок.

В вашем Gamemanager скрипт имеет поле

Button ResetButton;

Прикрепите кнопку к этому полю в вашем Инспекторе Unity.

Чтобы показать кнопку, сделайте это в RestartGame()

ResetButton.gameObject.SetActive(true);

Для отображения кнопки вам понадобится холст с кнопкой в ​​нем.

Щелкните правой кнопкой мыши в вашей иерархии и выберите UI -> Button. Это создаст необходимые объекты: Canvas/Button & EventSystem. Оставьте EventSystem там, где она есть, она связана с Canvas, но вам не нужно об этом заботиться, просто оставьте ее там пока.

Таким образом, по умолчанию вы хотите скрыть этот холст, а в RestartGame вы хотите показать его, верно? Итак, отключите его, поставив галочку в инспекторе, затем в вашем GameManager вы сделаете что-то вроде:

public void RestartGame()
{
    FindObjectOfType<Canvas>().setActive(true);
}

Вам нужно будет зарегистрировать то, что происходит, когда вы нажимаете кнопку. Этот скрипт предполагает, что он присоединен к GameObject, на котором есть кнопка UI:

void Start() {
    GetComponent<Button>().onClick.AddListener(RestartScene);
}

void RestartScene() {
    SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
Другие вопросы по тегам