본문 바로가기
[ Unity ]/- 유니티 실습

유니티 2D ParticleManager (파티클 프리팹으로 관리)

by MRG 2024. 9. 27.
728x90
반응형

 

 

▣ ParticleManager 코드 설명
ParticleManager는 싱글톤 패턴을 사용하여 어디서든 접근 가능하게 만들고, 이름으로 파티클을 선택하여 원하는 위치에서 애니메이션을 재생하고 파티클을 관리하는 클래스입니다.

▣ 주요 기능 설명
싱글톤 패턴 구현:
public static ParticleManager Instance { get; private set; }로 싱글톤 인스턴스를 생성하여 어디서든 ParticleManager.Instance를 통해 접근할 수 있게 합니다.
Awake()에서 싱글톤 인스턴스를 초기화하며, 이미 인스턴스가 존재할 경우 중복되는 오브젝트를 파괴합니다.
DontDestroyOnLoad(gameObject)로 씬이 전환되더라도 ParticleManager가 파괴되지 않도록 설정합니다.


▣ 파티클 프리팹을 이름으로 관리:
Dictionary<string, GameObject>를 사용하여 파티클 프리팹을 이름으로 관리할 수 있게 했습니다. particlePrefabs 배열을 순회하여 딕셔너리에 각 파티클의 이름과 해당 프리팹을 매핑합니다.
PlayParticle() 함수는 파티클 이름을 인자로 받아, 딕셔너리에서 해당 이름의 파티클을 찾아 생성합니다.


▣ 파티클 생성 및 레이어 순서 설정:
파티클 생성 후 SpriteRenderer의 sortingOrder를 설정하여 레이어 순서를 제어합니다. 이를 통해 파티클이 플레이어보다 뒤에 배치되도록 조정할 수 있습니다. 기본값은 0이지만, 레이어 순서를 지정할 수 있도록 추가적인 파라미터(layerOrder)를 받습니다.


▣ 애니메이션 종료 후 파티클 삭제:
생성된 파티클은 애니메이션이 재생된 후 자동으로 삭제됩니다. StartCoroutine()을 사용해 애니메이션의 길이만큼 기다린 후 Destroy()를 호출하여 파티클을 삭제합니다.

 

https://docs.unity3d.com/ScriptReference/Object.Instantiate.html

 

Unity - Scripting API: Object.Instantiate

This function makes a copy of an object in a similar way to the Duplicate command in the editor. If you are cloning a GameObject you can specify its position and rotation (these default to the original GameObject's position and rotation otherwise). If you

docs.unity3d.com

 

https://docs.unity3d.com/ScriptReference/WaitForSeconds.html

 

Unity - Scripting API: WaitForSeconds

WaitForSeconds class in UnityEngine / Inherits from:YieldInstruction / Implemented in:UnityEngine.CoreModule Description Suspends the coroutine execution for the given amount of seconds using scaled time. The real time suspended is equal to the given time

docs.unity3d.com

 

728x90
반응형

댓글