【问题标题】:how to draw rectangle on texture2D Unity3D如何在texture2D Unity3D上绘制矩形
【发布时间】:2018-07-26 06:53:43
【问题描述】:

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

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

感谢您的帮助!

【问题讨论】:

标签: c# unity3d texture2d


【解决方案1】:
(int)yStartCorner

float 解析为int,只需剪切逗号后的任何内容。

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

Mathf.RoundToInt(yStartCorner)

现在可以正确地向上取整 (&gt; x,5) 或向下取整 (&lt; x,5)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 2011-12-05
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多