๋ฉฐ์น ๋งŒ์— ์˜ฌ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ผ์ง€ 4ํŽธ์ž…๋‹ˆ๋‹ค..





2ab4d67eabd531a04e81d2b628f17569ed12f941e7

์šฐ์„  ์‹œ์ž‘ํ• ๋•Œ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์  ํ•˜๋‚˜์—์„œ ์‹œ์ž‘ํ•˜๊ฒŒ๋จ. ํด๋ฆญํ•ด์„œ ์‹œ์ž‘์ง€์  ์ฃผ์œ„ ํ•œ์นธ๊นŒ์ง€ ์ด 7์นธ์„ ๋ฌด๋ฃŒ๋กœ ์—ด ์ˆ˜ ์žˆ์Œ.





2ab4d67fabd531a04e81d2b628f1776e9f84d785d4

๋งต์—๋Š” ์ € ๋นจ๊ฐ„์ƒ‰ ๋ฒŒ์ง‘ ๋ธ”๋ก์ด ๋ฏธ๋ฆฌ ์กด์žฌํ• ๊ฑฐ์ž„. ๋งต์„ ํ™•์žฅํ•˜์ง€ ์•Š์•„๋„ ๋ฏธ๋ฆฌ ๋ณด์ด๊ฒŒ ๋ ๊ฑฐ์ž„.


๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฒŒ์ง‘์„ ์บ์„œ, ๋ฐ€๋ž์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋งต์„ ๋” ๋„“ํž ์ˆ˜๋„ ์žˆ์Œ.



2ab4d677b59c3faf689fe8b115ef046cd80db51b6715

๋งต ํ™•์žฅ ๋น„์šฉ์€ ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€์–ด์งˆ์ˆ˜๋ก 100๋ฐฐ ์ •๋„ ์ฆ๊ฐ€ํ•˜๊ฒŒ๋จ. ์นธ ๋ณ„๋กœ ์‚ด์ง์‹ ์ฐจ์ด๊ฐ€ ์žˆ์–ด์„œ ์™ ๋งŒํ•ด์„  ํ•œ์นธ์”ฉ ์ „์ง„ํ•˜๊ฒŒ ๋ ํ…๋ฐ ์ค‘๊ฐ„์— ๊ตฌ๋ฉ์ด ๋‚˜๊ฒŒ ๋˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์Œ.


์ขŒํ‘œ๊ณ„๊ฐ€ ์•ฝ๊ฐ„ ๋…ํŠนํ•ด์„œ ๊ณ„์‚ฐ์‹์„ ์„ธ์›Œ์„œ ํ•˜๊ธด ํ–ˆ๋Š”๋ฐ ์˜จ์ „ํ•˜์ง„ ์•Š์Œ.




24b0d121e09c28a8699fe8b115ef046c63f72047

์ขŒํ‘œ๊ณ„๊ฐ€ ์ด๋Ÿฐ์‹์œผ๋กœ ๋™์ž‘ํ•ด์„œ


๋ฒ”์œ„์ธก์ •์ด๋‚˜ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ์— ์ƒ๋‹นํžˆ ์• ๋จน๊ณ  ์žˆ๊ธด ํ•œ๋ฐ


๋Œ€์ถฉ Y์ขŒํ‘œ๊ฐ€ ์ง์ˆ˜์ผ๋•Œ๋ž‘ ํ™€์ˆ˜์ผ๋•Œ ๊ทœ์น™์ด ๋‚˜๋‰˜์–ด ์žˆ์–ด์„œ ๋‘๊ฐ€์ง€๋กœ ๋ถ„ํ• ํ•ด์„œ ์—ฐ์‚ฐํ•˜๊ณ  ์žˆ์Œ.


List<Hive> checkList = new(); bool checkXM1 = pos.x - 1 >= 0; bool checkXP1 = pos.x + 1 < sizeX; bool checkYM1 = pos.y - 1 >= 0; bool checkYM2 = pos.y - 2 >= 0; bool checkYP1 = pos.y + 1 < sizeY; bool checkYP2 = pos.y + 2 < sizeY; if (pos.y % 2 == 0) //์ง { if (checkYM2) { checkList.Add(hiveMap[pos.x, pos.y - 2]); } if (checkYP2) { checkList.Add(hiveMap[pos.x, pos.y + 2]); } if (checkYM1) { checkList.Add(hiveMap[pos.x, pos.y - 1]); if (checkXM1) { checkList.Add(hiveMap[pos.x - 1, pos.y - 1]); } } if (checkYP1) { checkList.Add(hiveMap[pos.x, pos.y + 1]); if (checkXM1) { checkList.Add(hiveMap[pos.x - 1, pos.y + 1]); } } } else //ํ™€ { if (checkYM2) { checkList.Add(hiveMap[pos.x, pos.y - 2]); } if (checkYP2) { checkList.Add(hiveMap[pos.x, pos.y + 2]); } if (checkYM1) { checkList.Add(hiveMap[pos.x, pos.y - 1]); if (checkXP1) { checkList.Add(hiveMap[pos.x + 1, pos.y - 1]); } } if (checkYP1) { checkList.Add(hiveMap[pos.x, pos.y + 1]); if (checkXP1) { checkList.Add(hiveMap[pos.x + 1, pos.y + 1]); } } }

์ด๋Ÿฐ์‹์œผ๋กœ ์ง์ˆ˜ ํ™€์ˆ˜๋ฅผ ๋‚˜๋ˆ„๊ณ  ์ขŒํ‘œ ๊ฐ์ž ๊ฒ€์‚ฌํ•˜๋Š”๋ฐ ์‚ด์ง ๊ธธ์–ด์„œ ๊ทธ๋ƒฅ ๋งต์— ์—ฌ๋ถ„ ์ธ๋ฑ์Šค๋ฅผ ํ•˜๋‚˜ ๋‘๊ณ  ์ธ๋ฑ์Šค ์ดˆ๊ณผํ–ˆ๋Š”์ง€ ๊ฒ€์‚ฌ๋ฅผ ๋นผ๋ฒ„๋ฆด๊นŒ ์‹ถ๊ธฐ๋„ ํ•จ.


pos -= new Vector2Int(8, 26);


float x = pos.x, y = pos.y;


if (pos.y % 2 == 0) //์ง

{

x *= 2;

y *= 0.5f;

}

else //ํ™€

{

x += 0.5f;

y *= 0.5f;

}


int num = Mathf.Max((int)System.MathF.Ceiling((Mathf.Abs(x) + Mathf.Abs(y)) * 2) - 2, 0);



๊ฑฐ๋ฆฌ๊ณ„์‚ฐ๋„ ๋น„์Šทํ•˜๊ฒŒ ์ง์ˆ˜ ํ™€์ˆ˜ ๋‚˜๋ˆ ์„œ ๋ณด์ •ํ•ด์„œ ๊ตฌํ•ด์คฌ์Œ.


x์ขŒํ‘œ๋Š” ์ง์ˆ˜์—์„œ 1์ฐจ์ด๋งˆ๋‹ค 2์นธ์”ฉ ์˜†์œผ๋กœ ๊ฐ€๊ณ 

y์ขŒํ‘œ๋Š” ๋ฐ˜์ ˆ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์„œ 2๋กœ ๋‚˜๋ˆ ์คฌ์Œ.


ํ™€์ˆ˜์ผ๋• 0.5f๋ฅผ ๋”ํ•ด์„œ y๊ฐ€ ํ™€์ˆ˜์ผ๋• ์ค‘์‹ฌ๋Œ€๋น„ x์ขŒํ‘œ๊ฐ€ ์™ผ์ชฝ์ด -1, ์˜ค๋ฅธ์ชฝ์ด 0์ด๋ผ์„œ -0.5f 0.5f๋กœ ๋งž์ถฐ์คฌ์Œ.


๋น„์œจ์ด ์˜จ์ „ํžˆ ๋งž์ง€๋Š” ์•Š๋Š”๊ฒƒ ๊ฐ™์Œ. ๊ทธ๋ž˜๋„ ์ฃผ์œ„๋กœ ํ•œ์นธ์”ฉ ํ™•์žฅํ•˜๋Š” ํ˜•ํƒœ๊ธด ํ•จ.







24b0d121e09c28a8699fe8b115ef0464d78de0cb

๊ทธ๋ฆฌ๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œ์ธ๋ฐ 2๋ฒˆ์งธ ๋ชจ๋ฃจ ๋ฒ„ํŠผ์œผ๋กœ ์—ด ์ˆ˜ ์žˆ์Œ.


๋ ˆ๋ฒจ๋งˆ๋‹ค ๊ณฑ์—ฐ์‚ฐ๋˜๊ณ  ์–ด์ฉŒ๊ตฌ ์ €์ฉŒ๊ตฌ...



์•„๋ฌดํŠผ ๋งŒ๋“ ๊ฑด ์ด์ •๋„๊ณ 

๋‹ค์Œ์— ํ• ๊ฑฐ ์‚ด์ง ๋งํ•˜์ž๋ฉด


1๋ฒˆ ์ œ์ž‘ ํƒญ์˜ ๋งจ ์œ„์— ๋ธ”๋Ÿญ ํŒŒ๊ดด ๋ฒ„ํŠผ

์—…๊ทธ๋ ˆ์ด๋“œ ๊ตฌํ˜„, ๋น„์šฉ ๊ตฌํ˜„

์ œ์ž‘ ๋น„์šฉ ๊ตฌํ˜„

3๋ฒˆ ์ œ์ž‘ ํƒญ์˜ ์—ฐ๊ตฌ ๊ด€๋ จ ์ œ์ž‘

4๋ฒˆ ์ œ์ž‘ ํƒญ์˜ ํ™˜์ƒ ์ œ์ž‘


์ตœ๋Œ€ํ•œ ๋นจ๋ฆฌ ๋นจ๋ฆฌ ๋งŒ๋“œ๋Š”๊ฒŒ ๋ชฉํ‘œ.



5๋ฒˆ ์ œ์ž‘ ํƒญ์€ ํŠน๋ณ„ํžˆ ์ •ํ•ด์ง„๊ฑด ์—†๋Š”๋ฐ ์•„๋งˆ ์œ ์  ๊ด€๋ จ ๋‚ด์šฉ(๋งต์— ์žˆ๋Š” ์ด๋ฒคํŠธ ์˜ค๋ธŒ์ ํŠธ)์ด๋‚˜ ์ƒ์ ์ด ๋ ๊ฑฐ์ž„.



์œ ์ ์€ ํ•ด๋ฐฉํ•˜๋ฉด ๊ต‰์žฅํ•ด ์—„์ฒญ๋‚œ ๊ณ ๋Œ€ ์œ ๋ฌผ ๋ธ”๋Ÿญ์ด ๋˜์„œ ์ฃผ์œ„์— ์—„์ฒญ๋‚œ ๋ฒ„ํ”„๋ฅผ ์ค„๊ฑฐ์ž„.


24b0d121e09c28a8699fe8b115ef046ec840cf

๋Œ€์ฒด ์™œ ๋ฒŒ์ง‘์— ์œ ์ ์ด ์žˆ๋Š”์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๊ทธ๋Ÿฐ๊ฑธ๋กœ ํ•ฉ์‹œ๋‹ค..