【发布时间】:2023-01-30 00:25:57
【问题描述】:
使用 Unity 2021.3.16f1。
我按照来自 Brackets 的 tutorial 为我的 flappy bird 之类的游戏制作暂停菜单,在我退出主游戏到主菜单并返回游戏后,我的玩家移动停止工作。
负责移动的部分播放器代码:
public class birdScript : MonoBehaviour
{
public Rigidbody2D myRigidbody;
public float flapStrength;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
myRigidbody.velocity = Vector2.up * flapStrength;
FindObjectOfType<AudioManager>().Play("jump");
}
}
}
负责加载主菜单场景的部分暂停菜单代码:
using UnityEngine.SceneManagement;
public class pauseMenu : MonoBehaviour
{
public static bool gameIsPaused = false;
public GameObject pauseMenuUI;
public void loadMenu()
{
Time.timeScale = 1f;
SceneManager.LoadScene("Title");
}
}
负责加载主游戏场景的部分代码:
using UnityEngine.SceneManagement;
public class playButton : MonoBehaviour
{
public void loadLevel()
{
SceneManager.LoadScene("Main game");
}
}
我尝试更改加载主游戏的播放按钮代码,在场景层次结构中我的主菜单场景是 0,我的主游戏场景是 1。播放按钮在主菜单上。
我把这个
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
进入这个
SceneManager.LoadScene("Main game");
但什么也没发生,我尝试在谷歌上搜索,但我不知道如何搜索正确的答案。
【问题讨论】:
-
您的代码中是否有任何地方将 flapStrength 变量或 Time.timeScale 设置为零?
-
当你说到最后“什么都没发生”时,你的意思是运动仍然没有发生?因为似乎场景没有加载。除了上述评论所暗示的内容外,我看不到您共享的代码中出现这种行为的明显原因。你在任何时候都只有一个场景吗?
-
让我也告诉你场景的加载不会影响你的问题,它们都以相同的方式加载相同的场景,只是第一个使用索引,然后使用一个字符串。
标签: c# unity3d scene-manager