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

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}}
}

相关文章:

  • C++--综合应用-演讲比赛项目
  • 10、底层注解-@Conditional条件装配
  • python可视化:公积金与商业贷款利率历年趋势1
  • 客户体验数据使用的三种视角——旅程视角
  • 升级mysql (rpm安装)
  • 【java第14集】java访问修饰符详解
  • HashMap 的特点及应用场景
  • 洛谷B3876—— [信息与未来 2015] 中间值
  • Java知识点-Stream流
  • UE5在Blueprint中判断不同平台
  • MySQL如何快速删除数据库中所有表数据
  • PyMOL结构对齐方式
  • 【深度学习新浪潮】什么是多模态大模型?
  • 列表 模版题单 12
  • Windows 如何安装CUDA
  • LeetCode 字符串类题目解析与 Java 实现指南(深度优化版)
  • leetcode 每日一题 1931. 用三种不同颜色为网格涂色
  • gtest 库的安装和使用
  • python打卡第30天
  • dbhub MCP服务搭建
  • 第78届世界卫生大会20日审议通过“大流行协定”
  • 济南一医院救护车未执行紧急任务时违规鸣笛
  • 贵州茅台:支持工作餐不上酒的规定,请投资者相信茅台创新和自我调节能力
  • 秦洪看盘|小市值股领涨,A股交易情绪复苏
  • 专访|金七猫奖得主:以非遗为舟,在现实题材中疗愈与成长
  • 国家统计局答澎湃:我国投资的潜力依然巨大,支撑投资增长的有利因素仍然比较多