如何在texture2D Unity3D上绘制矩形

时间:2018-02-15 13:33:31

标签: c# unity3d material texture2d

我想在我点击的网格上完美地绘制一个矩形。 我使用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时,我丢失了数据并且我的矩形在我点击的位置并不完美。

任何想法如何做得更好?也许不是循环或者我应该多计算一些东西?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

(int)yStartCorner

只需将逗号后的所有内容都切掉即可将float解析为int

例如,您应该获得更准确的结果Mathf.RoundToInt

Mathf.RoundToInt(yStartCorner)

现在可以正确地向上舍入(> x,5)或向下舍入(< x,5)。

  

如果数字以.5结尾,则位于两个整数之间,其中一个是偶数,另一个是奇数,则返回偶数。