我想在我点击的网格上完美地绘制一个矩形。 我使用raycast hit.textureCoord在纹理位置上抓鼠标。我存储了两个点 - 左下角和右上角。
我正在尝试使用以下方式绘制矩形:
for (int y = (int)yStartCorner; y < yEndCorner; y++)
{
for (int x = (int)xStartCorner; x < xEndCorner; x++)
{
texture.SetPixel(x, y, Color.black);
}
}
texture.Apply();
但这是精确的问题。当我将float textureCoord更改为int时,我丢失了数据并且我的矩形在我点击的位置并不完美。
任何想法如何做得更好?也许不是循环或者我应该多计算一些东西?
感谢您的帮助!
答案 0 :(得分:0)
(int)yStartCorner
只需将逗号后的所有内容都切掉即可将float
解析为int
。
例如,您应该获得更准确的结果Mathf.RoundToInt
Mathf.RoundToInt(yStartCorner)
现在可以正确地向上舍入(> x,5
)或向下舍入(< x,5
)。
如果数字以.5结尾,则位于两个整数之间,其中一个是偶数,另一个是奇数,则返回偶数。