Unity 模型涂鸦

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

无积分可联系,私发。

猜你喜欢

转载自blog.csdn.net/n_moling/article/details/82022172