unity 选色板
Posted 大.罗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity 选色板相关的知识,希望对你有一定的参考价值。
版权声明:本文为博主原创文章,转载请注明出处!
前段时间做了一个小蛋糕,里面要用到一个选色(左上角那个哦)
废话不多说 先上代码
- using UnityEngine;
- using UnityEngine.UI;
- using System.Collections;
- public class setColor : MonoBehaviour {
- public GameObject m;
- public static setColor _instance;
- float temp;
- public Texture2D setCo;
- private RectTransform im;
- public float _sizeDeltaY;
- public float local_V;
- public float local_y;
- public float scenceY;
- private float height;
- private float baifeibi;
- void Awake()
- {
- _instance = this;
- }
- void Start()
- {
- height = Screen.height;
- im = GetComponent<RectTransform> ();
- _sizeDeltaY = im.sizeDelta.y;
- local_V = im.anchoredPosition3D.y;
- local_y = im.anchoredPosition3D.y + _sizeDeltaY;
- }
- // Update is called once per frame
- public void OnMouseDown ()
- {
- if (m == null)
- return;
- temp = (Input.mousePosition.y - height);
- baifeibi=(temp - local_V)/_sizeDeltaY;
- //(int)(baifeibi*setCo.height)
- Color co= setCo.GetPixel (1,(int)(baifeibi*setCo.height));
- print ((int)(baifeibi * setCo.height));
- MeshRenderer[] mrs;
- mrs = m.GetComponentsInChildren<MeshRenderer>();
- foreach (var item in mrs)
- {
- foreach (Material items in item.materials)
- {
- items.color = co;
- }
- }
- }
- }
首先获取 选色版被点击时的点击坐标相对于选色版本身的百分比
然后读取选色版这张图片实际百分比的实际像素
获取像素的颜色信息
然后赋值给物体
当然这里有个坑 会报无法读写像素的错误 你可以参照下面设个设置图片的属性
如果你想获取图片的绝对像素信息(选折板这里就是需要绝对坐标)
那么 你的anchors 应该是这样
好了 赶紧做一个自己的着色版吧 (这个是一维的 只需要Y轴的百分比 二维的也基本一致需要获取下X轴 )
以上是关于unity 选色板的主要内容,如果未能解决你的问题,请参考以下文章
Unity报错:Read only asset Packages/com.xxxxx.xxx.xxxx/Editor/VSCodeDiscovery.cs.IPGSD has no meta(代码片段