当前位置: 首页 > article >正文

unity UGUI虚线框shader

在这里插入图片描述

Shader "Custom/DottedLineShader"
{Properties{_MainTex ("Texture", 2D) = "white" {}_Color("Color",COLOR) = (1,1,1,1)_LineLength("虚线长度",float) =0.08}SubShader{Tags //设置支持UGUI{ "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane"}Cull OffLighting OffZWrite OffBlend SrcAlpha OneMinusSrcAlphaLOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;float3 worldPos : TEXCOORD1;};sampler2D _MainTex;float4 _Color;float _LineLength;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;// 计算世界坐标系下的顶点位置o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;return o;}//绝对值对称法float box3(float2 uv, float left, float top){float2 b1 = 1 - step(float2(left,top),abs(uv));float value = b1.x * b1.y;return value;}//矩形框float box4(float2 uv,float left,float top, float width){float value = box3(uv,left,top);value -= box3(uv,left-width,top-width);return value;}fixed4 frag (v2f i) : SV_Target{float2 uv = i.uv;float2 center = float2(0.5,0.5);float2 halfSize =center;float2 fw = _LineLength;float2 dist = abs(uv - center);float col = 0.0;float2 pixel = uv / fw;float aspect = halfSize.y / halfSize.x;float dir = (dist.x * aspect > dist.y) ?-sign(uv.x - center.x) : sign(uv.y - center.y);float dash = step(0.5, frac((pixel.x + pixel.y) * dir / 10.0 + _Time.z));float f = box4(i.uv-center,0.5,0.5,0.03);float4 texCol = tex2D(_MainTex, i.uv);float4 fragColor =lerp(texCol,_Color, dash*f);return fragColor;}ENDCG}}
}
http://www.lryc.cn/news/2380314.html

相关文章:

  • vue2、vue3项目打包生成txt文件-自动记录打包日期:git版本、当前分支、提交人姓名、提交日期、提交描述等信息 和 前端项目的版本号json文件
  • chirpstack v4版本 全流程部署[ubuntu+docker]
  • DeepSeek 赋能数字孪生:重构虚实共生的智能未来图景
  • 每日一道leetcode(增加版)
  • 数字信号处理-大实验1.1
  • Java大厂求职面试:探讨Spring Boot与微服务架构
  • SAP ABAP 中驼峰字段名转 JSON 的实现方案
  • 对抗性机器学习:AI模型安全防护新挑战
  • [[春秋云境] Privilege仿真场景
  • Redis学习打卡-Day3-分布式ID生成策略、分布式锁
  • 计算机网络:怎么理解调制解调器的数字调制技术?
  • 数据库第二次作业--SQL的单表查询与多表查询
  • 在Cursor中启用WebStorm/IntelliJ风格快捷键
  • vue3:十三、分类管理-表格--编辑、新增、详情、刷新
  • c#基础01(.Net介绍)
  • Go语言之路————并发
  • Logrotate:配置日志轮转、高效管理Linux日志文件
  • 贵州某建筑物挡墙自动化监测
  • nginx服务器实验
  • 【算法】滑动窗口动态查找不含重复字符的最长子串
  • 高速光耦在通信行业的应用(五) | 5Mbps通信光耦的特性
  • Apidog MCP服务器,连接API规范和AI编码助手的桥梁
  • 视觉模型部署实践:低算力平台RV1106上高效部署paddlepaddle 的PicoDet目标检测模型的技术实践
  • 07、基础入门-SpringBoot-自动配置特性
  • 国内MCP服务平台推荐 AIbase推出MCP服务器客户端商店
  • Profinet转Ethernet IP主站网关:点燃氢醌生产线的智慧之光!
  • Elasticsearch 初步认识
  • 爬虫攻防战:从入门到放弃的完整对抗史与实战解决方案
  • 可变参数(Variadic Functions)- 《Go语言实战指南》
  • [ctfshow web入门] web75