셰이더 그래프란?
HLSL(High Level Shader Language) 코드 작성 없이 노드 기반으로 셰이더를 만들수 있는 기능입니다.
셰이더 그래프 사용 방법?
1. Project 부분에서 해당 경로를 따라가서 셰이더 그래프를 만들 수 있다.
2.우클릭 - Create Node를 사용하여 노드를 만들고 해당 Input에 기능들을 넣어 셰이더를 만들수 있다.
3.생성한 셰이더 그래프로 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에 오브젝트 및 컴포넌트 생성
Material을 잘 적용했는지 체크 할 것
6.체크
이번 포트폴리오 중 대화시스템을 구현 중에 화면 전환이 필요해서 셰이더 그래프를 익혀보았고
다른 예제들을 찾아보며 적용 중이다.
'Unity' 카테고리의 다른 글
Unity :: Rigidbody컴포넌트의 Rigidbody.AddForce() , ForceMode (0) | 2024.10.24 |
---|---|
Unity :: UnityEngine에서 제공하는 Pool 패키지(오브젝트 풀) (0) | 2024.10.23 |
Unity :: (2024.10.21수정)제네릭 클래스를 상속받은 Class는 오브젝트 생성 및 컴포넌트로 사용 할수 잇지만 제네릭 클래스 그 자체는 사용 할 수 없다. (0) | 2024.10.21 |
Unity :: TMP(Text Mesh Pro) 한글 폰트로 쓰기 , 스크립트에서 사용하기 (0) | 2024.10.15 |
Unity :: 비트연산자와 레이어마스크 (0) | 2024.10.14 |