Shader "Unlit/Shield"
{Properties{_Color("Color", Color) = (1,1,1,1)//圈内的颜色_RimColor("Rim Color", Color) = (1,1,1,1)//边缘颜色_RimScale("Rim Scale", Float) = 1//边缘大小_Transparent("Transparent", Range(0, 1)) = 0//控制透明度}SubShader{Tags { "RenderType" = "Transparent" "Queue" = "Transparent" "IgnoreProjector" = "True" "ForceNoShadowCasting" = "True" }LOD 300//Unity会把 CGINCLUDE 和 ENDCG 之间的代码插入到每一个pass中,已达到声明一遍,多次使用的目的。CGINCLUDE#include "UnityCG.cginc"fixed4 _Color;fixed4 _RimColor;float _RimScale;fixed _Transparent;struct a2v{float4 vertex : POSITION;float3 normal : NORMAL;};struct v2f{float4 pos : SV_POSITION;float3 worldNormal : TEXCOORD1;float3 worldViewDir : TEXCOORD2;};v2f vert(a2v v){v2f o;o.pos = UnityObjectToClipPos(v.vertex);o.worldNormal = UnityObjectToWorldNormal(v.normal);o.worldViewDir = UnityWorldSpaceViewDir(v.vertex);return o;}fixed4 frag(v2f i) : SV_TARGET{fixed3 worldNormal = normalize(i.worldNormal);fixed3 worldViewDir = normalize(i.worldViewDir);// 计算法线和视线的点积结果,越靠近边缘,值越趋近于1fixed rim = 1 - abs(dot(worldNormal, worldViewDir));fixed4 finalColor = fixed4(lerp(_Color.rgb, _RimColor.rgb, rim* _RimScale), max(rim* _RimScale, _Transparent));return finalColor;}ENDCGPass {Cull OffZWrite OffBlend SrcAlpha OneMinusSrcAlphaCGPROGRAM#pragma vertex vert#pragma fragment fragENDCG}}
}

可以自己更改护盾的颜色,用到了检测边缘的知识而已,挺简单的东西。

Unity会把 CGINCLUDE 和 ENDCG 之间的代码插入到每一个pass中,已达到声明一遍,多次使用的目的。

UnityShader 简单护盾效果相关推荐

  1. Unity Shader 之 简单 护盾Shield 效果的实现

    Unity Shader 之 简单 护盾Shield 效果的实现 目录 Unity Shader 之 简单 护盾Shield 效果的实现 一.简单介绍 二.实现原理

  2. 简单力场护盾效果ASE实现笔记

    提要:基于Emission,使用多个模块分别实现细分效果并最终组装成完整护盾效果:使用Rigidbody进行碰撞检测,通过脚本将位置传进Shader,播放由参数控制的冲击效果. https://vdn ...

  3. 带顶点动画的护盾效果——UnityShader学习笔记

    文章目录 自言自语 一.效果 二.C# 三.Shader 总结 自言自语 最近又是很久没有更新笔记了.原因有二. 一.最近一直再啃一个看起来酷炫的护盾效果 啃了好久啊.直至效果满意 也理解了. 这个是 ...

  4. java喷泉编码_好程序员Java教程分享使用JS实现简单喷泉效果

    原标题:好程序员Java教程分享使用JS实现简单喷泉效果 好程序员Java教程分享使用JS实现简单喷泉效果,最近,在教学生使用JS的基本操作,为了练习JS的基本作用,特地写了一个喷泉效果,代码如下: ...

  5. java喷泉编码_Java干货分享使用JS实现简单喷泉效果

    Java干货分享使用JS实现简单喷泉效果,最近,在教学生使用JS的基本操作,为了练习JS的基本作用,特地写了一个喷泉效果,代码如下: 页面代码: body{ margin: 0px; } Partic ...

  6. android app启动图片 加动画效果,Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案...

    Android Studio开发APP启动程序时开屏简单动画效果快速有效解决方案 大家在设计APP的末期,都会想给APP搞一些"花里胡哨"的特效来提高APP的B格.博主表示亲测有效 ...

  7. php弹幕,PHP直播源码,实现简单弹幕效果

    PHP 直播源码实现简单弹幕效果的相关代码 html> 大作业_弹幕 * { padding: 0; margin: 0; } body { font-family: 'Segoe UI', T ...

  8. js html css淘宝足迹日历效果,JavaScript实现简单日历效果

    本文实例为大家分享了JavaScript实现简单日历效果的具体代码,供大家参考,具体内容如下 实现效果: 根据所选择的年月,列出当月对应是周几,效果图如下: 实现思路: 1.使用select标签保存年 ...

  9. Android直播app源代码超简单气泡效果

    Android直播app源代码超简单气泡效果实现的相关代码 1.1 定义气泡 气泡效果我们关心的属性并不多,主要有这几种:半径.坐标.上升速度.水平平移速度.由于我们只在 View 内部使用,因此直接 ...

最新文章

  1. Android - 广播机制和Service
  2. Web网站架构演变—高并发、大数据
  3. Openlayers中设置定时绘制和清理直线图层
  4. 数据结构与算法(C++)– 二叉查找树(Binary Search Tree )
  5. Jenkins X:基于Kubernetes的CI/CD平台
  6. Java Web学习总结(3)Servlet(二)
  7. SAP UI5 jQuery.sap.includeStyleSheet
  8. 如何使用async和await这对组合设计统一的取Access Token的函数
  9. Java面试那些事--可能会问的那些问题(中高级篇)
  10. 仅需10道题轻松掌握Python字符串方法 | Python技能树征题
  11. 苹果手机开不了机怎么办
  12. 工作中有可能用到的运维小知识《现查现用》
  13. 宝宝为什么不吃奶粉,奶爸必读文章
  14. ipad协议最新版本
  15. 为什么你建出的模型不好看?
  16. C语言:如何判断回文数
  17. oracle中求下月同日,以月计算的期限,自本月某日至下月同日为一个月。
  18. c语言程序设计教程 ppt,本科C语言程序设计教程教学资料包.zip-第9章.ppt
  19. FBI和DHS在响应网络攻击时的分歧分析
  20. 16进制转带符号的10进制,16进制转负数10进制

热门文章

  1. weui.js slider的使用笔记
  2. 蓝牙(BlueTooth)技术标准
  3. 树莓派3B安装64位操作系统(树莓派无需连接显示器键盘鼠标)
  4. 不带搜索框,数据同步请求,产品按字母分组组件
  5. Java基础23 网络编程 socket套接字流 TCP传输总结
  6. iPhoneX的启动图如何配置
  7. Excel 公式结果为0时不显示
  8. 浅析安全架构中遇到的问题
  9. 【对象存储】关于阿里云OSS踩坑记录
  10. 你若安好便是晴天_百度百科