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 | 입자 발생 타이밍 설정 |
라이프 사이클 흐름
- emitterCell 정의
- emitterLayer.emitterCells 에 등록
- emitterLayer가 위치, birthRate 등 설정
- 화면에 계속 입자 뿌려짐
- 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 = "입자의 성격, 생김새, 움직임을 설정하는 설계도"
반응형