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๊ฐ์ง ๊ด์ ์ผ๋ก ๋ ์ด์ด๋ฅผ ๋ถ๋ฆฌํด์ ๊ด๋ฆฌํ๋ ์ํคํ
์ณ ํจํด์ด๋ค.
-
Entity๋ ๊ฐ๊ฐ์ ๊ฐ์ฒด๋ค์ ๊ตฌ๋ถํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋งํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ณ ์ ํ ๋จ์ผ ์ ์๊ฐ๋ง์ ์ฌ์ฉํ๋ค.
-
Component๋ ๊ฒ์์ ํํํ๊ธฐ ์ํ ์ค์ ๋ฐ์ดํฐ๋ค์ด๋ค. ์๋ฅผ ๋ค๋ฉด ๋ชฌ์คํฐ์ ์ฒด๋ ฅ, ๊ณต๊ฒฉ๋ ฅ ๊ฐ์ ๋ฐ์ดํฐ๋ค์ด ์ปดํฌ๋ํธ ๋จ์๋ก ๊ด๋ฆฌ๋๋ ๊ฒ์ด๋ค. Component๋ ๋ฐฐ์ด ํํ๋ก ์ ์ฅ๋๋ฉฐ, Entity ID๋ฅผ ํตํด ์ธ๋ฑ์ฑ๋ ์ ์๋ค.
-
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