[英]how to draw rectangle on texture2D Unity3D
我想在我点击的地方完美地在网格上绘制一个矩形。 我正在使用 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 时,我丢失了数据并且我的矩形在我单击的地方并不完美。
任何想法如何做得更好? 也许不是循环,或者我应该多算一些?
感谢您的帮助!
(int)yStartCorner
通过在逗号之后切割任何东西来将float
解析为int
。
您应该使用例如Mathf.RoundToInt
获得更准确的结果
Mathf.RoundToInt(yStartCorner)
现在可以正确向上舍入 ( > x,5
) 或向下舍入 ( < x,5
)。
如果数字以 .5 结尾,因此它位于两个整数的中间,其中一个是偶数,另一个是奇数,则返回偶数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.