Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在texture2D Unity3D上绘制矩形_C#_Unity3d_Texture2d - Fatal编程技术网

C# 如何在texture2D Unity3D上绘制矩形

C# 如何在texture2D Unity3D上绘制矩形,c#,unity3d,texture2d,C#,Unity3d,Texture2d,我想在网格上单击的地方完美地绘制一个矩形。 我正在使用raycast hit.textureCoord将鼠标置于纹理位置。我存储两个点-左下角和右上角 我正在尝试使用以下方法绘制矩形: for (int y = (int)yStartCorner; y < yEndCorner; y++) { for (int x = (int)xStartCorner; x < xEndCorner; x++) { texture.SetPixel(x, y, C

我想在网格上单击的地方完美地绘制一个矩形。 我正在使用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();
for(int y=(int)yStartCorner;y
但这是精度的问题。当我将float-textureCoord更改为int时,我丢失了数据,并且我的矩形在我单击的位置不完美

有没有办法做得更好?也许不是循环,或者我应该再数一数

谢谢你的帮助

(int)yStartCorner
通过在逗号后剪切任何内容,将
浮点
解析为
int

你应该使用例如

现在可以正确地向上取整(
>x,5
)或向下取整(

如果数字以.5结尾,因此它是两个整数的中间值,其中一个是偶数,另一个是奇数,则返回偶数


您是第一次从hit.textureCoord获取像素int坐标吗?像这里
Mathf.RoundToInt(yStartCorner)