๋ญ.. ํด๋์ค ์์ ๊ณ์ ์์ํ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ๋ผ๋ ํด์ผํ๋๊ฒ์ ..?
์๋๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์? ์ผ์ฒ๊ตฌ๋์๋น
๋ญ.. ํด๋์ค ์์ ๊ณ์ ์์ํ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ๋ผ๋ ํด์ผํ๋๊ฒ์ ..?
์๋๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์? ์ผ์ฒ๊ตฌ๋์๋น
์ ๋ํฐ ๊ด๋ จ ๊ฐ์ฒด๋ ์ ๋ํฐ ๋ด๋ถ์ ์ผ๋ก ๋ฉ์ธ์ฐ๋ ๋์์๋ง ์ ๊ทผํ ์์๊ฒ ์ฒ๋ฆฌ๋์๋๊ฑธ๋ก ์ ใ ใ
์์ด ๊ทธ๋์ ์๋ธ์ค๋ ๋์์ ์ ๋ํฐ ๊ฐ์ฒด ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์ธ ํ์ ๋ฌ๋ผ๋๊ฒ์
์๋ฒ ํจํท ์ฒ๋ฆฌํ๋ ๊ฒ์ฒ๋ผ ํด๋์ค ํ๋ ๋ง๋ค์ด์ ํ ๋ง๋ค์ด๋๊ณ ์๋ธ ์ค๋ ๋์์ ํด๋น ํ์ ์ง์ด๋ฃ๊ฒ๋ง ํ๋ค์์
์ ๋ฐ์ดํธ๋ฌธ์์ ํ์ ๋ค์ด์๋๊ฑฐ ๋นผ์ ์ฒ๋ฆฌํ๊ฒ ํ๋ฉด ๋์ง ใ ใ
์ฒ์ ์ง๋ณด๋๊ฑฐ๋ผ ์ข๋ง ๋ ์์ธํ๊ฒ ์ค๋ช ์ข ํด์ค์ ์์?
public interface IProcess{ public void Process();}public class TaskManager where T : IProcess{ private readonly Queue _tasks = new Queue(); public void AddTask(T task) { _tasks.Enqueue(task); } public void Update() { while (_tasks.Count > 0) { _tasks.Dequeue().Process(); } }}๋์ถฉ ์ด๋ฐ๋๋์ผ๋ก ์ง์์ฐ๋ฉด๋จ ์ํฉ๋ฐ๋ผ ํ๋ ์๋น ์ ํ์ ๊ฑธ์๋ ์๊ณ ์ ๋ง๋ค์ด์ ์ฐ๋ฉด๋ ์ฝ๋ ๋๊ธ ์ค๋๊น์ด ์๋๋น ์์์ ์ ๋ณด๊ณ ํด๋ด
๋์ถฉ ์ง๋๋ผ MonoBehaviour ๊น๋นกํ๋๋ฐ ๋ฃ์ด์ ์ ๋ํฐ์ ๋ถ์ฌ์ฃผ๋ฉด ๋
ใ ใ Update๋ FixedUpdate ๊ฐ์ ๋์ผ๋ก ํ ์ฐ๋ ๋์์ ๊ฐ๊ณต ํ ๋ฐ์ดํฐ๋ก ์ต์ ํ ํด์ผ๋จ.
์ฐํํ๋ ๋ฐฉ๋ฒ์ด์ผ ์ด๊ฒ์ ๊ฒ ์๊ฒ ๋ค๋ง ๊น๋๊ณ ๊ทธ๋ฅ ์ฐ์ง ๋ง๋ผ๊ณ ์๊ธฐํ๋๊ฑฐ๋ ๋ณ๋ค๋ฅผ๊ฒ ์์ ใ ใ ์ ํ์ํ๋ฉด ์ก ์์คํ ์ ์ฐ๋๊ฐ ํ๋๊ฑธ ๊ณ ๋ คํด๋ณด์
์๋ธ์์ ์์ฒญ ํ๋ฉด ๋ฉ์ธ์์ ๊ฑด๋ด์ฃผ๋ ๋ฐฉ์์ผ๋ก ๋๋ถ๋ถ ํ๋ก ๊ตฌํํจ, ๋ง๋ค๊ธฐ ๊ท์ฐฎ์ผ๋ฉด ๊ทธ๋ฅ ๋ณ์ ๊ฐ์๊ฑธ๋ก ํธ๋ฆฌ๊ฑฐ ์ญํ ํด๋ ๋๊ธดํจ ์ค๋ ๋์ธ์ดํ ๋ฐ์ ๋ด ์๋ฐ ์๋์ง