-
오늘은 전에 했던 x,y축으로 값을 넣는대로 움직이는 숫자패드에 이어서 이번엔 UV가 자동으로 흘러갈 수 있게 해주겠다.
UV가 자동으로 흘러가게 하기 위해서는 _Time이라는 변수를 사용할 것이다
_Time 변수란 씬이 열리고 난뒤의 시간이다
(x, y, z, w)는 (t/20, t, t*2, t*3) , xyzw는 rgba와 대응된다
_Time.x : 1/20 속도
_Time.y : 원래 시간
_Time.z : 2배 속도의 시간
_Time.w : 3배 속도의 시간이것만 보면 이걸 도대체 어떻게 써먹는건지 막막하다. 이제 스크립트에 적용해보자
void surf (Input IN, inout SurfaceOutputStandard o) { float2 uv = IN.uv_Texture; fixed4 c = tex2D(_Texture, uv + _Time.y); o.Emission = c.rgb; }
아주 간단하다 uv에다 _Time.(x&y)를 더하거나 빼주기만 하면된다. 위 스크립트에서는 _Time.y를 더해주었다
이렇게하면 그림이 (0,0) 좌측 아래 방향으로 내려가는것을 볼 수 있다.
이유는 uv에 _Time.y값을 더해줬으니 x축과 y축 모두 영향을 받았기 때문이다
void surf (Input IN, inout SurfaceOutputStandard o) { float2 uv = float2(IN.uv_Texture.x + _Time.y, IN.uv_Texture.y); fixed4 c = tex2D(_Texture, uv); o.Emission = c.rgb; }
x축에만 영향을 주기 위해서는 이런 식으로 스크립트를 짜주면 된다
애초에 uv변수에 _Time.y를 더해준 x축과 y축 값을 넣어준뒤 tex2D에는 uv만 넣어주면 된다
void surf (Input IN, inout SurfaceOutputStandard o) { float2 uv = float2(IN.uv_Texture.x, IN.uv_Texture.y + _Time.y); fixed4 c = tex2D(_Texture, uv); o.Emission = c.rgb; }
y축도 마찬가지. 만약 위아래, 좌우 방향을 바꾸고 싶다면 _Time.(x & y)의 뒤에 -1을 곱해주면 된다
'유니티 > 게임그래픽' 카테고리의 다른 글
_Time 변수 스크립트 기본형 (0) 2024.02.20 불 이펙트 (1) 2024.02.20 UV (0) 2024.02.19 이미지 흑백으로 만들기, Lerp 함수 (0) 2024.02.19 텍스쳐 입력받기 (0) 2024.02.19