Entities1.0 ์œผ๋กœ Match3 ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋„ˆ๋ฌด ์—†์œผ๋‹ˆ ๋‹ต๋‹ตํ•˜๋‹ค.



ํƒ€์ผ ์ƒ์„ฑํ•œ๊ฑฐ๊นŒ์ง€๋Š” ์ž˜ ๋˜๋Š”๋ฐย Entities Hierarchy ๋ทฐ์—์„œ Entity๋ฅผ ํด๋ฆญํ•˜๋ฉด Tile๋“ค์ด ํ•˜๋‚˜์˜ Position์œผ๋กœ ๋ชจ์—ฌ๋ฒ„๋ฆผ..

viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73cea87fa11d02831b2fad925127cd0a6c583ef65fdbb5b55d8d8268c0778cb67550e434014172bc9430f6cc9e00e107d08d4fddfd134c7



Inspector ์ฐฝ์—์„œ ๋ณด๋ฉด ์ขŒํ‘œ๋Š” ์ž˜ ๋“ค์–ด๊ฐ„๊ฑฐ ๊ฐ™์€๋ฐ... ๋‚ด๊ฐ€ ์ž˜๋ชปํ•œ๊ฑด์ง€ ์œ ๋‹ˆํ‹ฐ์˜ ๋ฒ„๊ทธ์ธ๊ฑด์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.. ใ… 

7cf3c028e2f206a26d81f6e44286756c



์ผ๋‹จ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.


[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

ย  ย  ย  ย  ย  ย  ย  ย  });

ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  }

ย  ย  }

}


์ด๊ฒŒ ์œ ๋‹ˆํ‹ฐ ๋ฒ„๊ทธ์ด๋ฉด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋…ธ์ถœ๋˜์—ˆ์„ํ…Œ๋‹ˆ ์œ ๋‹ˆํ‹ฐ ํฌ๋Ÿผ์„ ๋ดค์ง€๋งŒ,

๋‚˜์™€ ๊ฐ™์€ ์ฆ์ƒ์„ ๋ณด์ธ๋‹ค๋Š” ๊ธ€์„ ์—†๋‹ค. ๋‚ด๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž˜๋ชป ์“ด ๊ฑด๊ฐ€.. ใ… ย