gpt4 book ai didi

c# - 如何在 Unity 中为游戏添加重启功能?

转载 作者:太空宇宙 更新时间:2023-11-03 18:56:23 36 4
gpt4 key购买 nike

我已经关注并完成了一个 Unity tutorial然而,一旦教程说完了,就没有提到重新启动游戏的功能。

除了关闭应用程序并重新打开之外,我将如何添加这样的内容?

最佳答案

在 Unity 中有很多重启游戏的方法:

1.将位置、旋转、得分等所有有用的变量重置为默认位置。当您使用此方法而不是#2时,您将减少游戏加载所需的时间。

创建一个 UI 按钮,然后将其拖到编辑器中的 resetButton 槽中。

//Drag button from the Editor to this
public Button resetButton;

Vector3 defaultBallPos;
Quaternion defaultBallRot;
Vector3 defaultBallScale;
int score = 0;


void Start()
{
//Get the starting/default values
defaultBallPos = transform.position;
defaultBallRot = transform.rotation;
defaultBallScale = transform.localScale;
}

void OnEnable()
{
//Register Button Event
resetButton.onClick.AddListener(() => buttonCallBack());
}

private void buttonCallBack()
{
UnityEngine.Debug.Log("Clicked: " + resetButton.name);
resetGameData();
}

void resetGameData()
{
//Reset the position of the ball and set everything to the starting postion
transform.position = defaultBallPos;
transform.rotation = defaultBallRot;
transform.localScale = defaultBallScale;

//Reset other values below
}

void OnDisable()
{
//Un-Register Button Event
resetButton.onClick.RemoveAllListeners();
}

2.调用SceneManager.LoadScene("sceneName");再次加载场景。您可以在 Button.onClick.AddListener 时调用此函数被称为..

创建一个 UI 按钮,然后将其拖到编辑器中的 resetButton 槽中。

//Drag button from the Editor to this
public Button resetButton;

void OnEnable()
{
//Register Button Event
resetButton.onClick.AddListener(() => buttonCallBack());
}

private void buttonCallBack()
{
UnityEngine.Debug.Log("Clicked: " + resetButton.name);

//Get current scene name
string scene = SceneManager.GetActiveScene().name;
//Load it
SceneManager.LoadScene(scene, LoadSceneMode.Single);
}

void OnDisable()
{
//Un-Register Button Event
resetButton.onClick.RemoveAllListeners();
}

使用哪种方法取决于场景中有多少对象以及加载场景需要多长时间。如果场景有一个带有烘焙光照贴图和 HQ 纹理的巨大世界,那么选择 #1。

关于c# - 如何在 Unity 中为游戏添加重启功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44288452/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com