繁体   English   中英

如何在texture2D Unity3D上绘制矩形

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM