셰이더 그래프란?

HLSL(High Level Shader Language) 코드 작성 없이 노드 기반으로 셰이더를 만들수 있는 기능입니다. 


셰이더 그래프 사용 방법?

URP 코어 사용시

1. Project 부분에서 해당 경로를 따라가서 셰이더 그래프를 만들 수 있다.

셰이더 그래프의 UI 기능

2.우클릭 - Create Node를 사용하여 노드를 만들고 해당 Input에 기능들을 넣어 셰이더를 만들수 있다.

Node 생성

3.생성한 셰이더 그래프로 Material를 생성한다. 

만들어진 셰이더 그래프에 우클릭 후 해당 경로를 따라가면 Material를 생성 할 수 있다.
셰이더그래프를 통해 만들어진 Material

 

4.해당 Material를 사용할 스크립트 코드 작성
//Scene 전환시 사용되는 이펙트 효과로 간단하게 만든 스크립트 입니다.
//나중에 사용할시 Material 호출하여 사용하면 됨 . 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;

public class TransitionScreen : MonoBehaviour
{
    [SerializeField] private Material screenTransitionMaterial;
    [SerializeField] private float transitionTime = 1f;
    [SerializeField] private string prppertyName = "_Scrool";

    public UnityAction OnTransitonDone;

    public void OnTransitionScreen()
    {
        StartCoroutine(TransitionCoroutine());
    }

    private void Start()
    {
        StartCoroutine(TransitionCoroutine());
    }

    private IEnumerator TransitionCoroutine()
    {
        float curretnTime = 0;
        while (curretnTime < transitionTime)
        {
            curretnTime += Time.deltaTime;
            screenTransitionMaterial.SetFloat(prppertyName, Mathf.Lerp(0f, transitionTime, curretnTime));
            yield return null;
        }
        OnTransitonDone?.Invoke();
    }
}

간단하게 씬 전환시 사용되는 이펙트를 만들기위해 스크립트를 만들어 보았다. 

 

5.Unity Scene에 오브젝트 및 컴포넌트 생성

하이어라키에 Scene 전환용 오브젝트(SceneTransition) , 이펙트가 적용될 오브젝트(Quad) 하나 생성

Material을 잘 적용했는지 체크 할 것

 

6.체크

화면 전환


이번 포트폴리오 중 대화시스템을 구현 중에 화면 전환이 필요해서 셰이더 그래프를 익혀보았고

다른 예제들을 찾아보며 적용 중이다. 

+ Recent posts