通过变量赋值修改了 Time.timeScale 时出现了一个问题,情况如下
具体书写的代码如下:
public class FixedDeltaTime : MonoBehaviour {
public GameObject go;
public float TimeS = 1f;
[SerializeField]
private float speed = 1f;
private Transform re;
// Use this for initialization
void Start () {
re = go.GetComponent<Transform> ();
}
void FixedUpdate () {
Time.timeScale = TimeS;
re.Translate (Vector3.forward * Time.fixedDeltaTime * speed);
}
}
将Time.timeScale通过 TimeS 变量赋值的方式修改为 其他正数都没有问题。但是将 Time.tiimeScale设置为0后,再修改为其他的正数,此时物体不再移动了。
查看了TimeManager后发现,其中的timeScale的值并没有被按照我对 TimeS 变量的修改而修改。
而当修改了 TimeManager 中的 timeScale 的值后,无论修改为什么值,TimeManager 中的这个值会完成之前没有执行成功的 变量赋值。
想问一下会是什么问题呢?
Time.timeScale是一个全局通用的值,而且直接修改生效不会有问题,不清楚您的逻辑,看看是不是多处修改了,一个简单的赋值一般没问题的