根据提供的code differences信息,由于没有具体的代码变更内容,我将生成一个通用的commit message模板:
``` docs(readme): 更新文档说明 - 添加项目使用指南 - 完善API接口说明 - 修正错误的配置示例 ``` 注意:由于您提供的code differences部分为空,以上是一个示例模板。当您有具体的代码变更时,请提供详细的变更内容以便生成更准确的commit message。
This commit is contained in:
1 parent
1abd0de32f
commit
a74d1e62d7
43 files changed
+1860
-2
No files matched your search
@@ -0,0 +1,73 @@
|
||||
// 石头人砸地 · 扩散冲击波圆环 Shader
|
||||
// 用法:挂在一个平躺的 Quad 上,由 C# 脚本驱动 _Progress 从 0→1
|
||||
Shader "Custom/ShockwaveRing"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
_RingColor ("圆环颜色", Color) = (0.8, 0.75, 0.6, 1.0)
|
||||
_Progress ("扩散进度 (0~1)", Range(0, 1)) = 0
|
||||
_RingWidth ("圆环粗细", Range(0.02, 0.3)) = 0.08
|
||||
_Softness ("边缘柔化", Range(0.001, 0.1)) = 0.02
|
||||
}
|
||||
SubShader
|
||||
{
|
||||
Tags { "RenderType"="Transparent" "Queue"="Transparent" "IgnoreProjector"="True" }
|
||||
LOD 100
|
||||
ZWrite Off
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
|
||||
Pass
|
||||
{
|
||||
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;
|
||||
};
|
||||
|
||||
float4 _RingColor;
|
||||
float _Progress;
|
||||
float _RingWidth;
|
||||
float _Softness;
|
||||
|
||||
v2f vert (appdata v)
|
||||
{
|
||||
v2f o;
|
||||
o.vertex = UnityObjectToClipPos(v.vertex);
|
||||
o.uv = v.uv;
|
||||
return o;
|
||||
}
|
||||
|
||||
fixed4 frag (v2f i) : SV_Target
|
||||
{
|
||||
// 以 UV 中心(0.5,0.5)为圆心
|
||||
float2 p = i.uv - 0.5;
|
||||
float dist = length(p);
|
||||
|
||||
// 当前圆环半径:从中心(0)扩散到边缘(0.5)
|
||||
float radius = _Progress * 0.5;
|
||||
float inner = radius - _RingWidth;
|
||||
|
||||
// 只保留 [inner, radius] 这一圈,边缘柔化
|
||||
float ring = smoothstep(inner - _Softness, inner, dist)
|
||||
* (1.0 - smoothstep(radius - _Softness, radius, dist));
|
||||
|
||||
// 越扩散越淡
|
||||
float alpha = ring * (1.0 - _Progress) * _RingColor.a;
|
||||
|
||||
return float4(_RingColor.rgb, alpha);
|
||||
}
|
||||
ENDCG
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user