错误提示:transform.position assign attempt for 'XXX' is notvalid。Input rotation is {NaN, NaN, NaN, NaN}

笔者比较懒没有写博客的习惯啊,好久没有更新博客了,罪过罪过。

 

错误信息:

 

 

 

我遇到的报错指向了Visual Studio中的这条红色标记的语句

 

  float deserveDistance = AuxiliaryMathLibrary.GetEstimateDistance(firePoint, _target,20f, _target.GetComponent<MissileMove>().GetSpeed());
        

  lockTriger.position = _target.position + _target.forward * deserveDistance;

 

咋一看红色标记的语句好像没什么问题啊?向量赋值方式也是对的啊?但是为什么就是这句话报错呢?

 

原因在于deserveDistance 这个变量的值不安全导致。

 

不就是一个float 变量么?怎么会不安全呢?经过仔细查看发现了一个很低级的问题。

deserveDistance  这个变量是经过除法算出来的

那就是在代码中使用到数学计算时,如果是除法 那么大家要小心了。一定要确保“除数”不得为0

如果除数变量是一个动态获取的,获得一个0怎么办呢?

解决方法就是

 

if (0 == value)
   value = 0.0001f;

这么做即可。

 

 

 

 

 

现在deserveDistance 变量已经变得安全了。Unity也不再报错。

 

总结:除数要加为0判断!除数要加为0判断!除数要加为0判断!  重要的事情说3遍。。。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值