다양한 기록

[Fortress Craft] Animation - Damaged (Flash White) 본문

유니티 엔진/Fortress Craft

[Fortress Craft] Animation - Damaged (Flash White)

라구넹 2025. 2. 5. 18:50

대미지를 받았을 때 하얗게 번쩍이는 효과를 주려고 했는데,

문제는 스프라이트 렌더러의 색상을 바꿔서는 불가능

색상 변화가 더하기 방식이 아니라 곱하기 방식이기 때문에 셰이더를 하나 만들어서 머테리얼을 만들어야 함

 

Shader "PaintWhite"
{
    Properties
    {
        _MainTex("Particle Texture (Alpha8)", 2D) = "white" { }
    }

        Category
    {
        Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }
        Blend SrcAlpha One
        Cull Off Lighting Off ZWrite Off Fog { Color(0, 0, 0, 0) }

        BindChannels

        {
            Bind "Color", color
            Bind "Vertex", vertex
            Bind "TexCoord", texcoord

        }

        SubShader

        {
            Pass

            {
                SetTexture[_MainTex]

                {
                    combine primary, texture * primary

                }
            }
        }
    }
}

인터넷에서 주워온 PaintWhite 셰이더 코드

 

해당 셰이더를 사용해서 머테리얼 생성

 

애니메이션 Damaged를 만들고 머테리얼 레퍼런스를 교체하는 방식 사용

 

다른 작업을 하는 도중에 FlashWhite가 발생해야 하기에

레이어 분리

 

Damaged 트리거 발생 시 Flash White

평소에는 기본 애니메이션 (기본 머테리얼 사용)

 

* 문제가 있었던 부분

하얀색으로 반짝이는 부분이 동기화가 제대로 안되는 문제가 발생

네트워크 메카님 애니메이터 컴포넌트의 State Layers 활성화시키니 해결됨