์๋ ์ํ ์ด๊ฑฐ ์์ด๋ฌ๋๊ฑฐ
๋๋ฒ๊ทธ ๋ก๊ทธ๋ก distances ๋ณด๋ฉด ์์์ ๊น์ง ์๋์ค๋๋ฐ
์ ๊ฑด ์ ์๋จ??
์๋ ์ํ ์ด๊ฑฐ ์์ด๋ฌ๋๊ฑฐ
๋๋ฒ๊ทธ ๋ก๊ทธ๋ก distances ๋ณด๋ฉด ์์์ ๊น์ง ์๋์ค๋๋ฐ
์ ๊ฑด ์ ์๋จ??
์ธ float๋ฐฐ์ด๋ก ๋ฐ์??
์ผ๋จ ์ง๊ธ ์๊ฐํ๊ณ ์๋๊ฒ
๋ชฌ์คํฐ๋ค์ด๋ ํ๋ ์ด๋ ๊ฑฐ๋ฆฌ ๋น๊ตํ๋ ค๊ณ ๋ชฌ์คํฐ์ ํ๋ ์ด์ด์์ ๊ฑฐ๋ฆฌ๋ค(distances)์ ๋น๊ตํด์ ๊ฑฐ๋ฆฌ์งง์ ์์ผ๋ก ์ ๋ ฌํ๋ค์์ ์ ์ผ ์งง์๊ฑฐ๋ฆฌ์ ์๋ ๋ชฌ์คํฐ๋ฅผ ์ฐพ์ผ๋ ค ํ๋๊ฑฐ์
๊ทธ๋ผ float๋ฐฐ์ด์ for๋ฌธ ๋ฐ์์ ์ ์ธํ๊ณ for๋ฌธ ์์์๋ ๋ฐฐ์ด์ ๊ฐ ์์์ ์ ๊ทผํด์ผ์กฐ
์ ๋งค๊ฐ๋ณ์๋ ๋ชจ๋ฅด๋๋....
"์์์ ์ผ๋ก float ํ์์ float[] ํ์์ผ๋ก ๋ณํํ ์ ์์ต๋๋ค" ์ด๊ฒ ์๋๋ ์ด์ ์ผ ๋ ์ด์ ๋ญ ์ด๋ป๊ฒ ์ถ๊ฐํ ์ค๋ช ๋ ์๋ ๋ช ๋ฃํ ์ค๋ช ์ด์ผ
๋ ์ผ๋จ ํ๋ก์ ํธ ์ค๋จํ๊ณ ์๋ฌด oop ์ธ์ด ๊ฐ๋ฐ์ฑ ์ด๋ ์ฌ์ ์ญ๋ณด๊ณ ์ ์ด๋์ ใ ใ ใ ใ
oop์ธ์ด ๊ฐ๋ญ์?
๋๋ ค์ณ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ
์.. ์ผ๋จ์ ๋ฐฐ์ด์๋ํด์ ๊ฒ์ํด๋ณด๋๊ฑฐ ์ถ์ฒ๋๋ฆฌ๊ณ ๋๊ฐ for(int i=0;i<colls.Length;i++) { distances[i] = ~~~~ } ์ด๋ฐ์์ผ๋ก ํ์๋ฉด๋จ
๋ช์๊ฐ๋์ ๊ฒ์ํ๋๋ฐ ํด๊ฒฐ๋ชปํด์ ์ฌ๊ธฐ์ ๋ฌผ์ด๋ณด๋๊ฑฐ์ ใ ใ
๋๋์ฒด ์ด๋ป๊ฒ ๊ฒ์ํ์ ๊ฒ๋๊น.... ๊ทธ๋ฅ ๋ฐฐ์ด์ ๊ฒ์ํ์ ์ ์๋ฌด๊ฑฐ๋ ๋ค์ด๊ฐ์ ๋ณด๋ฉด ํด๊ฒฐ ๋ ๊ฑฐ ๊ฐ์ ๋ฌธ์ ๊ฐ์๋ฐ์ - dc App
์ ํ๊ณ ์์ผ๋ ์ฃผ๋ ๋ค์ง ๋ง~ ๋ค ์ด๋ณด์ผ๋๊ฐ ์๋๊ฑฐ์ง
ใณใณใณใฑใณ
์ ์ฝ๋ ์ํ๋ก distances ๋ก๊ทธ ๋๋ ค๋ ์์์ ์ด ๋์ฌ๋ฆฌ๋ ์์. ๊ทธ๋ผ ์ฝ๋๊ฐ ์ ๋๋ก ์ปดํ์ผ ๋์์ ๊ฐ์ฅ ์ต๊ทผ ์์ ์์ Log(distances) ํ์ ๋ ๊ฑฐ๋ฆฌ๊ฐ ์์์ ๊น์ง ๋์๋๊ฑธ ๊ธฐ์ตํ๊ณ ์๋ค๋ ๋ง. ๊ทธ ๋ง์ ๊ธ์ด์ด๋ ์ง์ญ๋ณ์ ๋ฉค๋ฒ๋ณ์์ ์ฐจ์ด๋ ๋ชจ๋ฅด๋๊ฒ ์๋๊ฐ? ํ๋๊ฒ์ด ํน๋ฆฌ์ ๊ฐ์ฌ.
๋๊ฐ ์ ์ธํ distances๋ ๋ฐฐ์ด์. ๋ฐฐ์ด์ด๋ฉด ๋ด๊ฐ ํด๋น ๋ณ์์ ๊ฐ์ ์ค ๋ distances์ ๋ช๋ฒ์งธ์ ํด๋นํ๋ ๋ณ์์ธ์ง๋ฅผ ์๋ ค์ค์ผํจ. ์ฆ distances[0] = Vector2.Distane..... ์ด๋ฐ์์ผ๋ก ์ ์ด์ค์ผ ํ๋จ ๋ป์. ๊ทผ๋ฐ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฑฐ๋ฆฌ์ ์๋ ๋ชฌ์คํฐ๋ฅผ ์ฐพ์ผ๋ ค๊ณ ํ๋ค๋ฉด ๊ทธ๋ฅ foreach(GameObject Obj in ๋ชฌ์คํฐ ๊ฒ์์ค๋ธ์ ํธ ๋ฐฐ์ด(GameObject.FIndGameObjectsWIthTag("Mob")์ด๋ฐ์์ผ๋ก ํ๊ทธ๋ก ์ฐพ๋๊ฒ ์ ค ๋์))๋๋ ค์ distances๋ ๋ฐฐ์ด๋ง๊ณ ๊ทธ๋ฅ float์ผ๋ก ์ด๊ธฐ๊ฐ์ float.maxVaule๋ก ํด์ฃผ์ . ๊ทธ๋ค์์ foreach ์์์ ๋น๊ต๋ฌธ ๋๋ ค์ distances๋ณด๋ค Distance ๋น๊ตํ๊ฒ ๋ ์งง์ผ๋ฉด ์๋ฅผ ํ๊ฒ ์ค๋ธ์ ํธ๋ก ์ง์ ํด.
์ ์ ๋๋ก ์ดํด๋ ์๋์ง๋ง ํด๋ณด๊ฒ ์
์ด๊ฑธ ๋ช์๊ฐ ์ฝ์งํ๋ค๋ฉด ๋๊ฐ ์ํ๋ ๋ญ๊ฐ๋ฅผ ์์ฑ์ํค๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ๋ฌธ์ ๊ฐ ์๊ธธ ๋ ๋ง๋ค ๋ช์๊ฐ์ฉ ์ฝ์งํ๋๊ฒ ์๋๋ผ ๋ญ๋ผ๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ณธ ์ง์์ ์ป์ ๋ค ํ๋ก์ ํธ๋ฅผ ์งํํ๋๊ฑฐ์. ๊ทธ๊ฒ ๊ฒฐ๊ตญ ๊ณจ์ ๋๋ฌํ๋ ์๊ฐ์ด ๋จ์ถ๋ ๊ฑฐ์
foreach (GameObject SearchTarget in TargetMobs){if (SearchTarget != null && Vector2.Distanc(transform.position,SearchTarget.transform.position) < AutoTargetDis){AutoTargetDis = Vector2.Distance(transform.position,SearchTarget.transform.position);AutoTarget = SearchTarget;}} ๋์ถฉ ์ง๋ณธ ์ฝ๋์. ๋ณด๊ณ ์ดํดํ๋ฉด ๊ทธ๋ฅ ๊ณต๋ถํด๋ ๊ด์ฐฎ์ง๋ง ๋ชปํ๊ฒ ์ผ๋ฉด C์ธ์ด ๊ธฐ์ด ๋ณด๊ณ ์ค๋๊ฒ ๋์.
์ถ๊ฐ๋ก ๊ตฌ๊ธ๋ง์ ํ ๋๋ ๋๊ฐ ์์ฑํ ์ฝ๋๊ฐ ์๋ '์ ๋ํฐ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์ฐพ๊ธฐ' ์ฒ๋ผ ๋๊ฐ ๋ง๋ค๊ณ ์ถ์ ๊ธฐ๋ฅ์ ๊ฒ์ํ๋ฉด 99% ๋์ด. ์๋์ค๋ฉด ์์ด๋ก ๊ฒ์ํ๋ฉด ๋ฌด์กฐ๊ฑด ๋์ด.
ใ ใ ใณใณ
์ด๋ ๋ถ์ผ๋ ์ง ์๊ธฐ๋ค์ด ๋ชธ๋ด๊ณ ์๋ ๋ถ์ผ ๋๊ฒ ํ๋ค๊ฒ ํฌ์ฅํจ. ์ธ์ด๊ฐ๋ฐ์ฑ ๋ณด๊ณ ์ค๋ผ๋ ๊ฑด ๊ฑ ์ํ๋ชปํ๋ฉด ์ ์๋ณด๋ผ๋ ์๋ฆฌ๊ณ ์ฝ๊ฒ ์ค๋ช ํด์ฃผ๋ฉด ๋๋๋ฐ ๊ทธ๊ฑธ ์ ๊ผฌ์์ ์ค๋ช ํ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค.๊ทธ๋ฅ (์ด๊ฒ ๋ค๊ฐ ์ํ ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ง) ๊ณ๋ ๋ฃ์ผ๋ผ๋๋ฐ ๋ค๊ฐ ๊ณ๋ํ ๋ฃ์ผ๋ ค ํ๋ ๊ฑฐ์. ๊ทธ๋์ ๊ณ๋ํ์ ์ด๋ป๊ฒ ๊ณ๋์ผ๋ก ๋ฐ๊ฟ์ผ ํ๋์ง ๋ชจ๋ฅด๋๊น ์ ๋๋ก๋ ๊ณ๋ ๋ฃ์ด๋ฌ๋๊ฑฐ์.
์ ๋ํฐ๋ฅผ ํ ๊ฑฐ๋ฉด C# ๋ฐฐ์ฐ๊ณ ํ๋๊ฒ ๋์๊ฑฐ์
๋ชจ๋ฅด๋๊ฑฐ ๋์ฌ๋๋ง๋ค ์ง๋ฌธ ๊ธฐ๋ค๋ฆฌ๋ฉด ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ๋ ๋นํจ์จ์ ์ด๊ณ ์ ๊ทธ๋ ๊ฒ ๋๋์ง ์ดํดํ๊ธฐ๋ ์ฑ ๋ณด๋ ๊ฒ ๋์