首页 > 代码库 > unity 选色板
unity 选色板
版权声明:本文为博主原创文章,转载请注明出处!
前段时间做了一个小蛋糕,里面要用到一个选色(左上角那个哦)
废话不多说 先上代码
[csharp] view plain copy print?
- 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 选色板
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。