[Unity] Particle Effect For UGUI (UI Particle)

a-a·2026년 3월 13일

알쓸신잡

목록 보기
30/31

패키지 링크


이모저모

패키지 매니저에서 설치해야 한다. 6.3.10f1에서도 잘 되는 것을 확인했다.
나중에 나도 이런 패키지를 만들어 봐야지..

최근 포스팅에서 UI에서 파티클을 만드는 것에대한 문제점을 확인했다. 그래서 대안책 중 하나인, 외부 패키지를 사용하여 파티클을 제작하는 방법을 포스팅한다.

1. UI_Particle을 부모 컴포넌트에 붙인다.

여기서 scale을 설정해야 한다.
scale은 canvas에서 관리하고 있고, 해당 scale 로 통일해주면 된다.

Mesh Sharing은, 해당 패키지가 어떻게 동작하는지를 알고 있어야 하는데, 간단하게 설명하면 파티클에 들어가는 텍스처를 매쉬형태로 구워서 화면에 보여준다. 그래서 파티클에서 사용하는 텍스처가 늘 카메라를 보고 있는 특성이 있다.

Sharing을 사용하면 자식에 달려있는 다양한 파티클들이 하나의 매쉬로 묶이면서 시뮬레이션 난수값을 공유한다. 해제하고 사용하면 더 실사처럼 시뮬레이션되지만, 너무 많은 파티클은 성능이슈가 된다. 필요에 따라서 저 기능을 활용해 메모리를 절약할 수 있다.

Position Mode 같은 경우는 늘 relative로 사용하면 될 것 같다.
absoulte로 사용하면, UI의 스케일이 변경되면 좌표도 보정이 들어가야 하는데, absoulte하면 UI 파티클에서 스케일 보정을 하지 않고 하위 파티클 로컬 좌표대로 이동이 된다. 이미지 출처

Auto Scaling Mode는 일반 파티클이 UI로 넘어오면서 스케일 차이로 엄청 작아지는 특징이 있는데 이를 보정해준다. Transfrom은 캔버스의 변하는 해상도에 대응해서 자동으로 보정을 해주며, UI Particle의 경우 해당 컴포넌트가 붙어있는 오브젝트의 스케일 값을 따라간다.

Time Scale Multiplier는 파티클 재생속도를 부모에서 자식들을 모두 일관되게 관리 가능하다.

2. 머터리얼을 만든다.

Particle -> Standard Unlit으로 만들고, Rendering Mode를 자신이 의도하는대로 조정한다.
그 다음 Maps에 텍스처를 넣는다.

3. UI_Particle에 할당

아까만든 UI_Particle 컴포넌트를 보면 아래에 Rendering Order가 있다. 자식 중 파티클이 있는데 없다면, Refresh를 눌러준다. 그리고 아까 만든 material을 할당해주면 된다.

참고사항

  1. 파티클을 보면 Renderer가 꺼져있는데, 이는 UI_Particle 컴포넌트가 UI 그려주는 것처럼 그리기 때문에 Renderer를 사용하지 않는다. (정확하게는 UI_Particle이 끈다.)
    하지만, Renderer의 값은 사용되므로, 값을 변경하고 싶을 때에는 켜서 변경하면 적용이 된다.

  1. 파티클이 보여지지 않는다면, Particle 속성에서 sorting 값을 설정해도 되고, 간단하게는 z값을 음수로 바꿔주면 된다.
profile
게임 개발자란 무엇일까!

6개의 댓글

comment-user-thumbnail
4일 전

프론트신거죠? 프사는 왜 안바꾸시나요? 팀 프젝은 잘 하고 계신가요? 164일 남았네요

답글 달기
comment-user-thumbnail
4일 전

전역 날짜 세는 기분이네요

답글 달기
comment-user-thumbnail
4일 전

무자빈 버튼의 시간은 거꾸로 간다

1개의 답글