유니티에서 제공하는 Particle System은 애초에 UI에 올릴 수 없다.
하더라도 굉장히 편법을 써야하기 때문에 번거롭다.
이 에셋을 사용하지 않더라도, 깃허브에서 무료로 공개된 이 도구를 사용해서 UI Particle을 제작할 수 있다.
🪛강력하면서도 단순한 설정
🎉 단일 시스템의 하위 입자
👉 어트랙터
🔧 Movement Modifiers (이동 수정)
🌈 타사 셰이더 지원
🎯 마스킹 및 레이캐스트 타겟팅
🖼 카메라 및 오버레이 캔버스 공간
🎞 텍스처 시트 애니메이션
📢 이벤트
☄트레일 이펙트
✨12개 이상의 데모 장면 및 스타터 입자가 포함되어 있습니다.
Hierarchy에서 UI/Particle Image를 클릭하여 추가한다.
기본 옵션은 다음과 같습니다.
Normal : Time.Scale의 영향을 받습니다.
Unscaled : Time.Scale의 영향을 받지 않습니다.
None : 재생을 하지 않습니다.
On Enable : Enable 순간에 새롭게 다시 생성합니다.
On Awake : Awake 순간에 생성하며, 오브젝트가 꺼졌다 켜져도 이전에 파티클 기록을 계속하여 사용합니다.
파티클을 지속 반복할 것인가?에 대한 옵션입니다.
파티클이 시작되면 1회 사이클이 돌고 나서 이후 파티클 연출을 보여줍니다. (요구 : Loop 활성화)
어느정도 길이로 파티클을 재생할 것인가?에 대한 옵션입니다.
초기에 어느정도 딜레이가 지난 후 재생할 것인가?에 대한 옵션입니다.
파티클 한 알갱이마다 생명 시간을 의미합니다.
지원 : Constant
, Curve
, Random Between Two Curves
, Random Between Two constants
시작 속력을 의미합니다.
지원 : Constant
, Curve
, Random Between Two Curves
, Random Between Two constants
시작시 알갱이 크기를 의미합니다.
지원 : Constant
, Curve
, Random Between Two Curves
, Random Between Two constants
시작시 알갱이의 회전을 의미합니다.
지원 : Constant
, Curve
, Random Between Two Curves
, Random Between Two constants
시작시 알갱이의 색상을 의미합니다.
지원 : Color
, Gradient
, Random Between Two Colors
, Random Betweeen Two Gradients
, Random Color
시간 단위당 방출되는 파티클의 수입니다.
지속 시간당 방출되는 파티클 수입니다.
이동한 거리 단위당 방출되는 파티클의 수입니다.
이 기능은 파티클 시스템의 Emission묘듈에 Time-Count와 같습니다.
Shape는 파티클을 생성하는 Shape를 의미합니다.
파티클의 텍스쳐를 지정합니다.
파티클의의 머티리얼을 지정합니다.
파티클의 생명주기에 따라 속력를 처리합니다.
지원 : Constant
, Curve
, Random Between Two Curves
, Random Between Two constants
파티클의 생명주기에 따라 크기를 처리합니다.
지원 : Constant
, Curve
, Random Between Two Curves
, Random Between Two constants
파티클의 속력에 따라 크기를 처리합니다.
지원 : Constant
, Curve
, Random Between Two Curves
, Random Between Two constants
파티클의 생명주기에 따라 컬러를 처리합니다.
지원 : Color
, Gradient
, Random Between Two Colors
, Random Betweeen Two Gradients
, Random Color
파티클의 속력에 따라 컬러를 처리합니다.
지원 : Color
, Gradient
, Random Between Two Colors
, Random Betweeen Two Gradients
, Random Color
파티클의 생명주기에 따른 회전을 처리합니다.
지원 : Constant
, Curve
, Random Between Two Curves
, Random Between Two constants
파티클의 속력에 따라 회전을 처리합니다.
지원 : Constant
, Curve
, Random Between Two Curves
, Random Between Two constants
이동하려는 속도(방향과 속력)에 따라 자동으로 회전합니다.
X,Y는 플립 북할 셀을 의미합니다.
lifetime
, speed
, FPS
(기본 값 FPS 사용)
지원 : Color
, Gradient
, Random Between Two Colors
, Random Betweeen Two Gradients
, Random Color
파티클에 노이즈를 적용합니다.
파티클 입자에 속도를 부여합니다.
파티클 입자에 중력을 부여합니다. (기본 값 -9.81)
지원 : Constant
, Curve
, Random Between Two Curves
, Random Between Two constants
성능은 다음과 같습니다.
커스텀 셰이더는 코드로 작성하는 방법과 Amplify Shader를 사용하는 방법으로 2가지가 있습니다.
(Amplify Shader는 유료 에셋입니다.)
Amplify Shader는 UI셰이더 그래프를 제공하고 있습니다.
(유니티 셰이더 그래프는 UI 셰이더 그래프를 제공하지 않습니다.)
다음과 같이 Template Texture 노드를 추가한 다음 Sprite Texture(_MainTex)옵션을 선택하여 샘플링 노드를 연결합니다. 그러면 UI Particle Image의 텍스쳐를 받아올 수 있습니다.
UI Particle Image으로부터 컬러정보를 받아오고 싶다면, Vertex Color를 곱해주면 됩니다.
다음 경로로 이동하여 완성된 UI 예제들을 볼 수 있습니다.
UI Particle Image를 코드로 재생하려면?
public ParticleImage Particle;
private void Start()
{
Particle.Play();
}
이 내용이 맛있었다면 저에게 맛있는 커피를 후원해주세요! ☕
토스 익명 송금 : [후원하기](https://toss.me/nkstudio)
계좌 송금 : 토스뱅크 1000-0586-4766 (김한용)