项目分享:https://github.com/Claymoreno1/RenderTexture
添加了gamma矫正和裁剪功能,添加当前图片分辨率的显示。
关于裁剪选择时的框线,我是用的LineRenderer,然后给它一个material,添加一个由色块组成的纹理
方便采样,这样框线会有颜色变化,不至于太单调。
用户一共有四种拖拽方式,所以我们还需要根据用户的推拽方式判断裁剪的坐标
首先是Line的实现部分
if (Input.GetMouseButtonDown(0))
{
linerd.SetPosition(0, mospos = Input.mousePosition);
Gamevars.tailoring = true;
linerd.SetWidth(1.6f, 1.6f);
}
linerd.SetPosition(1, new Vector2(Input.mousePosition.x, mospos.y));
linerd.SetPosition(2, new Vector2(Input.mousePosition.x, Input.mousePosition.y));
linerd.SetPosition(3, new Vector2(mospos.x, Input.mousePosition.y));
linerd.SetPosition(4, mospos);
if (Gamevars.tailoring && Input.GetMouseButtonUp(0))
{
if (true)
{
Vector2 sizedelta = new Vector2(Gamevars.imagewidth, Gamevars.imageheight) * Gamevars.size;
Vector2 originpos = new Vector2(image.transform.position.x, image.transform.position.y - sizedelta.y);
Gamevars.xy[0, 0] = (mospos.x - originpos.x)/sizedelta.x;
Gamevars.xy[0, 1] = (mospos.y - originpos.y)/sizedelta.y;
Gamevars.xy[1, 0] = (Input.mousePosition.x - originpos.x) / sizedelta.x;
Gamevars.xy[