iOS/Swift

CAEmitterCell

ywangnon 2025. 4. 12. 23:34
반응형

CAEmitterCell 이란? 🤔

입자(Particle) 하나의 "설계도" 같은 존재

쉽게 말하면:

  • 어떤 모양
  • 어떤 속성
  • 얼마나 나오고
  • 얼마나 살고
  • 어떻게 움직이는지

이걸 정해주는 게 CAEmitterCell 입니다.


구조 이해하기

관계 구조

CAEmitterLayer → CAEmitterCell → Particle
Component 역할
CAEmitterLayer 입자를 뿌리는 레이어
CAEmitterCell 입자(파티클)의 속성 정의
Particle 실제로 화면에 뿌려지는 개별 이미지

주요 속성 정리표 💡

속성 설명 예시
contents 입자 이미지 UIImage(named: "star")?.cgImage
birthRate 초당 생성 개수 100
lifetime 입자 생존시간 3초
velocity 방출 속도 300
velocityRange 속도 랜덤 범위 100
scale 크기 0.1
scaleRange 크기 랜덤 0.05
scaleSpeed 점점 커짐 0.02
spin 회전 속도 3
spinRange 회전 랜덤 5
emissionRange 방출 각도 범위 .pi * 2 (전체 방향)
yAcceleration 중력 효과 100 (아래로 떨어짐)

특별한 속성 ✨

속성 설명
alphaRange / alphaSpeed 점점 투명해짐
color 입자 색상 변형
emissionLongitude 기본 발사 방향 설정
emissionLatitude 세로 방향 각도 조절
beginTime / duration 입자 발생 타이밍 설정

라이프 사이클 흐름

  1. emitterCell 정의
  2. emitterLayer.emitterCells 에 등록
  3. emitterLayer가 위치, birthRate 등 설정
  4. 화면에 계속 입자 뿌려짐
  5. lifetime 지나면 자연스럽게 사라짐

시각적 이미지 느낌

[ CAEmitterLayer ]
        |
   +----+----+
   |         |
[Cell1]   [Cell2]   ← 서로 다른 입자 설정 가능

대표 예시 코드

let cell = CAEmitterCell()
cell.contents = UIImage(named: "star")?.cgImage
cell.birthRate = 100
cell.lifetime = 3
cell.velocity = 300
cell.velocityRange = 100
cell.scale = 0.1
cell.scaleRange = 0.05
cell.yAcceleration = 150

한줄 정리 🧠

CAEmitterCell = "입자의 성격, 생김새, 움직임을 설정하는 설계도"

반응형