์ ์๊ฐ์์ ํํฐํด ์์คํ ์์ ๋๋ ์ด์ ๊ฐ์ ธ์ค๊ณ ํ์๋๋ฆฌ๋ฉด ๋ ๊ฑฐ ๊ฐ๋ค๊ณ ์๊ฐ๋๋๋ฐ
๋ฐ์ค์ด ์๊ธฐ๋ฉฐ ์ฌ์ฉ๋์ง์๋๋ค๊ณ ๋จ๋๊ตฐ์
์ ์๊ฐ์์ ํํฐํด ์์คํ ์์ ๋๋ ์ด์ ๊ฐ์ ธ์ค๊ณ ํ์๋๋ฆฌ๋ฉด ๋ ๊ฑฐ ๊ฐ๋ค๊ณ ์๊ฐ๋๋๋ฐ
๋ฐ์ค์ด ์๊ธฐ๋ฉฐ ์ฌ์ฉ๋์ง์๋๋ค๊ณ ๋จ๋๊ตฐ์
์๋ํฐ์์ start lifetime ์ค์ ํด
์ด๊ฒ ๋๋ฒํ ๊ฑฐ๋๊ฑด๋ฐ ํ์์ด๋ฉด ๋ถ ๋ณด์ด๋ ํํฐํด์ ๊ฑฐ๋๊ฑฐ์ ๊ทธ๋ฐ๋ฐ ์ง์์๊ฐ ์ง๋๋ฉด ์ฌ๋ผ์ ธ์ผํ๋๋ฐ ๋ผ์ดํํ์์ ํํฐํด ์์คํ ์ด ๋ง๋ ํํฐํด์ด ์ฌ๋ผ์ง๋๊ฑด๋ฐ ๋ ์ด ํํฐํด ์์คํ ์ ์์ ๊ณ ์ถ์๊ฑฐ์ ์๋๋ฉด ์ฌ๋ฌ๋ฒ ํ์์ ๊ฑธ๋ฆฌ๋ฉด ๊ทธ๋๋ง๋ค ํํฐํด ์์คํ ์ค๋ธ์ ํธ๋ฅผ ๋ถ์ฌ์คํ ๋๊น
์ธ์คํํฐ์์ stop action ๋ถ๋ถ์ด ์ข ๋ฃ๋์๋ ์ฒ๋ฆฌ ๊ฐ์ต๋๋ค. ์ด๋ถ๋ถ์ด disable์ด๋ฉด ๋นํ์ฑํ, destroy๋ฉด ํ๊ดด, callback์ด๋ฉด ์ฐ๊ฒฐ๋ ์คํฌ๋ฆฝํธ๋ด์ ์ฝ๋ฐฑํจ์์ธ OnParticleSystemStopped ๋ฅผ ์คํ์ํค๋๊ฑฐ ๊ฐ์ต๋๋ค.
์ ๋ ํํฐํด ์ค๋ธ์ ํธ๋ฅผ ํ๋ง์ผ๋ก ๊ด๋ฆฌ๋ฅผ ํด์ ํํฐํด ์ค๋ธ์ ํธ์ Effect๋ผ๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ถ์ด๊ณ Effect ์คํฌ๋ฆฝํธ ๋ด์์ private void OnParticleSystemStopped() { PoolingManager.Instance.ReturnEffect(this); } ์ด๋ ๊ฒ ํํฐํด์ด ์ข ๋ฃ๋๋ฉด ํ์ ๋ฆฌํด์์ผ์ฃผ๊ณ ์์ต๋๋ค.
์ด๊ฒ ๋ฐฉ๊ธ ๋์น์ฑ๊ฑด๋ฐ ์๋์ฐ ์ํธ s ๋ก ์บก์ณํ๊ฑธ ์ฌ๋ฆฌ๋ฉด ๊ธ์ ์บก์ณํ๊ฒ ์ฌ๋ผ๊ฐ์ง ์๋๊ตฐ์
๊ฐ์ฌํฉ๋๋ค