unity常见问题(二)

目录

 

1.性能比较 

2.unscaledDeltaTime和 time.deltaTime的区别

 3.调用顺序

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.timeScale

Time.time 和Time.realtimeSinceStartup 也是同理
后者等于前者乘上  Time.timeScale
所以判断一些暂停时的逻辑 使用Time.realtimeSinceStartup 和unscaledDeltaTime

 3.调用顺序

两个物体 同时创建A 的脚本的awake()先调用 
正确的执行顺序为 A awake() -> A onenable() ->B awake() ->B onenable()

unity中凡是使用 unityEngine 这个命名空间的脚本或者说 方法 都不能在主线程之外使用

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值