版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/n_moling/article/details/82022172
首先,要获取鼠标点击处对应的UV坐标,详见API:
https://docs.unity3d.com/ScriptReference/RaycastHit-textureCoord.html
API中其实已经重画了图片,但只是一个像素,下面给线设置宽度:
/// <summary>
/// 画线
/// </summary>
/// <param name="point">点</param>
/// <param name="texture">贴图</param>
/// <param name="color">颜色</param>
/// <param name="width">宽度</param>
public void DrawLine(Vector2 point, Texture2D texture, Color color, float width)
{
Rect rext = new Rect(0, 0, texture.width, texture.height);
point -= new Vector2(width / 2, width / 2);
int x = Mathf.FloorToInt(point.x);
int y = Mathf.FloorToInt(point.y);
for (int i = 0; i < width; i++)
{
for (int j = 0; j < width; j++)
{
Vector2 position = new Vector2(x + i, y + j);
if (rext.Contains(position))
{
texture.SetPixel(x + i, y + j, color);
}
}
}
texture.Apply();
}
脚本下载链接:https://download.csdn.net/download/n_moling/10625147
无积分可联系,私发。