我正在为我的FPS游戏制作暂停菜单,到目前为止,我能够使暂停菜单面板显示出来并与其进行交互,但是并不能阻止相机的移动。有人可以告诉我我在做什么错吗?
代码如下:
public class PauseMenuu : MonoBehaviour
{
public static bool GameIsPaused = false;
public GameObject PauseMenu;
private void Start()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
if (GameIsPaused)
{
Resume();
}
else
{
Pause();
}
}
}
void Resume()
{
PauseMenu.SetActive(false);
Time.timeScale = 1f;
GameIsPaused = false;
}
void Pause()
{
PauseMenu.SetActive(true);
Time.timeScale = 0f;
GameIsPaused = true;
}
}
这是我的相机旋转代码,如果可以帮助您弄清楚相机发生了什么。
public class CameraRotate : MonoBehaviour
{
public float speed;
float time = 14.0f;
public GameObject HeadCamera;
public bool updateOn = true;
void Start()
{
StartCoroutine(updateOff());
}
void Update()
{
Rotation();
}
void Rotation()
{
RotateX += Input.GetAxis("Mouse X") * RotationSpeed;
RotateY += Input.GetAxis("Mouse Y") * RotationSpeed;
RotateY = Mathf.Clamp(RotateY, MinYAxis, MaxYAxis);
Camera.transform.localRotation = Quaternion.Euler(-RotateY, 0f, 0f);
transform.rotation = Quaternion.Euler(0f, RotateX, 0f);
}
}
答案 0 :(得分:0)
它可以为您解决,请尝试相对于其自身位置旋转相机。因此,您要做的就是将其添加到函数调用的顶部:
void Rotation()
{
if(Time.deltaTime == 0){
return;
}
...
还请注意,您可能需要像以前一样更改几个值才能获得旋转量。
希望有帮助!