Entities1.0 ์ผ๋ก Match3 ๋ง๋ค์ด๋ณด๋ ค๊ณ ํ๋๋ฐ ๋ ํผ๋ฐ์ค๊ฐ ๋๋ฌด ์์ผ๋ ๋ต๋ตํ๋ค.
ํ์ผ ์์ฑํ๊ฑฐ๊น์ง๋ ์ ๋๋๋ฐย Entities Hierarchy ๋ทฐ์์ Entity๋ฅผ ํด๋ฆญํ๋ฉด Tile๋ค์ด ํ๋์ Position์ผ๋ก ๋ชจ์ฌ๋ฒ๋ฆผ..
Inspector ์ฐฝ์์ ๋ณด๋ฉด ์ขํ๋ ์ ๋ค์ด๊ฐ๊ฑฐ ๊ฐ์๋ฐ... ๋ด๊ฐ ์๋ชปํ๊ฑด์ง ์ ๋ํฐ์ ๋ฒ๊ทธ์ธ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ๋ค.. ใ
์ผ๋จ ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
[BurstCompile]
partial struct TileSpawnJob : IJobEntity
{
ย ย public EntityCommandBuffer ECB;
ย ย public BoardData boardData;
ย ย void Execute(in TileSpawnerData tileSpawner)
ย ย {
ย ย ย ย
ย ย ย ย for (int x = 0; x < boardData.width; x++)
ย ย ย ย {
ย ย ย ย ย ย for (int y = 0; y < boardData.height; y++)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย var tile = ECB.Instantiate(tileSpawner.tileEntity);
ย ย ย ย ย ย ย ย var tileTransform = UniformScaleTransform.FromPosition(x, y, 0);
ย ย ย ย ย ย ย ย ECB.AddComponent(tile, new TileData
ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย ย xIndex = x,
ย ย ย ย ย ย ย ย ย ย yIndex = y
ย ย ย ย ย ย ย ย });
ย ย ย ย ย ย ย ย ECB.SetComponent(tile, new LocalToWorldTransform
ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย ย Value = tileTransform
ย ย ย ย ย ย ย ย });
ย ย ย ย ย ย }
ย ย ย ย }
ย ย }
}
์ด๊ฒ ์ ๋ํฐ ๋ฒ๊ทธ์ด๋ฉด ๋ง์ ์ฌ๋๋ค์๊ฒ ๋ ธ์ถ๋์์ํ ๋ ์ ๋ํฐ ํฌ๋ผ์ ๋ดค์ง๋ง,
๋์ ๊ฐ์ ์ฆ์์ ๋ณด์ธ๋ค๋ ๊ธ์ ์๋ค. ๋ด๊ฐ ์ฝ๋๋ฅผ ์๋ชป ์ด ๊ฑด๊ฐ.. ใ ย
DOTS๋ ์์ง ์๊ฑด๋๋ฆฌ๋๊ฒ ์ ์ ๊ฑด๊ฐ์ ์ข์
.. ๊ทธ.. ๊ทธ๋์ผ ๊ฒ ์ด.... ๋จธ๋ฆฌํธ ๋น ์ง๋ ๊ธฐ๋ถ.....
์ก์ผ๋ก ๋ฉํฐ์ฐ๋ ๋๋ก ๋์๊ฐ๋ ๊ฑฐ์์๋ ์ ๋ํฐ ์๋ํฐ๋ ๋ง๋๋ฉด ๊ดดํ์์ด ์ถฉ๋ถํ ๋ํ๋ ์ ์์...
ใ ,.ใ ๋๋ฌด ์์ฌ๋๋ ๊ธฐ๋ฅ์ด๋ผ ๋ฆด๋ฆฌ์ฆ๋ ์๋ ๊ฑฐ๋ฅผ ๊ฑด๋๋ฆฐ ์ฃ๊ฐ์ ์น๋ฃจ๋ ๋ฏ...
๋ DOTS์ชฝ ์คํค๋์ด๋ ์ ๋๋ฉ์ด์ ์ชฝ ์ข ๋์ค๋ฉด ๊ทธ๋ ํ ๋ผ๊ณ , ์ง์ง ๋ญ ์ ๋ํฐ ์๋ํํฐํด๋ ์ ํ ์ฌ์ฉํ ์๊ฐ ์์ด์.. ์ฐ๋ ค๋ฉด ํ์ด๋ธ๋ฆฌ๋ ๋ฐฉ์์ ํด์ผํ๋๋ฐ, ๊ทธ๋ด๋ฐ์๋ ๋ค๋ฅธ ECS์ค์ LeoECS๋ Entitas, SveltoECS ์ด๋ฐ๊ฑฐ ์ฐ๊ณ ๋ง์ง..
1.0 ์ด๋ผ๊ธธ๋ ์ด์ ๋๋ก ๋ฒ๊ทธ ํฐ์ง์ค์ ๋ชฐ๋๋ค.. Leo, Svelto ํจ ๊ฒ์ํด๋ด์ผ๊ฒ ๋ค. ๊ณ ๋ง์!