๋Œ€ํ•™ ๊ณผ์ œ๋กœ ์ฒด์Šค๊ฒŒ์ž„์„ ๋งŒ๋“ค๊ณ  ๊ทธ์—๋งž๋Š” AI๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


๊ฐœ๋ฐœ ์˜์ƒ์€

https://www.youtube.com/watch?v=lFZeeTZ29w0&list=PLXV-vjyZiT4b7WGjgiqMy422AVyMaigl1&ab_channel=Etredal

๋ฅผ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ณด๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฐ์—ด๋กœ๋Š”

ย  ย  public GameObject[,] positions = new GameObject[8, 8];
ย  ย  public GameObject[] playerBlack = new GameObject[16];
ย  ย  public GameObject[] playerWhite = new GameObject[16];

๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.


ํ˜„์žฌ ํ”Œ๋ ˆ์ด์–ด์ธก์ด ๋ง์„ ์›€์ง์ด๋ฉด

์ปดํ“จํ„ฐ๊ฐ€ ์ž์‹ ์ด ์ฒดํฌ์ƒํƒœ์ธ์ง€ ํ™•์ธ -> ์ž์‹ ์ด ๊ฐ€๋Šฅํ•œ ์›€์ง์ž„ ์‹œ๋ฌผ๋ ˆ์ด์…˜ -> ์ฒดํฌ์— ๋Œ€ํ•œ ๋ฐฉ์–ด์›€์ง์ž„

์ด๋Ÿฐ์‹์œผ๋กœ ํ–‰๋™ํ•˜๊ฒŒ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ปดํ“จํ„ฐ ์ž์‹ ์˜ ์ฒดํฌํŒ๋‹จ์€ ์™„์„ฑ๋˜์—ˆ๊ณ  ์›€์ง์ž„ ์‹œ๋ฌผ๋ ˆ์ด์…˜์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ƒ๋ณด๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋”ฐ๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ์š”

๊ฐ€์ƒ ๋ณด๋“œ ์Šคํฌ๋ฆฝํŠธ์—์„œ

Game sc = GameObject.FindGameObjectWithTag("GameController").GetComponent<Game>();

ย  ย  ย  ย  positions = (GameObject[,])sc.positions.Clone();


ย  ย  ย  ย  ย matpositions = (GameObject[,])sc.matpositions.Clone();


ย  ย  ย  ย  ย playerBlack = (GameObject[])sc.playerBlack.Clone();


ย  ย  ย  ย  ย  playerWhite = (GameObject[])sc.playerWhite.Clone();

๋กœ ํ˜„์žฌ ๊ฒŒ์ž„๋ณด๋“œ์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‹œ๋ฌผ๋ ˆ์ด์…˜ํ•˜๊ณ  ๋ง์„ ์›€์ง์ด๋Š”๋ฐ

์ด ์‹œ๋ฌผ๋ ˆ์ด์…˜ํ•œ ๊ฐ’๋“ค์ด ๊ทธ๋Œ€๋กœ ํ˜„ ๊ฒŒ์ž„๋ณด๋“œ์— ์ ์šฉ์ด๋ฉ๋‹ˆ๋‹ค.

์ž˜ ๋˜๋‹ค๊ฐ€ AI๊ฐ€ ์ฒดํฌ๋ฅผ ํŒ๋‹จํ•œ์ˆœ๊ฐ„ ๊ฑฐ์˜ ๋ชจ๋“  ๋ณด๋“œ์˜ AI๋ง๋“ค์ด ์›€์ง์ž…๋‹ˆ๋‹ค.


๊ฐ€์ƒ๋ณด๋“œ ์Šคํฌ๋ฆฝํŠธ์—์„œ ํ˜„ ๊ฒŒ์ž„๋ณด๋“œ์— ๊ด€์—ฌํ• ๋งŒํ•œ ์ฝ”๋“œ๊ฐ€ ํ˜„๊ฒŒ์ž„๋ณด๋“œ์—์„œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ฝ”๋“œ๋ฐ–์— ์—†๋Š”๋ฐ..

Clone์œผ๋กœ ๋ณต์‚ฌํ•ด๋„ ํ˜„๊ฒŒ์ž„๋ณด๋“œ๋ฅผ ์ฐธ์กฐํ•ด์„œ ์ผ์–ด๋‚˜๋Š” ์ผ์ธ๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.


๋ณดํ†ต GameObject๋ฅผ ํ†ต์งธ๋กœ ๋ณต์‚ฌํ• ๋•Œ ์–ด๋–ป๊ฒŒ ๋ณต์‚ฌํ•ด์•ผ ํ•˜๋‚˜์š”?