맨λ κ³§ λ°λͺ¨!λΌκ³ νλ©΄μ μμ§λ λ°λͺ¨κ° μμ±λμ§ μμ ν보미μ½μΌμ€.
νμ§λ§ μ§μ§ μ μ λ λ€κ°κ°κ³ μλ κ² !
νμ¬ κ°λ°ν κ²λ€μ λμ€μ μ΄μκ² λ³΄μ¬λ리기 μν΄ μμ§μ λ΄μΈν΄λλλ‘ νκ² μ΄μ€.
μ¬λ§ μ»·μ¬ μμ€ν λ§ κ΅¬ννλ©΄ λ λ― !
μ΄μ κΉμ§λ μ§μ ꡬνν΄μ λ§λ€μλΌλ μ£Όμμλλ°,
μ§μ ꡬνν΄μ λ§λ€λ©΄ λΆμ‘±ν μ§μμ΄λ μμ©μ ν μ€ λͺ¨λ₯Έλ€λ κ²μΌλ‘ μΈν λ¬Έμ ,
μ¬μ© νΈμμ±μ΄ μ’μ§ μμ λ¬Έμ κ° μλ κ²μ΄μΌμ€.
κ·Έλ¬λ€λ³΄λ κΈ°μ΄μ μΈ ν λλ§ μ§μ ꡬνν΄λ³΄λ©° μλλ°©μμ μ΄ν΄ν΄λ³΄κ³
μμ μ μ¬μ©ν΄κ°λ©° μ΄λ€ μμΌλ‘ ꡬνλκ±΄μ§ λ°°μ°λ κ²μ΄
μ€λ ₯ ν₯μμλ μκ°μ μΌλ‘λ λ μ’μ§ μμκΉ μκ°μ΄ λ€μμ΄μ€.
κ·Έλμ μ΄κ²μ κ² κ΅¬λ§€νκΈ°λ‘ λ§μλ¨Ήμ μμ μ ν μΈμ κΈ°λ€λ¦¬κ³ μλλ°
λ΄μΌλΆν° μμ μ€ν μ΄ 50% μΈμΌ! + μΏ ν°μ½λ - r35κΈ°μ‘΄μλ λ§λ€μ΄ μ¬μ©νμλ μ£ΌμκΈ°λ νκ³ νκ΅μ΄ μλ£λ λΆμ‘±ν΄μ
μ λν° 2021λ²μ λΆν° μ§μνλ 곡μ μ€λΈμ νΈ νμ μ¬μ©νμ§ μμμ.
νμ΄λ¦¬ ν μΌμ¦ #21, μ€λΈμ νΈ νλ§μ΄λ° λ°©μμΌλ‘ ꡬννμλλ° μ¬μ©νλ€λ³΄λ 곡μ μ€λΈμ νΈ νλ§μ λΉν΄ λ무λλ λΆμ‘±νλ€κ³ λλ.
κ·Έλμ 곡μ μ€λΈμ νΈ νλ§μ μ¬μ©νκ² λμμ.
ꡬνν κ²λ μκ³ μ¬μ©νκΈ°λ νΈνλ€ λ³΄λ
κ΅³μ΄ μ±κΈν€μΌλ‘ μ€λΈμ νΈ ν λ§€λμ λ§λ€μ§ λ§κ³ λ΄λΉλΆλ€ μκ±° μ¬μ©ν΄λ λμμ§ μμ κ² κ°λ€κ³ μκ°ν¨.
μ€λΈμ νΈ νλ§
μ°μ μ€λΈμ νΈ νλ§μ μ μ¬μ©νλ μ§μ λν΄ λ¨Όμ μκ³ κ°λ κ²μ΄ μ’λ€κ³ μκ°ν¨.
λλ λ΄λΉμΈμ§λΌ μλͺ»λ μ λ³΄κ° μμ μ μκ³ μμΈν λΆλΆμ λͺ¨λ₯΄λ€λ³΄λ
κ°λ΅νκ² νμΈλ§ νκ³ κΆκΈνλ€λ©΄ μ§μ 곡λΆν΄ 보λ κ²μ μΆμ²ν¨.
μ¬μ§ μ°μΈ‘μ νμ΄λΌν€μ 보μ΄λ―μ΄ κ°μλ₯Ό μλ‘ μμ±νμ§ μκ³ λΉνμ±νμν¨ κ°μλ₯Ό λ€μ μ¬μ©νλ λ°©μ.
μ€λΈμ νΈ νλ§μ μ¬μ©νλ μ΄μ λ μ¦μ μμ±κ³Ό νκ΄΄λ‘ μΈν λ©λͺ¨λ¦¬ ν λΉ, ν΄μ λ‘ μΈν κ°λΉμ§ 컬λ ν° λ°μμ μ€μ΄κΈ° μν¨μ.
μ΄λ¬λ©΄ λ κ°λΉμ§ 컬λ ν°, GCκ° λ¬΄μμΈκ°μ λν΄ μμ보μμΌ νμ§λ§,
λ΄λΉ λΆλ€μ΄λ μ μκ²λ λ무λλ μ΄λ €μ΄ λΆλΆ.
κ°λ¨ν λΉμ νμλ©΄ μλ μ λ§μ΄ ν΄λ³΄μμ§ μμμκΉ μΆμ λμ€ν¬ μ‘°κ° λͺ¨μμ μκ°ν΄λ³΄μλ©΄ λ κ² κ°μ.
ν λΉν΄μ£Όκ³ μμ νλ©° μ겨λ²λ¦° μ€κ°μ€κ° λΉμ΄λ²λ¦° λ©λͺ¨λ¦¬μ 곡κ°μ μ 리νλ κ².
GCκ° λ°μνλ©΄ κ²μ μ€ νλ μ λλμ΄ μΌμ΄λλ―λ‘ μμ£Ό νκ° λμ§ μλ μν©μ΄ μλκΉ μΆμ.
λ°λΌμ μ΄μκ°μ μμ±/μμ κ° λ§μ μ€λΈμ νΈλ νμμ μ΄μ§ μμκΉ μΆμ§λ§
μΌλ¨ μ°λ€κ° λ¬Έμ κ° μλ€ μΆμΌλ©΄ ꡬνν΄λ λλ―λ‘ λ무 μ½λ§€μ΄μ§ μλλ‘ νκΈ°.
μ¬μ©νκΈ°
ννλ€ μ¬μ©ν μ΄μμ μμλ‘ μ¬μ©ν΄λ³΄κ² μ.
κΈ°μ‘΄μ ꡬννλ μ€λΈμ νΈ νλ§μ μ±κΈν€ λ§€λμ λ₯Ό μ¬μ©νμ§λ§
μ λν° μ€λΈμ νΈ νλ§μ μ£Όμ²΄κ° νμ λ€κ³ μμ.
λ¬Όλ‘ μ±κΈν€μΌλ‘λ ꡬνμ΄ κ°λ₯νκ² μ§λ§ κ΅³μ΄ κ·Έλ΄ μ΄μ λ μμλ―.
1. μ΄μμ μλ 주체μ μ€ν¬λ¦½νΈμ μ΄μ μ€ν¬λ¦½νΈλ₯Ό μμ±.
μ€μ·μ°κΈ° νΈνκ² νλμ νμΌμ μμ±νμ§λ§ κ°λ³ μ€ν¬λ¦½νΈλ‘ μμ±ν κ².
2. 주체μμ ν λ§λ€κΈ°
bulletPrefabμ μΈμ€νν°μμ μ΄μλ‘ μΈ ν리νΉμ λμ΄λ£μ΄μ€ μμ .
_bulletPoolμ μμ±λ bulletPrefabλ€μ΄ λ€μ΄κ° ν.
staticμΌλ‘ μ μΈν건 κ°μ ν λ°λ‘ λ€κ³ μΆμΌλ©΄ μν΄μ€λ λ¨.
3. νλ§ λμμ΄ μμ μ΄ λ€μ΄κ° ν μ μ μλλ‘ ν΄μ£ΌκΈ°.
μ£Όμ²΄κ° νμ μμ±νλ©° νμ μλ €μ€μ μ΄ν νμ΄ μμ μ΄ λ€μ΄κ° νμ μ μ μλλ‘ ν΄μ€.
4. 주체μ ν μ΄κΈ°ν
νμ μ¬μ©νκΈ° μν΄ μ΄κΈ°νν΄μ£ΌκΈ°.
νλΌλ―Έν° κ°μ΄ λ§μλ° μλμ μ€λͺ νκ² μ.
5. νλΌλ―Έν° κ°μ λ€μ΄κ° ν¨μ λ§λ€κΈ°
νλΌλ―Έν°λ₯Ό 보면 λν΄νΈ νλΌλ―Έν°λ‘ createFuncμΈμλ λ£μ΄μ€ νμκ° μμ§λ§,
λ£μ΄μ£Όλκ² κ΄λ¦¬ν λ νΈν λ― μΆμ.
createFunc : νμμ κΊΌλΌ λ μμ κ²½μ° μ€ν.
actionOnGet : νμμ κΊΌλΌ λ μ€ν.
actionOnRelease : νλ‘ λ£μ λ μ€ν.
actionOnDestroy : νλ‘ λ£μ λ νμ λ΄κΈ΄ μ€λΈμ νΈκ° maxSizeμΌ κ²½μ° μ€ν.
collectionCheck : νλ‘ λ£λ μ€λΈμ νΈκ° μ΄λ―Έ νμ μ‘΄μ¬νλ κ²½μ° μμΈμ²λ¦¬ λ°μμν΄. μλν°μμλ§ μ€νλλ―λ‘ κΈ°λ³Έκ°μΌλ‘ λλ©΄ λ λ―.
νμ€νμ§λ μμΌλ μ§μ μ°Ύμ보μλ κ²μ μΆμ².
defaultCapacity : stackμ capacityμΈλ° μ μ ν μ¬μ©λ μλ§νΌ μ ν΄μ£Όλ©΄ λ λ―.
maxSize : νμ μ΅λ μ©λ, λμ΄κ° κ²½μ° μ Destroy νλΌλ―Έν° ν¨μ μ€ν.
νμ΄λΌν€μ μμ±λ μ΄μλ€ λμ‘νκ² μμΌλ©΄ 보기 λΆνΈνλ―λ‘
컨ν μ΄λ μν μ ν΄μ€ μ€λΈμ νΈλ₯Ό νλ μμ±νκ³ κ±°κΈ° μμμΌλ‘ μμ±νλλ‘ ν΄μ£Όμμ.
get, release, destroyμλ λ³ κ² μλ λ΄μ©μ΄μ§λ§,
μ΄ν νμν μμ μ΄ μκΈΈ μ μ κΈ°μ μΆκ°ν΄μ£Όλ©΄ λ¨.
6. μ¬μ©νκΈ°
μ€μ μ¬μ©λλ κ³³μμλ ν.Get νλ©΄ μ€λΈμ νΈλ₯Ό λ°νν΄μ€.
μ΄ μ€λΈμ νΈλ₯Ό μ΄μ©ν΄ νμν μμ μ νλ©΄ λ¨.
μμμ μμ±ν onGetμμ ν΄μ€λ λ¨.
μ΄μμμλ νμ λ£μ΄μ€ μ Release μμ μ ν΄μ£Όλ©΄ λ.
μ€λͺ νμ§ μμ μΈμ€νν°μμ λμ΄λ£μ΄μ£Όκ³ ν리νΉν νλ κ²μ κΈ°μ΄μ μ΄λ―λ‘ μμμ ν κ².
Β νλ§ μ μ£Όμν μ μΌλ‘λ λΉνμ±ν/νμ±ν ν΄μ£ΌκΈ° λλ¬Έμ
μ΄κΈ°νκ° νμν μμ μ enable, disableν¨μμμ λ°λμ ν΄μ£Όμ΄μΌ ν¨.
μλ‘ μμ±νλ κ²½μ°μλ λ¬Έμ κ° μμμ§λ§,
λΉνμ±ν λ μ€λΈμ νΈκ° λ€μ νμ±ν λλ©° λΉνμ±ν μ μ κ°μ§κ³ μλ κ°μ μ μ§νκ³ μμ΄μ
μμΉμλ μν©μ΄ μκΈ°λ κ²½μ°κ° μμΌλ μ£Όμν κ².
Β μΆκ°μ μΌλ‘ μ΄μ μ¬μ© μ μ½λΌμ΄λλ₯Ό λ¬μμ€ ν λ°,
μ΄μλΌλ¦¬ λΆλͺν μΌμ΄ μλ€λ©΄ λ μ΄μ΄ λ§€νΈλ¦μ€μμ λΆλͺν λ μ΄μ΄λ₯Ό μκΈ°μμ μ μ μΈν΄μ£Όλλ‘ νκ³ ,
μ½λΌμ΄λλ₯Ό λ¬κ³ μμ§μΈλ€λ©΄ 무쑰건 rigidbodyλ₯Ό λ¬μμ£Όλλ‘ νκ³
λ¨μν μΆ©λ체ν¬λ§ νλ€λ©΄ dynamicμ΄ μλ ν€λ€λ§ν±μΌλ‘ ν΄ μ£Όλλ‘ νμ.
λ, λ¦Ώμ§λλ°λλ₯Ό λ¬μ쀬μΌλ©΄ transformμμ μ‘°μνλκ²μ΄ μλ
rigidbodyμμ 무λΈν¬μ§μ μ νλ μλλ₯Ό μ£Όλ νμ μ£Όλλ‘ νμ.
μ€λͺ ν ν μΈμ λμ λ리 ν, λ§ν¬λν, 리μ€νΈν λ±
λ°©κΈ μ¬μ©ν΄λ³Έ μ€νμΌλ‘ ꡬνλ νμ΄ μλ μ¬λ¬κ°μ§ ννλ‘ κ΅¬νλ νμ΄ μμ.
νμν μ©λμ λ§μΆ°μ μ¬μ©νλ©΄ λκ² μΌλ
λμκ² νμνμ§ μμ λ― νμ¬ μ¬μ©ν΄λ³΄μ§ μμμ λͺ¨λ₯΄λ μ€μ€λ‘ μμλ³Ό κ².
https://docs.unity3d.com/ScriptReference/Pool.CollectionPool_2.html
μ΅λν μμΈνκ² νμ΄μ΄λ€κ³ λ무λλ κΈΈμ΄μ Έλ²λ¦° λ΄μ©μΈ κ²μ΄μΌμ€.
κ·Έλλ μ΄ν΄κ° μκ°λ€λ©΄ κΈμ¬μ£Όκ° μλ μ νμ΄λ κΆκΈν μ μ λ¬Όμ΄λ΄λ μ’μ κ²μ΄μΌμ€.
κ·μ¬μ΄ μλΌμ°λ€ νλ² λ λ³΄κ³ κ°λ κ²μ΄μΌμ€ !
ν΄λΉ λκΈμ μμ λμμ΅λλ€.
λ°λͺ¨λ²μ Όμ μΌλ₯Έ λ΄λμΌλ©΄ μ νμ¬νλ μΌμ΄λμ§ μμ κ²μ΄μΌμ€
μ΄κ±° Visual Studio Codeμ?? μκΉμ΄ λκ² μ΄μλ€..
λΌμ΄λλ μκΉμ μ λ λ무λλ νλ₯ν κ²μ΄μΌμ€.
ν΄λΉ λκΈμ μμ λμμ΅λλ€.
νν μΈμ€μκ³ νΈλ€λ₯ λ€μ΄μλ€κ° μ§μ§ μμ μ΄μλ Έ
μΈμ λ€ λ§λ€μ΄μ ? γ γ
λ°λͺ¨λ²μ μ‘°μ°¨ μΈμ λ§λ€μ΄μ§μ§ μμμ΄ κ°μ§ μλ κ²μ΄μΌμ€ !