유니티 디졸브효과, 나타나는 효과, 사라지는 셰이더, 은신 효과, 몬스터 사망 효과
@ 간단한 기본적인 효과 :
Shader Graph -> URP -> Lit Shader Graph를 하나 만든뒤에 아래와 같이 설정하고 오브젝트에 적용하면 끝
- simple noise의 Scale값을 조절하면 사라지는 표면을 얼마나 사라질지 조정할 수 있음.
- 왼쪽에 + 눌러서 float 값 추가하고 Scale과 연결하면 인스펙터창에서 조절해가면서 볼 수 있음.
( 밑에서 색 추가하는 Color도 마찬가지 )
@ 사라지는 표면의 라인, 끝부분을 다른 색으로 하고싶으면 아래와 같이 진행
- float 추가한것처럼 Color도 추가해서 인스펙터창에서 조절 가능.
@ 한번만 효과를 나타내고 싶으면 Time -> In으로 하고 Min, Max를 수정한다.
@ F 키를 눌렀을때 효과 나타나게 하기
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class DoorShader : MonoBehaviour
{
public Material dissolveMaterial; // 디졸브 효과가 적용된 메테리얼
private bool isDissolving = false; // 셰이더 활성화 여부
private float shaderTime = 2.0f; // 셰이더에 전달할 시간값
void Update()
{
if (Input.GetKeyDown(KeyCode.F))
{
isDissolving = !isDissolving;
}
if (isDissolving)
{
if(shaderTime > -1.0)
shaderTime -= Time.deltaTime;
}
else
{
shaderTime = 2.0f;
}
dissolveMaterial.SetFloat("_shaderTime", shaderTime); //셰이더의 _ShaderTime 프로퍼티에 값 설정
}
}
이 스크립트를 적용시킬 오브젝트에 넣고 디졸브 효과가 들어간 메테리얼을 넣어준다.
디졸브 셰이더 그래프에서 기존의 Time노드 대신에 Float 속성 하나 만들어서 Remap에 연결해주고 이름을 바꿔주고, 레퍼런스 이름을 잘 기억해서 스크립트에 이름과 맞춰준다.
- 오브젝트가 나타나게할건지 사라지게할건지는 +와 -를 잘 구분해서 적용해본다.
shaderTime -= Time.deltaTime;
shaderTime += Time.deltaTime;
유니티 시네머신 가상카메라 (0) | 2024.07.09 |
---|---|
유니티 믹사모 캐릭터, 애니메이션 적용 및 수정 (0) | 2024.07.09 |
유니티 모바일 터치 (0) | 2024.07.06 |
씬 이동하기 (1) | 2024.07.05 |
랜덤으로 오디오 소스 재생시키기 (0) | 2024.07.05 |