๊ฒŒ์ž„ ํ…Œ์Šคํ„ฐ ๋ถ€ํƒํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ์ผ์ง€ ํ•„์š”ํ•˜๋‹ค๊ณ ํ•ด์„œ

๋น„๊ณต๊ฐœ๋กœ ํ˜ผ์ž ๋„ค์ด๋ฒ„ ์นดํŽ˜์— ์ž‘์„ฑ ํ–ˆ๋˜ ์•ฝ 9๊ฐœ์›”๊ฐ„์˜ ๊ฐœ๋ฐœ์ผ์ง€ 110๊ฐœ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค!


์ €๋Š” ๋Œ€ํ•™๊ต 3ํ•™๋…„์— ๋’ค๋Šฆ๊ฒŒ ๋ฌธ๊ณผ์—์„œ ์ปด๊ณต์œผ๋กœ ์ „๊ณผํ•œ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค!

์ผ์ง€์ค‘์— ๊ฐ„๋‹จํ•œ ๊ฒƒ๋„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์˜ค๋ž˜๊ฑธ๋ฆฌ๋Š” ์  ์–‘ํ•ด๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.


















11/3

* ํ•œ๊ธ€ ํฐํŠธ ๋‹ค์šด(๊ณ ๋„์ฒดB)

* ๊ณ ๋„์ฒด ํฐํŠธ SDF ์ œ์ž‘

* Button_Menu ์ƒ์„ฑ



11/7

* UI Panel ์ œ์ž‘

* UserProfile ์ƒ์„ฑ

* GodoB SDF Material_Outline ์ƒ์„ฑ์œผ๋กœ ์ธํ•œ TMP ์•„์›ƒ๋ผ์ธ ์ ์šฉ ๊ฐ€๋Šฅ

* Button_Menu ์ƒ์„ฑ



11/8

* Dialogue(๋Œ€ํ™”์ฐฝ) ์ƒ์„ฑ

* Menu(๋ฉ”๋‰ด) ์ƒ์„ฑ

* UIManager ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

* ๋ฉ”๋‰ด๋ฒ„ํŠผ ํด๋ฆญ์œผ๋กœ ๋ฉ”์ธ๋ฉ”๋‰ด ์—ด๊ณ ๋‹ซ๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

* Scene0_Persistent ์ถ”๊ฐ€. ์ด๊ณณ์— Main Camera์™€ UI๋ฅผ ๋„ฃ์–ด ๋ชจ๋“  ์”ฌ์—์„œ ์ž‘๋™ํ•˜๊ฒŒ ํ•จ.

* Canvas๋ฅผ ๊ฐ ์”ฌ์— ๋งž๋Š” UI๊ฐ€ ์ถœ๋ ฅ๋˜๋„๋ก ์”ฌ๋ณ„๋กœ ์„ธ๋ถ„ํ™”.

* Scene1_Main, Scene2_Battle ์ถ”๊ฐ€

* Battle Field(์ „ํˆฌ ๋ฐฐ๊ฒฝ) ์ถ”๊ฐ€



11/9

* BackGround_1(๋ฐฐํ‹€ ํ•„๋“œ) ์ œ์ž‘

* BattleUICanvas ์ƒ์„ฑ



11/10

* SPUM(์บ๋ฆญํ„ฐ ์ œ์ž‘ ํ”Œ๋Ÿฌ๊ทธ์ธ) ๋‹ค์šด๋กœ๋“œ, ์˜ˆ์ œ ์‹คํ–‰


11/12

* CharacterDetails ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

* SO_CharacterList ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

* so_CharacterList ์Šคํฌ๋ฆฝํ„ฐ๋ธ” ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ. ๋ฆฌ์ŠคํŠธ ์ˆ˜๋Š” 17(Normal 7, Excellent 7, Elite 3, Hero 0)

* ์บ๋ฆญํ„ฐ 17๊ฐœ ์ƒ์„ฑ. ์Šคํฌ๋ฆฝํ„ฐ๋ธ” ์˜ค๋ธŒ์ ํŠธ์— ์‚ฝ์ž…

* 1์ฐจ, 2์ฐจ ์ „์ง ๊ธฐํš ๊ตฌ์ƒ



11/13

* GridPropertiesManager ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

* SO_GridProperties ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

* GridProperty ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

* Enums ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ



11/17

* so_GridProperties_Grid1_Standard ์Šคํฌ๋ฆฝํ„ฐ๋ธ” ์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ ๋ฐ ๋ฆฌ์ŠคํŠธ ์ž‘์„ฑ

* BattleManager ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

* BattleManager.GenerateCharacter() ์ž‘์„ฑ. SO_CharacterList์˜ characterDetails List์—์„œ ์บ๋ฆญํ„ฐ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด

์บ๋ฆญํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊บผ๋‚ธ ํ”„๋ฆฌํŒน์„ ๊ฐ ์ž๋ฆฌ์— ๋งž๊ฒŒ Instantiateํ•˜๋Š” ํ•จ์ˆ˜.

* GridPropertiesManager.WorldPointToGridCoordinate_Stage1(Vector2 vector2) ์ž‘์„ฑ. ์›”๋“œ ํฌ์ธํŠธ๋ฅผ ๊ฒŒ์ž„์˜ ๊ทธ๋ฆฌ๋“œ ์ขŒํ‘œ๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜.

* GridPropertiesManager.GridCoordinateToWorldPoint_Stage1(Vector2 vector2) ์ž‘์„ฑ. ๊ฒŒ์ž„์˜ ๊ทธ๋ฆฌ๋“œ ์ขŒํ‘œ๋ฅผ ์›”๋“œ ํฌ์ธํŠธ๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜.



11/18

* GridPropertiesManager.GridCoordinateToGridPropertyListIndex(Vector2 vector2, SO_GridProperties so_GridProperties) ์ž‘์„ฑ. ๊ทธ๋ฆฌ๋“œ ์ƒ(์›”๋“œ ํฌ์ธํŠธ ์•„๋‹˜)์—์„œ์˜ ์ขŒํ‘œ๊ฐ’์— ๋”ฐ๋ฅธ ํ˜„์žฌ SO_GridProperties์˜ ํ•ด๋‹น ์ขŒํ‘œ๋ฅผ ๋‹ด์€ ์ธ๋ฑ์Šค ๋ฐ˜ํ™˜

* GenerateMonster(int[] appearMonsterCodeArray, int[] howManyMonsterArray) ์ฝ”๋ฃจํ‹ด ์ž‘์„ฑ. ์ „ํˆฌ์— ๋“ฑ์žฅํ•  ๋ชฌ์Šคํ„ฐ ์ฝ”๋“œ ๋ชฉ๋ก๊ณผ ํ•ด๋‹น ๋ชฌ์Šคํ„ฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋“ฑ์žฅํ• ์ง€์— ๋Œ€ํ•œ ๋ชฉ๋ก์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›์•„ ๋ชฌ์Šคํ„ฐ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” ์ฝ”๋ฃจํ‹ด



11/20

* 0_Slime ๋ชฌ์Šคํ„ฐ ์ƒ์„ฑ

* 1_Throw Slime ๋ชฌ์Šคํ„ฐ ์ƒ์„ฑ

* BattleManager.GenerateMonster ํ•จ์ˆ˜ ์‹คํ–‰ -> ์ž˜๋จ



11/21

* Monster ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

* SearchNextGrid() ์ฝ”๋ฃจํ‹ด ์ƒ์„ฑ

* ๋ชฌ์Šคํ„ฐ ์ด๋™ ๊ธฐ์ดˆ ๊ตฌํ˜„



11/24

* ๋ชฌ์Šคํ„ฐ 0, 1 ํ”ผ๋ฒ— ์œ„์น˜ ๋ณ€๊ฒฝ

* ๋ชฌ์Šคํ„ฐ ์‚ฌ๊ฑฐ๋ฆฌ ์ถ”๊ฐ€

* ๋ชฌ์Šคํ„ฐ ์‚ฌ๊ฑฐ๋ฆฌ ๋‚ด์— ์บ๋ฆญํ„ฐ๊ฐ€ ์žˆ์„ ์‹œ ๋ฉˆ์ถ”๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„

* BattleManager.GetGridIndex(Vector2 vector2) ๋ฉ”์†Œ๋“œ ์ถ”๊ฐ€. WorldPosition์„ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ๊ทธ๋ฆฌ๋“œ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜

* BattleManager.GenerateCharacter()์—์„œ ์บ๋ฆญํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•ด๋‹น ์ž๋ฆฌ์˜ ๊ทธ๋ฆฌ๋“œ์˜ isExist์™€ isCharacter๋ฅผ true๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ ์ถ”๊ฐ€



11/27

* GridPropertyDetails ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ.

* ๊ทธ๋ฆฌ๋“œ ๊ด€๋ฆฌ ๋กœ์ง ๊ฐˆ์•„์—Ž์Œ. SO๋Š” ๋Ÿฐํƒ€์ž„์ค‘ ๋ณ€๊ฒฝ์„ ํ•˜๋ฉด ์•ˆ๋œ๋‹ค๋Š”๊ฒƒ์„ ๋ช…์‹ฌํ•  ๊ฒƒ. SO๋Š” ๊ฒŒ์ž„ ์‹คํ–‰์ „ ์ฐธ์กฐํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ผ๊ณ  ์ƒ๊ฐํ•  ๊ฒƒ.

* Dictionary<string, GridPropertyDetails> gridPropertyDetailsDictionary๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ด์ „์— SO์—์„œ ํ–ˆ๋˜๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ ๊ทธ๋ฆฌ๋“œ์—๋Œ€ํ•œ ๊ด€๋ฆฌ๋ฅผ ์‹คํ–‰ํ•จ

* Monster.DecideNextPosition() ์ž‘์„ฑ. ์ด ํ•จ์ˆ˜๋กœ ์ธํ•ด ์•ž์— ๋ชฌ์Šคํ„ฐ๊ฐ€ ์กด์žฌํ•  ์‹œ Y์ถ•์„ ์›€์ง์ด๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„. ํ˜„์žฌ๋Š” 5ํ–‰ (-2, -1, 0, 1, 2) ๋ฐ–์œผ๋กœ๋Š” ๋ชป๋‚˜๊ฐ€๊ฒŒ ์ œํ•œ ํ•ด๋‘ .

โ€ป ๊ธˆ์ผ ์ž‘์—…์€ ์‰ฝ์ง€ ์•Š์€ ์ž‘์—…์ด์—ˆ๊ณ , ๋กœ์ง์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ๋ณต์žกํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„๊ทธ๊ฐ€ ์ผ์–ด๋‚˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•  ๊ฒƒ



11/28

* Character ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

* SliderController ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ

* Slider_Monster, Slider_Character ํ”„๋ฆฌํŒน ์ƒ์„ฑ. ์ฒด๋ ฅ ๋ฐ” ์—ญํ• ์„ ํ•จ.

* Monster.Attack(Character target) ์ฝ”๋ฃจํ‹ด ์ƒ์„ฑ

* ๋ชฌ์Šคํ„ฐ์˜ ์บ๋ฆญํ„ฐ์— ๋Œ€ํ•œ ๊ณต๊ฒฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„



11/30

* Character.SearchMonster์™€ Attack ์ฝ”๋ฃจํ‹ด ์ž‘์„ฑ. ๋ชฌ์Šคํ„ฐ ํƒœ๊ทธ๋ฅผ ๊ฐ€์ง„ ์˜ค๋ธŒ์ ํŠธ๊ฐ€ range ์•ˆ์— ๋“ค์–ด์˜ค๋ฉด ๊ณต๊ฒฉํ•จ.

* ๋ชฌ์Šคํ„ฐ ์ฒด๋ ฅ๋ฐ”๋Š” ํ”ผ๊ฒฉ ๋“ฑ์œผ๋กœ ์ฒด๋ ฅ์ด ์ค„์—ˆ์„ ์‹œ์—๋งŒ ๋‚˜ํƒ€๋‚˜๋„๋ก ๋ณ€๊ฒฝ