我正在为我的游戏写一个暂停按钮(手机游戏)。
我的暂停脚本:
using UnityEngine;
using System.Collections;
public class PauseScript : MonoBehaviour {
public bool paused;
// Use this for initialization
void Start () {
paused = false;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
paused = !paused;
}
if (paused)
{
Time.timeScale = 0;
}
else if (!paused)
{
Time.timeScale = 1;
}
}
public void Pause()
{
paused = !paused;
if (paused)
{
Time.timeScale = 0;
}
else if (!paused)
{
Time.timeScale = 1;
}
}
}
和Jump一样写成jump = Input.GetButton("Fire1");
当我触摸按钮时,我的玩家会跳跃并且游戏不会暂停。
如何让我的游戏暂停,玩家不跳?
答案 0 :(得分:0)
除了realtimeSinceStartup,timeScale会影响Time类的所有时间和delta时间测量变量。
如果您想实际使用timeScale
,则需要在计算中使用Time.deltaTime
。像:
transfomr.position += Vector3.forward * speed * Time.deltaTime;
所以,它不会神奇地暂停所有脚本。 Update()
,FixedUpdate()
和所有其他MonoBehaviour
函数仍会正常调用。另外,read about Time.deltaTime如果你还没有。