C# 如何在texture2D Unity3D上绘制矩形
我想在网格上单击的地方完美地绘制一个矩形。 我正在使用raycast hit.textureCoord将鼠标置于纹理位置。我存储两个点-左下角和右上角 我正在尝试使用以下方法绘制矩形: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
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)