Unity Vector3的几种创建方法开销比较

Unity Vector3的几种创建方法开销比较

本次研究 new Vector3(), new Vector3(0,0,0)Vector3.zero 三者的开销比较
代码如下

//一
var vec = new Vector3();
long time1 = GetTimeStamp();
for (int i = 0; i < 10000000; i++)
{
    vec = new Vector3();
}
long time2 = GetTimeStamp();
Debug.Log(time2 - time1);
vec.x = 0;

//二
var vec = new Vector3();
long time1 = GetTimeStamp();
for (int i = 0; i < 10000000; i++)
{
    vec = new Vector3(0,0,0);
}
long time2 = GetTimeStamp();
Debug.Log(time2 - time1);
vec.x = 0;

//三
var vec = new Vector3();
long time1 = GetTimeStamp();
for (int i = 0; i < 10000000; i++)
{
    vec = Vector3.zero;
}
long time2 = GetTimeStamp();
Debug.Log(time2 - time1);
vec.x = 0;

每个通过10次执行打印得出:
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
计算平均数得到的结果是:
32.2、90.6、90.0

综上所述消耗的时间对比为 new Vector3() < Vector3.zero < new Vector3(0,0,0).
但是有人说 Vector3.zero 并不比 new Vector3(0,0,0) 快,参考这位仁兄的见解https://www.jianshu.com/p/776e8998d7c6?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

那其实按照测试的结果来看,相差并不是很多,可以忽略不记。

但是 new Vector3() 是相差挺大的,猜想是因为省掉了参数,所以节省了开销。如果以后为了得到一个(0,0,0)的向量,那可以使用new Vector3()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值