1. ๊ทธ๋ํฝ ์์ํ ๋งค๋์
์ฐ์ ๋ฉค๋ฒ๋ฅผ ๋ด ์๋ค.
root๋ ์ฌ์ ๋ฃจํธ ๊ฒ์์ค๋ธ์ ํธ์ ๋๋ค. ํ์ด์ด๋ผํค(๊ณ์ธต)์ฐฝ์ ๋๋ฝํ์ง ์๊ธฐ์ํด์
์ฌ์ ์ต์์ ์ค๋ธ์ ํธ์ ๋ฐ์๋ฃ๊ธฐ๋ก ํ์ฃ ? ๋ฉค๋ฒ๋ก ๋ฃ์์ต๋๋ค.
string[] forDraw = new string[]{ "๋ฐ๋ฅ", "๋ฒฝํน์๊ฑฐ๋ฏธ์ค",ย "์์ดํ ", "๋ชฌ์คํฐ" };
for( string --- : forDraw ){
---Pool์ ---๊ฐ ๊ทธ๋ ค์ง๋ ๊ฒ์์ค๋ธ์ ํธ๋ค์ ๋ง์ ๊ทธ๋ ค์ง ์์ ์ ์๋ก ๋ง๋ค๋ฉด ์ค๋๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์
์์ํ ๋งค๋์ ๋ฅผ ์ด๊ธฐํ ํ๋ ์์ ์ ๋ฏธ๋ฆฌ ---ํ์ ์ ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ๋ง๋ค๊ณ ๋นํ์ฑํ ํด๋์๋ค๊ฐ.
๊ทธ๋ ค์ง๋๋ง ๊บผ๋ด์จ์ผํฉ๋๋ค ( ๋ฏธ๋ฆฌ๋ง๋ค์ด๋์ ์ค๋ธ์ ํธ๋ค์ ๊ด๋ฆฌํ๋๊ฑธ ๊ฒ์์ค๋ธ์ ํธ ํ์ด๋ผ๊ณ ํฉ๋๋ค )
์ด ์ค๋ธ์ ํธํ์์ ์ฌ์ฉ๋๋ ๋นํ์ฑํ๋ ์ค๋ธ์ ํธ๋ค์ ๊ณ์ธต์ฐฝ์ ๋๋ฝํ์ง ์๊ฒ ๋ถ๋ชจ ๊ฒ์์ค๋ธ์ ํธ๋ฅผ ์ง์ ํด์ค์ผํ๋๋ฐ
์ด ๊ฒ์์ค๋ธ์ ํธ๊ฐ ---Pool ( ex] floorPool ) ์ ๋๋ค
Active---Pool์ ์ด ๊ฒ์์ค๋ธ์ ํธ ํ์์ ๊บผ๋ด์ ---๋ฅผ ๊ทธ๋ฆฌ๋๋ฐ ์ฌ์ฉํย ( ex) "๋ฐ๋ฅ"์ ๊ทธ๋ฆฌ๋๋ฐ ์ฌ์ฉํ )
ํ์ฑํ๋ ๊ฒ์์ค๋ธ์ ํธ๋ค์ ๋ถ๋ชจ ๊ฒ์์ค๋ธ์ ํธ์ ๋๋ค.
}
JustGameObjectPool์ ์ฌ์ค ์ค๋ธ์ ํธํ์ ๋ค์ํ ํ์ string, Unit, GameObject๋ฑ, ์ ์ฌ์ฉ๋ ์ ์๋๋ฐ
๋ฑ ์ ๋ํฐ์์ง์ GameObject์ ์ฌ์ฉํ๋ ค๊ณ ๋ง๋ ํด๋์ค์ ๋๋ค.
์์ ์ ์ ๋๋์ผ๋ก ์ด.. ๋จ์ ๋ธ๋ก๊ทธ ์์ค ์์ ํ ๊ฐ์ข
๋ฐ๋ฅ ๊ทธ๋ฆฌ๋๋ฐ ๋ ์ด ๊ฑธ๋ ค? 1,2๊ฐ
๋ฅผ ๋ณด๊ณ ์ค์๋ฉด ๊ฐ๋จํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ๋ ์ด์ด ์ ๋์ 1๊ฐ์ด๋ฏ๋ก ํ ์์ด
playerObj๋ผ๋ ๋์ ๋ง๋ค์์ต๋๋ค.
์ด๋ฆ์ง์ ๋ถ๋ชจ์ง์ ํ๋ ๋ถ๋ถ..
์ค์ JustGameObjectPool ์์ฑ์ ๋ถ๋ถ์ ๋ณด๋ฉด
์ ๊ฒ์ ์ค๋ธ์ ํธ๋ฅผ ๋ง๋ค์ด์ ์คํ๋ผ์ดํธ ๋ ๋๋ฌ๋ฅผ ๋ฃ์ด์ค๋๋ค. ( ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๋ ๋์ด์ )
๋งต์ด 100, 100์ฌ์ด์ฆ๋ณด๋ค ์ข ์์ ๊ฒ์ ๋ฃ์๊ณ ๊ฑฐ์ ๋ฐ๋ฅ์ด ๋ฐ์ด ์์ฐจ๋ฏ๋ก ๋๋ํ
๋ฐ๋ฅ 5000๊ฐ, ๋ฒฝ 5000๊ฐ ๋ฃ์์ด์
์์ดํ ํ๊ณ ๋ชฌ์คํฐ๋ ์ ์ผ๋ 200๊ฐ์ฉ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ก๋๋ค.
์์ ์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด SpriteSheet๋ผ๋ ํด๋์ค๊ฐ ์๋๋ฐ ์ด๊ฑด ์๋์ฌ๊ฒ๋๋ค.
๋์ ๋๋ฆฌ๋ฅผ ์ด์ฉํด์ ์คํ๋ผ์ดํธ ๋ฆฌ์์ค์ ์ด๋ฆ์ ๋งคํํด๋๋ ๋ ์์ ๋๋ค.
๋ง์ฝ ๋ก๋ฉ์๊ฐ์ ์๊ฐํ๋ค๋ฉด ๊ฒ์ ์์ํ ๋ ๋ฏธ๋ฆฌ ํธ์ถํ๋ฉด ์ข์ ๋ ์์ด์ฃ
์ ์ฐ๋๊ฐ ํ๋ฉด.. Resource.LoadAll<Sprite>์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ๋ฐฐ์ดํํ๋ก๋ง ์ถ๋ ฅ๋์ง ์ด๋ฆ์ผ๋ก ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๊ทธ๋์ ์ด๋ฆ์ผ๋ก ์ ๊ทผํ๊ธฐ ํธํ๊ฒ ํ๋ ค๊ณ ๋ง๋ค์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํ๋ผ์ดํธ๋ 1๋ฒ ๋ก๋ฉํด์ ์ฌ์ฌ์ฉ ํ๋ฉด ๋์ง ๋งค๋ฒ Resource.Load ๊ฐ์ ํจ์๋ฅผ ์จ์ ๋์คํฌ์ก์ธ์ค(์๋ง๋..)
๋ฅผย ํ๊ฒ ํ ํ์๊ฐ ์์ผ๋๊น์.
์ฌํํผ ์ฌ๊ธฐ๊น์ง ํ๋ฉด ๊ทธ๋ํฝ์์ํ๋งค๋์ ์ ๋ฉค๋ฒ/์์ฑ๋ถ๋ถ ์ค๋ช ์ ๋๋ฌ๊ตฌ์
1-1. drawFloor ํจ์
Map์ width, height๋ฅผ ์ถ๋ ฅํ๋ ํจ์๋ฅผ getWidth, getHeight๋ก ๋ง๋ค๊ณ
int 2์ฐจ์ ๋ฐฐ์ด floor๋ฅผ ๋ฆฌํดํ๋ getFloor()๋ ย ๋ง๋ญ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฃจํ๋ฅผ ๋๋ฉด์ floor[x,y]๊ฐ 1์ด๋ฉด
ย => ๋ฐ๋ฅ์ด ์์ผ๋ฉด
ย ๋ฒฝ๊ทธ๋ฆผ์ด ์คํ๋ผ์ดํธ ๋ ํฐ๋ฌ์ ์คํ๋ผ์ดํธ๋ก ์ง์ ๋๋ ์๋ค์ธ..
ย floors(๊ฒ์์ค๋ธ์ ํธํ)์์ ํ๋ ๊ฐ์ ธ์์ x,y์์น์ ๋๊ณ ( z๊ฐ์ด 0์ธ ์ด์ ๋ ๊ฐ์ฅ ์๋ซ์ชฝ์ ๊ทธ๋ ค์ ธ์ผ ๋๊ธฐ ๋๋ฌธ )
ย SetActive๋ก ํ์ฑํํ๋ค. ( ๊ทธ๋์ผ ๊ทธ๋ฆผ์ด ๋ณด์ธ๋ค )
drawWallAndWeb์ ๊ฐ์ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ์ค๋ช
์๋ต ( z๊ฐ -1๋ก ๋ฐ๋ฅ๋ณด๋ค ์์ ๊ทธ๋ ค์ง๊ฒ ํจ )
drawItem์ ๊ฒฝ์ฐ ๋น์ทํ ๋ฐฉ์์ด์ง๋ง,
case๋ฌธ์ผ๋ก ์์ดํ ๊ทธ๋ฆผ์ ๋ค๋ฅด๊ฒ ํฉ๋๋ค. ( z๊ฐ -2๋ก ๋ฐ๋ฅ/๋ฒฝํน์๊ฑฐ๋ฏธ์ค ๋ณด๋ค ์์ ๊ทธ๋ ค์ง๊ฒํจย )
( TODO : ๋ง์ฝ ๋ฒฝ์ ๋ถ์๋ฉด ์์ดํ ์ด ๋์ค๊ฒํ๋ ค๋ฉด... -0.5๋ก ํด์ผ๋ ๊ฑฐ ๊ฐ๊ธด ํ๋ฐ...
ย ๊ฑฐ๋ฏธ์ค์ ๊ฑท์ด๋ด๋ฉด ( ํฝ์ ๋์ ์ ํ์ฒ ๊ฑด๋๋ฆฌ๋ฉด ๋์ค๋ ์ด์ฌ ๋์ค๋ฏ์ด ) ํ ์ด ๋์ค๊ฒ ํ๋ ค๊ณ ํด๋ ๊ทธ๋ ๊ณ ..
ย ์ด๊ฑด ๋์ค์ ์๊ฐํด ๋ด ์๋ค ! )
drawMonster์ ๊ฒฝ์ฐ
drawItem ์ฒ๋ผ case๋ฌธ์ ์ฐ์ง๋ง
๋ชฌ์คํฐ๋ณ ์ด๋ฆ์ ๊ฐ์ ๋ฐ๋ผ ์ฌ์ง์ ํด์ค์ผ ํ๋๋ฐ
case๋ฌธ์์ ์ฌ์ง์ ํด์ฃผ๋ ๊ฒ๋ณด๋ค๋ ๋ชฌ์คํฐ ์บ๋ฆญํฐ๋ง๋ค ์ด๋ฆ์ ๊ฐ์ง๊ณ ์์ด์
๊ทธ ๊ฐ์ ๋ฃ์ด์ฃผ๋๊ฒ ์ข์๊ฒ ๊ฐ์์ด์.
๊ทผ๋ฐ ๊ทธ ๊ฐ์ด ๋ง์ฝ์ ์ดํ์ ๋ค๊ตญ์ด ์ง์์ ํ๋ค๋ฉด
ํค๋ก ์ฐ์ผ๊ฒ ๊ฐ์๋ฐ, ๋ฌธ์์ด๋ก ํด๋์ผ๋ฉด ์ถํ ์ด๊ฒ ํค๊ฐ์ผ๋ก ์ฐ์ด๋ ๊ฑด์ง ์๋๋ฉด
์์ด ์ถ๋ ฅ์ฉ ๋ฌธ์์ด์ธ์ง ํท๊ฐ๋ฆด๊ฒ ๊ฐ์์
( key-value์.ย
ย ์-ํ ๋ฒ์ญํ์ผย { key: "Rat", value: "์ฅ" } )
MonsterName์ด๋ผ๋ enum์ ๋ง๋ญ๋๋ค.
enum์ ToStringํจ์๋ก ์ถ๋ ฅํ ๊ฒฝ์ฐ ๋์ผํ ์ด๋ฆ์ ๋ฌธ์์ด๋ก ์ถ๋ ฅ๋ฉ๋๋ค "ERROR", "Rat"์ด๋ฐ์์ผ๋ก์
์ธํธํ์ผ๋ก ์บ์คํ ํ๋ฉด 0, 1,2,3,4,5,6 ์ด๋ ๊ฒ ์ถ๋ ฅ๋๊ตฌ์.
Characterํด๋์ค์ name์ด๋ผ๋ ๋ฉค๋ฒ๋ฅผ ์ถ๊ฐํ๊ณ
getName()ํจ์๋ ๋ฌธ์์ด ํํ๋ก ๋ชฌ์คํฐ ์ด๋ฆ์ถ๋ ฅ
ToStringํจ์๋ MonsterName enum์์ฒด๋ฅผ ๋ฆฌํดํ๊ฒ ํ์ต๋๋ค.
์์ฑ์๋ MonsterName์ ๋ฃ์ด์ผ ๋๊ฒ ์์ ์ ํ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด
์ด์ ์ DogCharacter๊ฐ์ด ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋์ ์์ํด๋์ค๋ค์ด ์๋ฌ๋ฅผ ์ถ๋ ฅํ๋๋ฐ
--------------------------------------------------------
public class DogCharacter : Character {
public DogCharacter() : base(new Dog(), new Dog(), MonsterName.Dog){
}
}
์ ๊ฐ์ด ์์ ํ์ต๋๋ค. ๋๋จธ์ง 5์ข ๋ฅ ๋ค๋ฅธ ์บ๋ฆญํฐ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ ํ์ต๋๋ค. ( ๊ทธ๋ฆผ์ด 10๊ฐ๋ฐ์ ์๋์.. )
์ฌ์ค sprite.getSprite๋ mons[i].ToString()์ ์ด์ฉํ์ผ๋ฉด case๋ฌธ ์ด์ฉํ์ง ์๊ณ ํ์ํ ๋ฐ..
ํด๋์ค๋ช ๊ณผ ํด๋น ์บ๋ฆญํฐ๋ช ์ Dog, DogCharacter๋ก ํด๋๊ณ ์คํ๋ผ์ดํธ์ํธ์์๋ Hound๋ผ๊ณ ์ด๋ฆ์ ์ ๋๋ฐ๋์...
์ฝ์ง์ ํ๊ฒ ๋์์ต๋๋ค.
์ฌ๊ธฐ๊น์งํ๋ฉด ๊ทธ๋ฆผ์ด ์ ๋น๋๋ค.
์ผ์ด.. ์์ฒญ ๊ธธ๋ค์ผ