ํ‰์†Œ์—๋Š” ์•„์ดํ…œ ๋งŒ๋“ค ๋•Œ ๋ถ€๋ชจํด๋ž˜์Šค์ธ ItemBase๋ฅผ ๋งŒ๋“ค๊ณ , Use()ํ•จ์ˆ˜๋ฅผ ๊ฐ์ž ์ •์˜ํ•˜๋Š” ์‹์œผ๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.


์ง€๊ธˆ์€ ๊ณต๋ถ€์‚ผ์•„์„œ ์•„์ดํ…œ์„ ์—‘์…€๋ฐ์ดํ„ฐ๋กœ ๋งŒ๋“œ๋Š”๊ฑธ ํ•ด๋ณด๊ณ  ์žˆ๋Š”๋ฐ, Use()ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ถ€๋ถ„์ด ๊ณจ์น˜์ž…๋‹ˆ๋‹ค.


ํ˜„์žฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ์Šคํƒฏ์„ ๋ฐ”๊พธ๊ฑฐ๋‚˜(hp๋„ ์Šคํƒฏ์— ํฌํ•จ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค), ์ƒํƒœ์ด์ƒ์„ ํšŒ๋ณตํ•˜๊ฑฐ๋‚˜ ํ•˜๋Š” ๋ถ€๋ถ„์„ enumํƒ€์ž…์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ ,


Use()ํ•จ์ˆ˜์—์„œ enumํƒ€์ž…์— ๋”ฐ๋ผ ์‹ค์‚ฌ์šฉ ํ•ด์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ๋˜๋ฉด ์ƒˆ๋กœ์šด ํƒ€์ž…์˜ ์•„์ดํ…œ์„ ๋งŒ๋“ค๋•Œ๋งˆ๋‹ค ํด๋ž˜์Šค๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋‹ˆ, ์ดˆ๋ณด์ธ ์ œ๊ฐ€ ๋ด๋„ ๊น”์‚ผํ•˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.



์—‘์…€๋กœ ์•„์ดํ…œ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ฆฌํ–ˆ์„ ๋•Œ Use()ํ•จ์ˆ˜๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ๋Š”๊ฒŒ ๋ณดํ†ต์ธ๊ฐ€์š”? ์„ ๋ฐฐ๋‹˜๋“ค์˜ ๊ฐ€๋ฅด์นจ ๋ถ€ํƒํ•ฉ๋‹ˆ๋‹ค.




public class Item

{

ย  ย  public enum ItemType

ย  ย  {

ย  ย  ย  ย  changeStats,

ย  ย  ย  ย  cureStatus

ย  ย  }


ย  ย  public string mName;

ย  ย  public ItemType mItemType;

ย  ย  public string mValue;


ย  ย  //์•„์ดํ…œ ์‚ฌ์šฉ

ย  ย  public void Use()

ย  ย  {

ย  ย  ย  ย  switch (mItemType)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  case ItemType.changeStats:

ย  ย  ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  //์ฒซ๋ฒˆ์งธ๊ฐ€ ๋ฐ”๊ฟ€ ์Šคํƒฏ, ๋‘๋ฒˆ์งธ๊ฐ€ ๊ฐ’

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  string[] changeData = mValue.Split('_');


ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  Player.Instance.AddStats(changeData[0], changeData[1]);

ย  ย  ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  ย  ย  break;

ย  ย  ย  ย  ย  ย  case ItemType.cureStatus:

ย  ย  ย  ย  ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  //์ฒซ๋ฒˆ์งธ๊ฐ€ ๋ฐ”๊ฟ€ ์ƒํƒœ์ด์ƒ, ๋‘๋ฒˆ์งธ๊ฐ€ ๊ฐ’

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  string[] changeData = mValue.Split('_');


ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  Player.Instance.ChangeStatus(changeData[0], changeData[1]);

ย  ย  ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  ย  ย  break;

ย  ย  ย  ย  }

ย  ย  }

}