Unity3d C#模仿实现王者荣耀英雄禁用灰化(黑白化)功能含工程源码

Unity3d C#模仿实现王者荣耀英雄禁用灰化(黑白化)功能含工程源码,第1张

概述效果直接上效果,如下动图:实现这个功能的 *** 作是在用户选中英雄头像后,将头像灰化,即将UI的图片进行黑白化,这里主要通过着色器来实现,因为个人着色器 *** 作不是很多,都是借鉴网上的代码实现。着色器灰化的着色器,是面片处理时将颜色进行灰化 *** 作:fixed4frag(v2fi):SV_TARGET{ 效果

直接上效果,如下动图:

@L_403_1@实现

这个功能的 *** 作是在用户选中英雄头像后,将头像灰化,即将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#模仿实现王者荣耀英雄禁用灰化(黑白化)功能含工程源码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1211870.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存