目录
2.unscaledDeltaTime和 time.deltaTime的区别
1.性能比较
下面两部分代码 根据GC来看第二个性能比较好
public class TestGc : MonoBehaviour
{
private List<float> random = new List<float>();
//private float[] random = new float[100000];
void Start()
{
GetRandom();
}
public void GetRandom()
{
for (int i = 0; i < 100000; i++)
{
random[i].Add(Random.value);
}
}
}
public class TestGc : MonoBehaviour
{
//private List<float> random = new List<float>();
private float[] random = new float[100000];
void Start()
{
GetRandom();
}
public void GetRandom()
{
for (int i = 0; i < 100000; i++)
{
random[i] = Random.value;
}
}
}
2.unscaledDeltaTime和 time.deltaTime的区别
unscaledDeltaTime 表示 上一帧到这一真的准确的间隔时间,
time.deltaTime表示前者 unscaledDeltaTime 乘上 Time.timeScaleTime.time 和Time.realtimeSinceStartup 也是同理
后者等于前者乘上 Time.timeScale
所以判断一些暂停时的逻辑 使用Time.realtimeSinceStartup 和unscaledDeltaTime
3.调用顺序
两个物体 同时创建A 的脚本的awake()先调用
正确的执行顺序为 A awake() -> A onenable() ->B awake() ->B onenable()unity中凡是使用 unityEngine 这个命名空间的脚本或者说 方法 都不能在主线程之外使用