参考了【Unity3D日常开发】Unity3D中实现箭头指向目标点的效果_51CTO博客_unity看向目标点这篇文章制作了场景 但是直接使用这个绘制时在转动镜头时会有路径重叠并被覆盖的问题
问了同事的TA稍微修改了下shader:代码如下
Shader "Custom/PathShader"
{
Properties
{
_MainTex("Texture", 2D) = "white" {}
_ScrollYSpeed("Y Scroll Speed", Range(-20, 20)) = 2
}
SubShader
{
Tags { "Queue" = "AlphaTest" "RenderType" = "AlphaTest" }
LOD 100
//双面渲染
Cull Back
//ZWrite On
//Alpha混合
//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;
v2f vert(appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
return o;
}
fixed4 frag(v2f i) : SV_Target
{
fixed2 uv = i.uv;
uv.y += _ScrollYSpeed * _Time;
fixed4 col = tex2D(_MainTex, uv);
clip(col.w-0.1 );
return fixed4(col.xyz,1);
}
ENDCG
}
}
}
效果如下:
不过涉及到有模型裁剪,变色等问题 看情况使用