유니티 UI에 Particle을 사용해보자

0

UI

목록 보기
1/3

소개

이 에셋은 UI에 파티클을 적용할 수 있는 도구이다.

유니티에서 제공하는 Particle System은 애초에 UI에 올릴 수 없다.
하더라도 굉장히 편법을 써야하기 때문에 번거롭다.


이 에셋을 사용하지 않더라도, 깃허브에서 무료로 공개된 이 도구를 사용해서 UI Particle을 제작할 수 있다.


자, 그러면 UI Particle Image 에셋을 한번 알아보도록 하자

이 에셋의 장점

🪛강력하면서도 단순한 설정

🎉 단일 시스템의 하위 입자

👉 어트랙터

🔧 Movement Modifiers (이동 수정)

🌈 타사 셰이더 지원

🎯 마스킹 및 레이캐스트 타겟팅

🖼 카메라 및 오버레이 캔버스 공간

🎞 텍스처 시트 애니메이션

📢 이벤트

☄트레일 이펙트

✨12개 이상의 데모 장면 및 스타터 입자가 포함되어 있습니다.

Particle Image 생성

Hierarchy에서 UI/Particle Image를 클릭하여 추가한다.

컴포넌트 미리보기

기본 옵션은 다음과 같습니다.

예시 이미지


기본 옵션

Simulation Space

Local

World

Simulation Time

Normal : Time.Scale의 영향을 받습니다.

Unscaled : Time.Scale의 영향을 받지 않습니다.

Play

None : 재생을 하지 않습니다.

On Enable : Enable 순간에 새롭게 다시 생성합니다.

On Awake : Awake 순간에 생성하며, 오브젝트가 꺼졌다 켜져도 이전에 파티클 기록을 계속하여 사용합니다.

Loop

파티클을 지속 반복할 것인가?에 대한 옵션입니다.

Prewarm

파티클이 시작되면 1회 사이클이 돌고 나서 이후 파티클 연출을 보여줍니다. (요구 : Loop 활성화)

Duration

어느정도 길이로 파티클을 재생할 것인가?에 대한 옵션입니다.

Start Delay

초기에 어느정도 딜레이가 지난 후 재생할 것인가?에 대한 옵션입니다.

Lifetime

파티클 한 알갱이마다 생명 시간을 의미합니다.

지원 : Constant, Curve, Random Between Two Curves, Random Between Two constants

Start Speed

시작 속력을 의미합니다.

지원 : Constant, Curve, Random Between Two Curves, Random Between Two constants

Start Size

시작시 알갱이 크기를 의미합니다.

지원 : Constant, Curve, Random Between Two Curves, Random Between Two constants

Start Rotation

시작시 알갱이의 회전을 의미합니다.

지원 : Constant, Curve, Random Between Two Curves, Random Between Two constants

Start Color

시작시 알갱이의 색상을 의미합니다.

지원 : Color, Gradient, Random Between Two Colors, Random Betweeen Two Gradients, Random Color

Raycast Target

Maskable

Emission

Rate Per Second

시간 단위당 방출되는 파티클의 수입니다.

Rate Over Duration

지속 시간당 방출되는 파티클 수입니다.

Rate over Distance

이동한 거리 단위당 방출되는 파티클의 수입니다.

Bursts

이 기능은 파티클 시스템의 Emission묘듈에 Time-Count와 같습니다.

Shape

  • point

  • Circle

  • Rectangle

  • Line

  • Directional

Shape는 파티클을 생성하는 Shape를 의미합니다.

Particle

Texture

파티클의 텍스쳐를 지정합니다.

Material

파티클의의 머티리얼을 지정합니다.

Speed Over Lifetime

파티클의 생명주기에 따라 속력를 처리합니다.

지원 : Constant, Curve, Random Between Two Curves, Random Between Two constants

Size Over Lifetime

파티클의 생명주기에 따라 크기를 처리합니다.

지원 : Constant, Curve, Random Between Two Curves, Random Between Two constants

Size by Speed

파티클의 속력에 따라 크기를 처리합니다.

지원 : Constant, Curve, Random Between Two Curves, Random Between Two constants

Size Speed Range

Color Over Lifetime

파티클의 생명주기에 따라 컬러를 처리합니다.

지원 : Color, Gradient, Random Between Two Colors, Random Betweeen Two Gradients, Random Color

Color By Speed

파티클의 속력에 따라 컬러를 처리합니다.

지원 : Color, Gradient, Random Between Two Colors, Random Betweeen Two Gradients, Random Color

Color Speed Range

Rotation Over Lifetime

파티클의 생명주기에 따른 회전을 처리합니다.

지원 : Constant, Curve, Random Between Two Curves, Random Between Two constants

Rotation By Speed

파티클의 속력에 따라 회전을 처리합니다.

지원 : Constant, Curve, Random Between Two Curves, Random Between Two constants

Rotation Speed Range

Align To Direction

이동하려는 속도(방향과 속력)에 따라 자동으로 회전합니다.

Texture Sheet

Tiles

X,Y는 플립 북할 셀을 의미합니다.

Time Mode

lifetime, speed, FPS (기본 값 FPS 사용)

Trails

  • Trail Ratio
  • Vertex Distance
  • Trail Lifetime : 트레일의 생명주기를 의미합니다.
  • Trail Width : 트레일 Width 두께
  • Inherit Particle Color
  • Color over Lifetime : 파티클의 생명주기에 따라 컬러를 처리합니다.

지원 : Color, Gradient, Random Between Two Colors, Random Betweeen Two Gradients, Random Color

  • Color over Trail
  • Die With Particle

Movement

Attractor

  • Attractor : 따라 이동할 RectTransform 오브젝트
  • Attractor Lerp
  • Attractor Move

Noise

파티클에 노이즈를 적용합니다.

  • Strength
  • Frequency
  • Octaves

Velocity

파티클 입자에 속도를 부여합니다.

  • Space : Local, World
  • Velocity Over Lifetime 제공

Gravity

파티클 입자에 중력을 부여합니다. (기본 값 -9.81)

지원 : Constant, Curve, Random Between Two Curves, Random Between Two constants

Vortex

  • Vortex Strength 소용돌이 치면서 이동하는 연출을 만들 때 사용합니다.

Event

  • On Start : 시작시 이벤트를 실행합니다.
  • On First Particle Finish : 첫번째 파티클이 사망시 이벤트를 실행합니다.
  • On Particle Finish : 모든 파티클이 사망시 이벤트를 실행합니다.
  • On Last Particle Finish : 마지막 파티클이 사망시 이벤트를 실행합니다.
  • On Stop : 정지 되었을 때 이벤트를 실행합니다.

Advanced

  • 멀티 쓰레딩을 사용하여 파티클을 동작합니다.

성능은 다음과 같습니다.

커스텀 셰이더 연동

커스텀 셰이더는 코드로 작성하는 방법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 (김한용)

profile
유니티를 통한 스페셜 테크닉만 다루는 독특한 개발자

0개의 댓글