前言
看了大佬恬静小魔龙的帖子,正好有这个需求,然后复制过来使用,但是发现,复制过来后,箭头导向的路径中,只有一个箭头,这显然不能满足我当下的需求,所以改了一下Shader。
先看改进后的效果
一、修改的内容
1.大佬的Shader中 Properties只有两个属性:_MainTex和_ScrollYSpeed。
我增加了一个属性:_ScrollYMultiplier
o.uv = v.uv * float2(1, _ScrollYMultiplier);
这段代码将原始的纹理坐标v.uv与_ScrollYMultiplier相乘,实现了纵向纹理坐标的缩放。
2.还在frag函数中,增加了以下代码:
uv.y -= _ScrollYSpeed * _Time;
uv.y -= floor(uv.y) / _ScrollYMultiplier;
uv.y = frac(uv.y * _ScrollYMultiplier);
这段代码对纵向纹理坐标进行了调整,实现了纹理在Y轴上的滚动效果,并且根据_ScrollYMultiplier进行了调整。
总结来说:我在纹理坐标的处理上增加了_ScrollYMultiplier属性,使纹理在Y轴方向上可以根据这个属性进行缩放,同时也增加了更复杂的纵向滚动效果的计算。
二、具体代码
现在可以通过暴露出来的两个值,去调整移动的前进和后退,还可以调整数量、缩放;
具体代码如下:
Shader "Custom/NavPathArrow"
{
Properties
{
_MainTex("Texture", 2D) = "white" {}
_ScrollYSpeed("Y Scroll Speed", Range(-20, 20)) = 2
_ScrollYMultiplier("Y Scroll Multiplier", Range(1, 10)) = 1
}
SubShader
{
Tags { "Queue" = "Transparent" "RenderType" = "Transparent" }
LOD 100
Cull 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;
};
sampler2D _MainTex;
float4 _MainTex_ST;
fixed _ScrollYSpeed;
float _ScrollYMultiplier;
v2f vert(appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv * float2(1, _ScrollYMultiplier);
return o;
}
fixed4 frag(v2f i) : SV_Target
{
fixed2 uv = i.uv;
uv.y -= _ScrollYSpeed * _Time;
uv.y -= floor(uv.y) / _ScrollYMultiplier;
uv.y = frac(uv.y * _ScrollYMultiplier);
fixed4 col = tex2D(_MainTex, uv);
return col;
}
ENDCG
}
}
}
总结
此教程根据恬静的小魔龙大佬代码进行改进
原链接:https://blog.csdn.net/q764424567/article/details/123811819?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169035848016800182774737%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=169035848016800182774737&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-2-123811819-null-null.268v1koosearch&utm_term=%E5%AF%BC%E8%88%AA&spm=1018.2226.3001.4450文章来源:https://www.toymoban.com/news/detail-827375.html
图片源文件我也放一个 以后备用
文章来源地址https://www.toymoban.com/news/detail-827375.html
到了这里,关于Unity引导路径箭头Shader的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!