0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

UVScrollシェーダーの書き方

Last updated at Posted at 2020-09-21

はじめに

この記事は以下のサイトの記事を参考にさせていただいてます
https://qiita.com/Nekomasu/items/d50a4409e48ad77bc7f2
https://amagamina.jp/unity-shader/

制作背景的な

そもそもUVスクロールをなぜ作ろうとしたの?
->インターンの実装で少しでも画面をにぎやかしたかったから。
以上!!!

#仕様的なもの
UnlitShaderで作成
必要プロパティ
+ テクスチャを入れるための_MainTex
+ X軸のスクロールスピードを制御する_ScrollX
+ Y軸のスクロールスピードを制御する_ScrollY

時間が進むごとにスクロールさせたいので定義済みの値である_Timeをスクロールの処理に追加

実際のコード

UVScroll.shader
Shader "Unlit/UVScroll"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
		_ScrollX("X ScrollSpeed",Range(0.0,1.0))=0.1
		_ScrollY("Y ScrollSpeed",Range(0.0,1.0))=0.2
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            // make fog work
            #pragma multi_compile_fog

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                UNITY_FOG_COORDS(1)
                float4 vertex : SV_POSITION;
            };

            sampler2D _MainTex;
            float4 _MainTex_ST;
			float _ScrollX;
			float _ScrollY;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                UNITY_TRANSFER_FOG(o,o.vertex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
				i.uv.x += _ScrollX * _Time;
				i.uv.y += _ScrollY * _Time;
                // sample the texture
                fixed4 col = tex2D(_MainTex, i.uv);
                // apply fog
                UNITY_APPLY_FOG(i.fogCoord, col);
                return col;
            }
            ENDCG
        }
    }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?