いまUVスクロールを使って海を作っているのですが、UVスクロールのスクロールする方向に向かってPlayerを動かすとUVスクロールだけがカクつきますどういう事かと言いますと**UVスクロールのスクロールする方向が左から始まって右へ向かっている時にそれに合わせてPlayerの進む方向を右にするとUVスクロールがかくついてしまいます。**コンソールには何も出ていません、
Unityroomに乗せておきます(unityroomに乗せている方はsurfaceShaderを用いて海を表現しています)
誰か解決案くれるとありがたいです。
試したこと
①
surfeceShaderを用いて海を作っていましたがそれでも同じ症状が出ました(そのshaderのコードは下記に書いてあります)
②
①がダメだったので試しにshaderGraphを用いて海を作っていましたがそれでも同じ症状が出ました(そのShaderGraphは下記に画像で貼ってあります)
開発環境表記
Unity 2020.1.14f1
プラットフォームはWebGLです
①のsurfeceShaderコード内容(Shaderを触るのは初めてですので変なところあったら申し訳ございません)
HLSL
1Shader "Custom/water" 2{ 3 Properties 4 { 5 _MainTex("Water Texture", 2D) = "white" {} 6 _MyEmissionColor("Emission Color", Color) = (0,0,0,0) 7 _Contrast("Contrast", Range(0.1,20)) = 10 8 _Color("Color", Color) = (1,1,1,1) 9 } 10 SubShader 11 { 12 Tags { "RendererType" = "Transpearent" "Queue" = "Transparent"} 13 LOD 200 14 15 CGPROGRAM 16 #pragma surface surf Standard alpha:fade vertex:vert 17 18 #pragma target 3.0 19 20 fixed4 _Color; 21 fixed4 _MyEmissionColor; 22 sampler2D _MainTex; 23 float _Contrast; 24 25 struct Input 26 { 27 float2 uv_MainTex; 28 }; 29 30 31 32 void vert(inout appdata_full v, out Input o) 33 { 34 35 36 37 38 UNITY_INITIALIZE_OUTPUT(Input, o); 39 float amp = 1 * sin(_Time * 100 + v.vertex.x * 100); 40 v.vertex.xyz = float3(v.vertex.x, v.vertex.y + amp, v.vertex.z); 41 //v.normal = normalize(float3(v.normal.x+offset_, v.normal.y, v.normal.z)); 42 } 43 44 void surf(Input IN, inout SurfaceOutputStandard o) 45 { 46 float c = (IN.uv_MainTex * 0.5);//(perlinNoise( IN.uv_MainTex*6))*0.5+0.5; 47 48 o.Alpha = 0.4; 49 50 c = 1 / (1 + exp(-_Contrast * (c - 0.5))); 51 52 fixed2 uv = IN.uv_MainTex + c; 53 54 uv.x += 2 * _Time; 55 uv.y += 4 * _Time; 56 o.Albedo = tex2D(_MainTex, uv) - _Color; 57 o.Emission = _MyEmissionColor; 58 59 } 60 61 62 ENDCG 63 } 64 FallBack "Diffuse" 65} 66
試しにShadeGraphでやってみましたがそれでも結果は同じでした(そのshaderGraphの画像)
あなたの回答
tips
プレビュー