1. ํ ์คํฌ๋ฆฝํธ์์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ๋ด๋นํ๊ณ ์๋ค.
์๋ฅผ ๋ค์ด์ ํ๋ ์ด์ด๋ฅผ ์ด๋์ํค๋ ์ฝ๋๋ฅผ ๋ง๋ค์๋ค๋ฉด, ํ๋ ์ด์ด๋ฅผ ์ด๋์ํค๋ ๋ก์ง์์ ์ถฉ๋์ฒ๋ฆฌ, ์ฒด๋ ฅ ๊ด๋ฆฌ, ๋ฑ ์ฌ๋ฌ ์ผ์ ๋ด๋นํ๊ณ ์๋ค. ๊ทธ๋์ ์ฌ๋ฌ ์คํฌ๋ฆฝํธ, ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ก ๋๋ ์ ํ๋ ๊ฑธ ์ถ์ฒํ๋ค.ย
์๋ฅผ ๋ค๋ฉด, PlayerMovement, PlayerHealth, PlayerAnimation, PlayerInteraction ์ด๋ ๊ฒ ๋๋๋ ๊ฑธ ์ถ์ฒํ๋ค. PlayerMove, PlayerJump, PlayerGroundCheck ์ด๋ฐ ์์ผ๋ก ๋๋ฌด ์์ธํ ๋๋์ง ์์๋ ๋๋ค.ย
2. public static
๋ค๋ฅธ ์คํฌ๋ฆฝํธ์ ๋ณ์๋ฅผ ๊ฐ์ ธ์ค๋ ค๊ณ public static์ ์ฌ์ฉํ๋ ๊ฑด ๋งค์ฐ ์ ์ข๋ค. GetComponent()๋ฅผ ์ฌ์ฉํด์, ์ปดํฌ๋ํธ๋ฅผ ์บ์ฑ(๋ณ์ ์ ์ฅ)๋ฅผ ์ ์ฅํด์ component.MyField ์ด๋ฐ ์์ผ๋ก ์ ๊ทผํ๋ ๊ฑธ ์ถ์ฒํ๋ค. ๊ทธ๋ฆฌ๊ณ ํ ์ปดํฌ๋ํธ์์ ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ๋ณ์๋ฅผ ์์ฃผ ์์ ํ๋ ๊ฒ๋ ์ข์ง ์๋ค. ํจ์๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, ์์ฑ์ ์ฌ์ฉํ๊ฒ ํด์ ์์ ํ ์ ์๊ฒ ํ๋ ๋ฐฉ๋ฒ์ด ์ข๋ค.
3. switch
switch(WeaponType)
{
ย ย case Weapon.Pistol:
ย ย ย ย name = "glock17";
ย ย ย ย fireRate = 0.2f;
ย ย ย ย damage = 10f;
ย ย ย ย break;
ย ย case Weapon.Rifle:
ย ย ย ย name = "ak47";
ย ย ย ย fireRate = 0.1f;
ย ย ย ย damage = 20f;
ย ย ย ย break;
ย ย case Weapon.Sniper:
ย ย ย ย name = "awp";
ย ย ย ย fireRate = 1.5f;
ย ย ย ย damage = 70f;
ย ย ย ย break;
ย ย ...
}
์ด๋ฌ๋ฉด ์๋ก์ด ๋ฌด๊ธฐ๋ฅผ ์ถ๊ฐํ๊ฒ ๋ ๋๋ง๋ค, ์ผ์ด์ค๋ ๋์ด๋๋ค. ์ฆ ์์ฑํด์ผ ํ๋ ์ฝ๋๋ ๋์ด๋๊ฒ ๋๋ค. ๋ฌด๊ธฐ ์์คํ ์ ์ ํ๋๊ฐ ์ถ๊ฐ ๋๋ฉด ์์ ํ๊ธฐ ๋๋ฌด ๋นก์ธ๋ค. ๊ฐ์ฒด(ํด๋์ค)๋ฅผ ๋ง๋ค์ด์ ๊ด๋ฆฌํ๋ ๊ฒ ๋ ํธํ๊ณ ๊น๋ํ๋ค. ์๋ฅผ ๋ค๋ฉด,
class Gunย
{
ย ย ย public string name;
ย ย ย public float damage;
ย ย ย public float fireRate;
ย ย ย //์์ฑ์
}ย
์ด๋ ๊ฒ ๋ง๋ค๊ณ
public Gun pistol = new Gun("glock17", 10f, 0.2f);
์ด๋ ๊ฒ ๋ง๋๋ ๊ฒ ํจ์ฌ ๋ซ๋ค.
๋ ์์ดํ ์ผ๋ก ์์๋ฅผ ๋ค๋ฉด,ย
public class ItemStack
{
ย ย public Item Item;
ย ย public uint Count;
ย ย public ItemType ItemType;
ย ย ย
ย ย public IInteractive Interaction;
ย ย ย
ย ย public ItemStack(Item item, uint count, ItemType type)
ย ย {
ย ย ย ย Item = item;
ย ย ย ย Count = count;
ย ย ย ย ItemType = type;
ย ย ย ย ย
ย ย ย ย switch(type)
ย ย ย ย {
ย ย ย ย ย ย case ItemType.Food:
ย ย ย ย ย ย Interaction = new Food();
ย ย ย ย ย ย break;
ย ย ย ย ย ย ย
ย ย ย ย ย ย case ItemType.Weapon:
ย ย ย ย ย ย Interaction = new Weapon();
ย ย ย ย ย ย break;
ย ย ย ย ย ย ย
ย ย ย ย ย ย ย
ย ย ย ย ย ย case ItemType.Item:
ย ย ย ย ย ย Interaction = new Item();
ย ย ย ย ย ย break;
ย ย ย ย }
ย ย }
}
์ด๋ ๊ฒ ํ์ง ๋ง๊ณ
public class ItemStacm
{
ย ย public abstract void Use();
}
public class Wepaon : Item
{
ย ย public int Damage
ย ย ย
ย ย public override void Use()
ย ย {
ย ย ย ย //๊ณต๊ฒฉ
ย ย }
} ์ด๋ ๊ฒ ์์์ ์ด์ฉํด์ ํ๋ ๊ฑธ ์ถ์ฒํ๋ค.
์ฝ๋๊ฐ ๋ช ์ฒ ์ค ์ ๋์ด ๊ฐ๊ธฐ๋ฅผ.
์ ๋ ํ์คํฌ๋ฆฝํธ์์ ๋ช์ฒ์ค ๋์ด๊ฐ๋๋ฐ ์ ์์ข์์ง ์์์์๊น์ - dc App
30์ ๋ฃฐ์ด๋ ๋ฒ์น์ด ์์ด์. ์ ๋ช ํ ๋ฒ์น์.
ํ ํจ์๊ฐ 30์ค ์ดํ, ํ ํด๋์ค๋ 30๊ฐ ํจ์ ์ดํ.
๊ทธ๋ฌ๋ฏ๋ก ํ ํ์ผ&ํด๋์ค๋ 900์ค์ด ๋์ง ์์์ผ ํจ.
https://dzone.com/articles/rule-30-%E2%80%93-when-method-class-or
- dc App
์ข ๋ ์ค๋ช ํด๋ณด๋ฉด, ํฌ๊ธฐ ์ฝ๋์ ๋ฐ๋ผ ์ด๋์ ๋๋ฉด ์๋ธ์์คํ ์ผ๋ก ๋์ง์ ๋ํ ๊ฒ๋ ํ์ ํ ์ ์์์. 30๊ฐ์ ์ฝ๋๋ผ์ธ, 30๊ฐ์ ํด๋์ค, 30๊ฐ์ ํจํค์ง์ด๋ผ๋ฉด ์์คํ ์ ์ด ์ฝ๋๋ผ์ธ์ 81๋ง์ค์ด ๋ฉ๋๋ค. ์ ์ง๋ณด์์ฑ์ด ์ ์ง์ฌ์ง ์ด๋ค ์ฝ๋๋ 81๋ง์ค์ด ๋๋ฉด ์์คํ ๋ถ๋ฆฌ๊ฐ ํ์ํ๋ค๋ ๊ทผ๊ฑฐ ํ๋ณด๋ ๊ฐ๋ฅํด์. ๋ฏธ์์ ์ผ๋ก ๋ณด๋ฉด ํ๋์ ํจ์๊ฐ 30๋ผ์ธ์ ์ด๊ณผํ๋ฉด ๋ฆฌํฉํ ๋งํด์ผํ๊ณ , ํ๋์ ํ์ผ์ 1์ฒ ๋ผ์ธ์ด ๋์ด๊ฐ๋ฉด ๊ณ ๋ คํด๋ด์งํด์. ์ด์ ๋ ์ ์ง๋ณด์๋๋ฌธ์ ๋๋ค. - dc App
์ฝ๋๋ ์๋ํ๋ฉด ๊ทธ๋ง์ด๊ธด ํ๋ฐ ํ ์คํฌ๋ฆฝํธ์ ์ฝ๋๊ฐ ๋๋ฌด ๋ง์์ง๋ฉด ์์ ํด์ผ ํ ๋ถ๋ถ์ด ์๊ฒผ์ ๋ ์ฐพ๊ธฐ ๋ฒ๊ฑฐ๋ก์์ง ์คํฌ๋ฆฝํธ ๋ด ์ฝ๋ ๊ฒฐํฉ๋๊ฐ ์น์์ ๊ฐ๋ฅ์ฑ๋ ๋์์ง๊ณ , ๊ฒฐํฉ๋๊ฐ ๋์ผ๋ฉด ์์ ๋งํ๋ 'ํ ๊ตฐ๋ฐ ๊ณ ์ณค๋๋ฐ ์ด ๊ตฐ๋ฐ์์ ๋ฒ๊ทธ๊ฐ ํฐ์ง๋' ์ฌํ๊ฐ ์์ฃผ ์ผ์ด๋จ
๊ทธ๋์ ๋ฃฐ์ด๊ณ ๋ฒ์น์ด๊ณ ๋ค ์งํค๋ ํฅ๊ฒ ํ๋๋ผ๋ ๊ฐ์ ธ์๋ฐ๋ผ. ์ข๋ง๊ฒ์์ ์ฐพ๊ธฐ ์ฌ์ธ๋ฏ
๊ทธ๋ ๊ฒ ๋งํ๋ฉด ๋ํ๊ฐ ์๋จ์ - dc App
ํ๊ฐค์์ ์ค์ จ๊ตฐ์~
์๋จ๊ณผ ๋ชฉ์ ์ ํผ๋ํ๋ฉด ์ค๋ฒ์์ง๋์ด๋ง์ ๋น ์ง๊ธฐ ์ฌ์ด๊ฒ์ด์ผ
์๋จ์๋ ๊ทธ๋ฐ๊ณ ๋ชจ๋ฅธ๋ค. ์ฝ๋ฉ์ ํ๋ฆ๋๋ก
๋ด ํ๋ ์ด์ด ์คํฌ๋ฆฝํธ๋ 1500์ค์ด ๋์ด๊ฐ๋๋ฐ ์ด์ฉ๋...
์์์ด ๋ญ์ผ?
๋ฐฐ๊ณ ํ๋ค