νλμ μ€λΈμ νΈνμμ λ€ κ΄λ¦¬νλλ‘ κ΅¬ννλκ² μ΄μμ μΌκΉ
μλλ©΄ xxObjectPool, xxObjectPool μ΄λ κ² μ¬λ¬κ° λ§λ€μ΄μ ꡬννλκ² μ΄μμ μΌκΉ?
μ μλ κΉλνκ² μ§λ§ λ§μ½μ λ κ°μ μ€λΈμ νΈκ° λμμ μμ±λ λ μλ¬ μκΈΈκ±°κ°μλ°
μ λ€λ¦
κ³ μμΈκ±΄ μκ² λλ° κ·Έλ κ²λ§ λ§νλ©΄ λͺ»μμλ€μ
μ€νμΌλ‘ μ€λΈμ νΈν ꡬννλλ° μ€λΈμ νΈν μ€ν¬λ¦½νΈμμ μ¬λ¬κ° μ€ν λ§λ€μ΄μ μ¬λ¬κ° κ΄λ¦¬νλΌλ λ§μ?
ObjectPool, ObjectPoolλ‘ κ΄λ¦¬νλ©΄ νΈν¨ 2021 ltsλΆν°λ 곡μμ§μνκΈ°λ νκ³ κ·Έ μ λ²μ λ κ·Έλ₯ λ§λ€μ΄ μ¨λλκ³ μ¬λλ€μ΄ λ§λ€μ΄λμκ²λ μμ
https://www.csharpstudy.com/CSharp/CSharp-generics.aspx
C++μμ ν νλ¦Ώκ°μκ±° λ§νλ거ꡬλ μ€λΈμ νΈν ν΄λμ€λ₯Ό μ λ€λ¦μΌλ‘ λ§λ€μ΄μ μ¬λ¬ νμ μ μ λμ μΌλ‘ λμνλλ‘ λ§λ€λΌλκ±°μ§? κ·Όλ° λ§μ½μ λ€λ₯Έ λ κ°μ μ€λΈμ νΈλ₯Ό λμμ λ¬λΌκ³ μμ²νλ©΄ μλ¬ μμ겨?
μ μ΄μ λ€λ₯Έ ObjectPool A,B μμ A.Get(), B.Get() λ°λ‘ ν΄μ μΈκ±΄λ° μλ¬λ μΌμ΄μμ§
μ λν°λ©΄
https://www.youtube.com/watch?v=7EZ2F-TzHYw
μ΄κ±°λ³΄μ 2021λΆν° 곡μμ§μν¨
μ€ν€ κ³ λ§μ
λ§μ§λ§μΌλ‘ μ§λ¬Έν κ² μ€μ§μ μΌλ‘ λμνλ건 ObjectPool ν΄λμ€ μ λ€λ¦μΌλ‘ λ§λ€μ΄μ κ΄λ¦¬νκ³ μΈλΆμμ μ¬μ©ν λλ ObjectPoolManager κ°μκ±Έλ‘ μ±κΈν€ κ°μ²΄ λ§λ€μ΄μ μ°λΌλκ±° λ§μ?
ν΄λΉ λκΈμ μμ λμμ΅λλ€.
κ·Έλ°©λ²μ μΌλ¨ μκ°νκΈ΄νμ΄ κ·Όλ° λ§μ½μ μλ₯Όλ€μ΄μ νμλνμ€ κ²μμμ Enemy μ€λΈμ νΈλ bullet μ€λΈμ νΈλ₯Ό νλμ νμμ κ΄λ¦¬νκ² λ λ μ λ§ μ°μ°μ μΌμΉλ‘ enemyλ bulletμ κ±°μ λμμ λΉΌλ΄κ²λλ μν©μ΄ μ¬ μλ μμμ? κ·Έλ μλ¬ μμ겨?
κ΄λ¦¬νλ건 μ€νμΌλ‘ ꡬννμ Stack(bullet) bulletStack; Stack(enemy) enemyStack; μ΄λ°μμΌλ‘ κ·Έλ¦¬κ³ κΊΌλ΄λ건 GetEnemyObject(), GetBulletObject() λ©μλλ‘ κΊΌλΈλ€κ³ νμ λ λ§μ½μ μ΄μμ΄λ μ μ΄ λμμ μμ±λλ κ²½μ°μ λ κ°μ λ©μλκ° λμμ μμ μ μνν μ μμ΄? μλ¬μλκ³ ?
ObjectPool μ€ν¬λ¦½νΈλ₯Ό μ±κΈν€ ν¨ν΄μΌλ‘ λ§λλκΉ ν νλμμ GetEnemyObject(), GetBulletObject() λκ°λ₯Ό λμμ λͺ»ν κ±°κ°μμ.. GetEnemyObject() λ©μλκ° λ¦¬ν΄λκΈ° μ μ GetBulletObject() λ©μλκ° νΈμΆλλ λκ°λ₯Ό κ°μ΄ μνν μ μλλκ° μλ¬ΈμΈκ±°μΌ λνΌμ μγ γ
μ€μΌμ΄ νλ² λ§λ€μ΄λ³Όκ² κ³ λ§μ!
Leanpoolμ°λ©΄ λλλ° λ μ λ€λ¦μ©μ΄λ