【Shader】Unity曲面弯曲效果

【Shader】Unity曲面弯曲效果

码农世界 2024-05-27 后端 64 次浏览 0个评论

本期分享一个弯曲效果的Shader,类似于地铁跑酷的跑道

1、Shaer代码

Shader "Unlit/CurvedUnlit"
{ 
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
	}
	SubShader
	{
		Tags { "RenderType"="Opaque" }
		LOD 100
		Pass
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			// make fog work 
			#pragma multi_compile_fog
				
			#include "CurvedCode.cginc"
			ENDCG
		}
	}
}

2、使用:

  • 新建一个Shader并赋值以上代码
  • 将Shader应用在需要弯曲的物体上
  • 新建控制脚本:调整“curveStrength ”即可
    using UnityEngine;
    	[ExecuteInEditMode]
    	public class WorldCurver : MonoBehaviour
    	{
    		[Range(-0.1f, 0.1f)]
    		public float curveStrength = 0.01f;
    	    int m_CurveStrengthID;
    	    private void OnEnable()
    	    {
    	        m_CurveStrengthID = Shader.PropertyToID("_CurveStrength");
    	    }
    		void Update()
    		{
    			Shader.SetGlobalFloat(m_CurveStrengthID, curveStrength);
    		}
    	}
    

转载请注明来自码农世界,本文标题:《【Shader】Unity曲面弯曲效果》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,64人围观)参与讨论

还没有评论,来说两句吧...

Top