黑茶色褪色后什么颜色,RGB颜色模型
颜色样本是图。 你不需要在意形状和颜色的分布。 根据业务的需要让美工制作这张图就可以了。
在这里,我们将使用这样的图作为调色板图。
需求:用鼠标单击/按下此UI图时,为模型分配与该位置对应的颜色值。 模型的变色请看这篇博文。 https://blog.csdn.net/itsxwz/article/details/89376498
可以看出,此图不是均匀的全色分布,而是由许多小的同色块组成。 用颜色值(0~255 )和半径处理不好。
用别的想法吧。 获取与鼠标点对应的图像像素点的颜色值。
API:texture2d.getpixel(intx,int y ); 帮助我们达到上述目的。
我们是Input.mousePosition; 获取鼠标点的位置。
那么,如何将mousePos转换为pixelPos呢?
调色板在Canvas上的位置是任意的,因此可以确定中心点centerPos,即上图的中心点。 我们用两种方法取得中心点。 1 ) Input.mousePosition; 但人眼定位、人工点击的方式必然存在误差,所以采用方式2; 2 )从色盘物体的RectTransform的PosX和PosY计算,画面的中心点(0,0 )位于画面的左中央时,色盘的中心点为) PosX,Screen.height/2 PosY。
pixel pos=mouse pos-centerpostex/2; 的转换可以获取该像素点的颜色。
注意判断mousePos是否在托盘内。 否则,无法读取像素点的色值。
代码实现如下。
privatevoidchoosecolorbyclickcolorwheel ((if ) input.getmousebuttondown(0)|input.getmousebutton ) vec toon intx=() inty=(int ) ) mousePos.y - centerPos.y ); if (x * xy * y=mathf.pow (tex.width/2,2 ) ) {//tex为色盘图pixelcolor=tex.getpixel ) xtex.width/2,ytex.htex ? 不限于“色盘”。
最后,我想谈谈坐标问题:
【20190713】
以上可以先获取图像的Pixel点,并根据坐标将其转换为色度值。
3359 me.csdn.net/QQ _ 29487981 masaka _ yogi
上面的大人物可以找到api直接取得像素点坐标:
publicstaticboolscreenpointtolocalpointinrectangle (recttransformrect,Vector2 screenPoint,Camera cam,out Vector2 localPoint )
ps:namespace UnityEngine