Unity 래스터에서 스크롤
이런 걸 찾을 수 없어서 스스로 이런 기사를 만들어 봤어요.
만약 어디에 이미 출전했다면, 떳떳하지 못했을 것이다
래스터 스크롤
래스터 스크롤: Wiki
나는'마지막 스크롤 바'를 검색해서 애니메이션을 보는 것이 가장 이해하기 쉽다고 생각한다.
이것 괜찮아요?
이런 느낌이 흔들리고 있다.
설치 방법
PostEffect(ImageEffect)를 사용합니다.
일단 스크립트부터.
PostEffect.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class PostEffect : MonoBehaviour
{
public Material mat;
public void OnRenderImage(RenderTexture source, RenderTexture destination)
{
Graphics.Blit(source, destination, mat);
}
}
On RenderImage를 사용하여 그릴 이미지(텍스쳐)에 소재를 적용합니다.이번 경우 이 소재는 거리측정기에서 설정한 것이다.
색인에 소재를 설정하려면 래스터 스크롤 텍스쳐에 사용할 재료를 설정합니다.유닛에서 소재를 제작하여 아래의 차폐물을 적용합니다.
RasterScroll.shader
Shader "Custom/RasterScroll"{
Properties{
_MainTex("MainTex", 2D) = "white" {}
_Level("Level", Range(0, 1)) = 0.2
_Speed("Speed", Range(0, 3)) = 0.5
_RoundTrip("RoundTrip", Range(1, 5)) = 1
}
SubShader{
Pass{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata_t
{
float4 vertex:POSITION;
float3 normal:NORMAL;
float4 texcoord:TEXCOORD0;
};
struct v2f
{
float4 pos:POSITION;
float2 uv:TEXCOORD0;
};
sampler2D _MainTex;
float4 _MainTex_ST;
float _Level;
float _Speed;
float _RoundTrip;
v2f vert(appdata_t v)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}
float4 frag(v2f i) :COLOR{
//1秒で _Speed ずつ加算されるタイムの作成
float time = _Time.y * _Speed;
//y座標(0 ~ 1)における波形のスタート位置のズレ
float dy = time - floor(time);
//x座標(0 ~ 1)のズレ
float dx = sin(radians((i.uv.y - dy) * 360 * floor(_RoundTrip))) * _Level;
//ピクセルの位置を計算
float2 uv = float2(i.uv.x + dx, i.uv.y);
//x座標が範囲外になってるものは黒で塗りつぶす
if (uv.x < 0 || 1 < uv.x)
return float4(0, 0, 0, 0);
return tex2D(_MainTex, uv);
}
ENDCG
}
}
}
이 재료의Reference
이 문제에 관하여(Unity 래스터에서 스크롤), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Es_Program/items/fcc5c74e97cdfba276df텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)