Entity Component System ํŒจํ„ด (ECS)

[์›๋ณธ ๋งํฌ]

Entity Component System, ์ดํ•˜ ECS ํŒจํ„ด์€ ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์•„ํ‚คํ…์ณ/๋””์ž์ธ ํŒจํ„ด์ด๋‹ค.
ํ˜„๋Œ€ ๊ฒŒ์ž„์—”์ง„์—์„œ ๋Œ€๋ถ€๋ถ„ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฒŒ์ž„ ๋ถ„์•ผ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ๊ณผ๋Š” ์•ฝ๊ฐ„ ๊ฑฐ๋ฆฌ๊ฐ€ ์žˆ๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ๋ณด๋‹ค๋Š” ์„ฑ๋Šฅ์— ๋” ์ดˆ์ ์„ ๋งž์ถ˜ ์ด๋””์—„์ด๋‹ค.
์ƒ์†๋ณด๋‹ค๋Š” ๊ตฌ์„ฑ๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค.



https://docs.unity3d.com/Packages/com.unity.entities@0.1/manual/ecs_core.html
Entity Component System์€ ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ, Entity, Component, System์˜ 3๊ฐ€์ง€ ๊ด€์ ์œผ๋กœ ๋ ˆ์ด์–ด๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ์•„ํ‚คํ…์ณ ํŒจํ„ด์ด๋‹ค.

  1. Entity๋Š” ๊ฐ๊ฐ์˜ ๊ฐœ์ฒด๋“ค์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ณ ์œ ํ•œ ๋‹จ์ผ ์ •์ˆ˜๊ฐ’๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค.

  2. Component๋Š” ๊ฒŒ์ž„์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋“ค์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋ชฌ์Šคํ„ฐ์˜ ์ฒด๋ ฅ, ๊ณต๊ฒฉ๋ ฅ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋“ค์ด ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋กœ ๊ด€๋ฆฌ๋˜๋Š” ๊ฒƒ์ด๋‹ค. Component๋Š” ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜๋ฉฐ, Entity ID๋ฅผ ํ†ตํ•ด ์ธ๋ฑ์‹ฑ๋  ์ˆ˜ ์žˆ๋‹ค.

  3. System์€ ๋ชจ๋“  ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•ด์„œ ์ „๋ฐ˜์ ์ธ ๋™์ž‘์„ ์ •์˜ํ•œ๋‹ค.






์žฅ์ : ์บ์‹œ๋ผ์ธ ์ตœ์ ํ™”

ECS ํŒจํ„ด์—์„œ๋Š” ๊ฒŒ์ž„์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฑฐ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ์…‹์„ ์ปดํฌ๋„ŒํŠธ ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค.
์ด๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ์—ฐ์†์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๊ณ , ์บ์‹œ๋ผ์ธ ์ตœ์ ํ™”๋„ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์œ ๋„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์„ฑ๋Šฅ์ ์ธ ์žฅ์ ์ด ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ง€ํ–ฅ ์„ค๊ณ„์™€๋„ ์—ฐ๊ด€์ด ๊นŠ๋‹ค.
https://blog.naver.com/sssang97/223132809354?trackingCode=blog_bloghome_searchlist
๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์—ด๋กœ ๊ด€๋ฆฌํ•œ๋‹ค๋Š”๊ฒŒ ๋ณ„๊ฑฐ์•„๋‹Œ๊ฒƒ์ฒ˜๋Ÿผ ๋А๊ปด์งˆ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์‹ค์ œ๋กœ ์„ฑ๋Šฅ์ด ์ˆ˜์‹ญ์ˆ˜๋ฐฑ๊ฐœ๊นŒ์ง€ ์ฐจ์ด๊ฐ€ ๋‚  ์ˆ˜๋„ ์žˆ๋‹ค. ์บ์‹œ๋Š” ๊ทธ๋งŒํผ ๊ฐ•๋ ฅํ•˜๋‹ค.




์žฅ์ : Entity ID์˜ ํ™œ์šฉ๋„

Entity๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๋‹จ์œ„๋ฅผ ๋‹จ์ˆœํ•œ ์ •์ˆ˜๋กœ ์ ์šฉํ•จ์œผ๋กœ ์–ป๋Š” ์žฅ์ ๋„ ์žˆ๋‹ค.
Entity ID๋Š” ๋ถ„๋ช…ํžˆ ์‹ค์žฌํ•˜๋Š” ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— ํฌ์ธํ„ฐ๋ฅผ ์“ธ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ถ€์ž‘์šฉ์ด ๊ฑฐ์˜ ์—†๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ ์—”ํ‹ฐํ‹ฐID ์ž์ฒด๋ฅผ ์˜๋ฏธ์žˆ๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋„คํŠธ์›Œํฌ๋‚˜ DB๋กœ ์ „์†กํ•ด์„œ ์“ธ ์ˆ˜๋„ ์žˆ๋‹ค.



์ฐธ์กฐ
https://en.wikipedia.org/wiki/Entity_component_system
https://docs.unity3d.com/Packages/com.unity.entities@0.1/manual/ecs_core.html
https://www.simplilearn.com/entity-component-system-introductory-guide-article