유니티) 파티클시스템(Particle System) 파티클로 스킬넣기
파티클 시스템(Particle System)
파티클 시스템은
씬 안에 다수의 작은 2D 이미지를 생성하고 애니메이션하여 액체, 구름 및 불 꽃 같은 유체 엔티티를 시물레이션 한다
3D게임에서 대부분의 캐릭터, 소품 및 풍경 요소는 Meshes로 표현되고, 2D는 Sprite를 이러한 용도로 사용한다.
형태가 표현이 가능한 Meshe와 Sprite
<3D>
<2D>
Mesh와 Sprite는 형태가 뚜렷한 "솔리드"오브젝트를 그리는 가장 이상적인 방법이다.
하지만 Mesh와 Sprite로 표현하기 어려운 것들이 있다.
예를들어 모닥불에 피어 오르는 연기, 총구에 나오는 화염, 리얼하게 표현 되어야 할 마법스킬등
정해진 물체에 그리는것처럼 형태가 없기 때문에 표현하기는 불가능한 것들이다.
이런것들은 파티클이라는 그래픽스방식을 이용해야 한다.
(그래픽스? : 실시간으로 이루어지는 유동적인 효과를 나타낼때 사용)
파티클 단어 자체가 작은 입자라는 뜻인데 이런 작은 입자(작은 메시와,sprite)가 모여
큰 모양을 만들어 표현하기 어려운 것들을 보다 자연스럽게 표현한다고 생각하면 된다.
파티클 컴포넌트
Duration : 파티클이 실행되는 시간
Looping : 반복 여부
Start Delay : 파티클시스템이 기다리는 시간, 값이 높을 수록 늦게 시작
Start LifeTime : 파티클의 수명
방사 모듈<Emission Module>
시간의 경과에 따라 방사되는 파티클의 양이나 거리
Bursts : 파티클의 용출 횟수를 조절한다.
<기본>
<1개 추가함>
형태 모듈<Shape Module>
Shape : 파티클 형태를 선택할 수 있다.
<Edge형태>
충돌 모듈<Collision Forces>
파티클 충돌처리
World / Planes : World와 Planes 선택가능
<Planes>형태
게임의 바닥을 Planes으로 지정했을 경우 cube를 무시하고 파티클이 재생된다.
<world>형태
cube등 주위 오브젝트를 감지하여 불꽃이 빚겨나간다.
Send Collision Messages : 충돌처리에 대한 메세지를 받을 수 있다.
void OnParticleCollision(GameObject other)
{
Debug.Log("파티클 충돌");
}
파티클을 체크하고 충돌 메세지를 받을 오브젝트에 스크립트를 추가한다.
추가적인 내용은 유니티 도큐먼트를 참고
https://docs.unity3d.com/kr/2017.4/Manual/PartSysMainModule.html
https://docs.unity3d.com/kr/2017.4/Manual/class-ParticleSystem.html