直接上效果,如下动图:
这个功能的 *** 作是在用户选中英雄头像后,将头像灰化,即将UI的图片进行黑白化,这里主要通过着色器来实现,因为个人着色器 *** 作不是很多,都是借鉴网上的代码实现。
着色器灰化的着色器,是面片处理时将颜色进行灰化 *** 作:
fixed4 frag(v2f i) :SV_TARGET{ fixed4 c = i.color; if (_isGray) { c.rgb = dot(c.rgb, fixed3(0.22, 0.707, 0.071)); } return c; }
UI搭建UI如上图,主要有三个可选择的头像,有两个禁用和启用的按钮。
逻辑代码主要的功能:
点击头像有选中效果;
点击按钮后赋值/取消材质球。
using UnityEngine;using UnityEngine.UI;public class BanHeroCtrl : MonoBehavIoUr{ Image NowSelimg; //选中的头像 public Material BanMat; //禁用材质 //选择变化 public voID OnSelChange(GameObject go) { Toggle tog = go.GetComponent<Toggle>(); GameObject Cover = go.transform.Find("Cover").gameObject; if (tog.isOn) { NowSelimg = go.GetComponent<Image>(); Cover.SetActive(false); } else Cover.SetActive(true); } //点击禁用 public voID ClickBan() { if (NowSelimg != null) NowSelimg.material = BanMat; } //点击启用 public voID ClickUse() { if (NowSelimg != null) NowSelimg.material = null; }}
项目源码https://download.csdn.net/download/qq_33789001/19712212
总结以上是内存溢出为你收集整理的Unity3d C#模仿实现王者荣耀英雄禁用灰化(黑白化)功能含工程源码全部内容,希望文章能够帮你解决Unity3d C#模仿实现王者荣耀英雄禁用灰化(黑白化)功能含工程源码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)