본문 바로가기

프로그래밍/개발메모

유니티 6 캔버스 셰이더 깜박이기 / Unity 6 Canvas Shader

반응형

빨간 사격형이 깜박이는 작업이다.

셰이더작업은 메뉴가 버전마다 달라서 어디는지 찾다보니 기록을 남겨둔다.

영상: https://www.youtube.com/watch?v=VuibGcamE5E&t=45s

이분 영상은 유니티 2023 버전이였다.

 

1. UI -> Canvas 로 캔버스 만듭니다.

2. UI -> Image 로 사각형 만듭니다.

3. 파일쪽에서 우클릭 create -> Shader Graph -> Spirte Unlit ~~ 셰이더 그래프 만듭니다.

멀리도 있다.

4. 더블클릭해서 Shader Graph 엽니다.

5.Fragment 클릭

6. 우측 상단에 떠있는 UI 인데 그림따라 가서 Canvas 로 바꾼다.

여기까지해야 alpha 가 정상적으로 먹히는 캔버스 셰이더가 동작합니다.

7. 셰이더 그래프 만들기

Color 는 빨간색 그대로 박아넣었고

Alpha 는 Time  의 sine time 을 이용해 1 ~ -1 왔다갔다 하는 값을 넣었다. 
0 ~ -1 부분은 다 0 이 되기 때문에 안보이는 시간이 좀 길더라 Absolute 를 넣으면 1 ~ 0 값으로 바꿔준다.
(영상에선 그걸 사용함)

좌측 상단에 디스켓 아이콘을 눌러 저장한다.
(요즘 사람은 디스켓이 뭔지 모른다더라.)

이렇게 생긴 아이콘이 디스켓 이다.

 

8. 캔버스의 이미지에 셰이더를 박는다.

내 프로젝트 기준으로 스샷을 찍은거니 각자 알아서 잘 찾아 넣는다.

Material 부분에 Shader 를 넣어도 되니 편리했다.

 

셰이더는 어려운 분야라서 UI 에 익숙해지는게 좋을것 같아 일부러 스샷을 많이 남겼다.

 

추가작업

FS_Blink_shader.zip 파일 링크 : https://drive.google.com/file/d/1aEqv4z_f76fntUDX60DnCDY057BDLWfV/view?usp=drive_link

위에서 만든 셰이더는 색깔이 깜박거리는 것이라 쓸모가 없습니다.

이 셰이더는 텍스처를 포함한 UI 를 깜박히게 합니다.

예시 화면

셰이더가  UI 의 scrite 를 받아드리려면 입력 텍스쳐의 이름을 고쳐주어야합니다.

_MainTex <-- 이런식의 이름을 써야 UI 에 설정한 그림을 받아 드릴 수 있으니 주의

관련 설명: 

Some common texture names in Unity shaders include: 


_MainTex: The main diffuse texture
_BumpMap: The normal map
_Cube: The reflection cubemap


You can use the Material.GetTexture method to get a named texture. If the texture is not found, the method will write an error message to the console and return null. 

반응형