▣ ParticleManager를 사용해야 할지 고려해 볼 수 있는 상황
- 여러 파티클 시스템을 동시에 사용: 게임 내에서 다양한 파티클 시스템(예: 폭발, 스파크, 연기 등)을 여러 군데에서 사용할 때, ParticleManager가 각 파티클 시스템을 한 곳에서 관리하면 더 효율적입니다.
- 파티클 시스템 최적화: 모든 파티클 시스템을 한 곳에서 관리함으로써 메모리 관리, 성능 최적화, 불필요한 파티클 시스템 비활성화 등의 작업을 쉽게 처리할 수 있습니다.
- 재사용 가능한 파티클 효과: 같은 파티클 효과를 여러 장소에서 재사용해야 할 때, ParticleManager를 사용하면 더 간단하게 관리하고 필요할 때마다 쉽게 인스턴스화할 수 있습니다.
- 코드의 가독성 및 유지보수성 향상: 파티클 시스템을 각 개별 스크립트에서 관리하는 대신 ParticleManager를 통해 중앙에서 관리하면 코드 구조가 깔끔해지고 유지보수도 수월해집니다.
▣ 코드 설명
싱글톤 패턴 구현: public static ParticleManager Instance { get; private set; }로 Instance를 정의하여 언제든지 ParticleManager.Instance를 통해 접근할 수 있습니다.
Awake에서 싱글톤 인스턴스를 설정합니다. 만약 이미 인스턴스가 존재한다면 중복 인스턴스를 제거(Destroy(gameObject))하여 유일한 인스턴스만 유지합니다.
PlayParticle 함수: ParticleType을 기반으로 Dictionary에서 파티클 시스템을 가져와 특정 위치에서 재생합니다. 다른 스크립트에서 ParticleManager.Instance.PlayParticle()을 통해 쉽게 파티클을 재생할 수 있습니다.
다른 스크립트에서 싱글톤 접근: FindObjectOfType 대신 ParticleManager.Instance로 어디서든지 ParticleManager에 접근할 수 있게 되어 성능적, 유지보수적인 이점이 있습니다.
싱글톤 패턴의 장점
중복 인스턴스 방지: 여러 개의 ParticleManager가 생성되는 것을 방지합니다.
전역 접근: 프로젝트의 어디서나 ParticleManager.Instance를 통해 쉽게 접근할 수 있습니다.
성능 향상: FindObjectOfType 같은 메서드를 사용하지 않고, 바로 싱글톤 인스턴스에 접근하므로 성능이 더 좋습니다.
https://en.wikipedia.org/wiki/Singleton_pattern
https://docs.unity3d.com/kr/2020.3/Manual/class-ParticleSystem.html
'[ Unity ] > - 유니티 실습' 카테고리의 다른 글
유니티 쿼터니언(Quaternion)과 회전 (3) | 2024.09.09 |
---|---|
유니티 싱글톤 (4) | 2024.09.08 |
유니티 제네릭(Generic) (1) | 2024.09.07 |
유니티 SoundManager (4) | 2024.09.06 |
유니티 2D AI 스폰 (0) | 2024.09.05 |
댓글