当前位置: 首页 > 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 { "RenderType"="Transparent" "Queue"="Transparent"}LOD 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.xdnf.cn/news/535069.html

相关文章:

  • 无符号长整型数x的循环右移
  • Docker构建 Dify 应用定时任务助手
  • unity 第一人称控制器
  • std::ranges::views::as_const 和 std::ranges::as_const_view
  • ABAP创建类
  • 【Tools】VMware Workstation 17.6 Pro安装教程
  • windows使用ollama部署deepseek及qwen
  • SnapEdit安卓版:AI赋能,一键抠图与创意编辑
  • 创新点!贝叶斯优化、CNN与LSTM结合,实现更准预测、更快效率、更高性能!
  • 基于jsp+mysql+Spring的Springboot旅游网站管理系统设计和实现
  • OpenWeatherMap API ,常见的方式来管理 API Key:
  • 系统思考:动态性复杂
  • 0519Java面试题总结
  • 网络漏洞扫描系统都有哪些类型?
  • PAW3950DM-T5QU游戏级光导航芯片
  • 博图1200硬件组态与启保停程序编写步骤详解
  • AM32电调学习解读九:ESC上电启动关闭全流程波形分析
  • 无人机遥控器光纤通信模块技术要点!
  • 前端(vue)学习笔记(CLASS 6):路由进阶
  • 公网ip是固定的吗?动态ip如何做端口映射?内网ip怎么让外网远程访问?
  • FastAPI自定义异常处理:优雅转换Pydantic校验错误
  • 【占融数科-注册/登录安全分析报告】
  • python里的\和/有什么区别
  • 汇编:电子计数器
  • SCT2A10一款4.5V-85V 0.6A 高效率同步可调频率的降压DCDC转换器
  • Kubernetes高阶使用指南:深入探索容器编排的艺术
  • 基于大模型的手术全流程智能决策支持系统大纲
  • 关于systemverilog中在task中使用force语句的注意事项
  • 核保核赔的集中管理方案
  • GO语言学习(五)