当前位置:  开发笔记 > 编程语言 > 正文

浮点值默认为1或0

如何解决《浮点值默认为1或0》经验,为你挑选了1个好方法。

我正在尝试为Unity中的CellSize制定一些东西.这适用于GridLayoutGroup组件.我发现用计算器完成的工作完全正常:Screen.Width/1280,Screen.Height/720.由于我使用720p作为基本分辨率,一切看起来很好,我用它作为基础.对于720p的单元尺寸,100x100看起来很棒.

例如,他们的分辨率是1280:1024它应该出来(100,142)然而它总是出来(1.0,1.0).如果分辨率很小......比如320x200就会出现(0.0,0.0).

这是我的代码:

SlotPanel.GetComponent().cellSize = new Vector2((Cam.pixelWidth / 1280) * 100, (Cam.pixelHeight / 720) * 100);

Cam是玩家使用的相机.我尝试的另一个代码是:

SlotPanel.GetComponenet().cellSize = new Vector2((Screen.Width / 1280) * 100, (Screen.Height / 720) * 100);

两者都会导致同样的问题.在这一点上,我对自己的生气感到失望.我不明白为什么数学是正确的,但它不能正常工作.



1> Bathsheba..:

Cam.pixelWidth / 1280&C.以整数算术计算 ; 任何余数都被丢弃.

重写以100.0 * Cam.pixelWidth / 1280确保评估以浮点进行(由于两个积分参数的推广).还有其他方法,但我觉得这个方法最清楚,因为更改第一个系数会告诉读者你的代码从一开始你想做什么.

(如果要求表达式的类型为单精度浮点类型,则使用100f代替100.0).

这是使用多余括号实际上有害的情况之一.


并且不要忘记100.0f后面的`f`,因为Unity使用浮点数而不是双精度数
推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有