์ฒด๋ ฅ ๋ฐฑ๋ถ„์œจ์— ๋”ฐ๋ผ์„œ ์ƒ‰์ƒ์„ ๋ณ€๊ฒฝํ•˜๊ฒŒ ํ•˜๋ ค๋Š”๊ฑฐ ๋งŒ๋“œ๋ ค๋‹ค ์ฒด๋ ฅ๋ฐ” ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐ€๋Šฅํ• ๊นŒ ์ƒ๊ฐํ•ด์„œ ํ•œ๋ฒˆ ์จ๋ดฃ๋Š”๋ฐ ์•ˆ๋จ. ใ… ใ… ย 

๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š๋‚˜? ๋‚ด ํ˜„์žฌ ์ฒด๋ ฅ์ด๋ž‘ ์ด๋ฏธ์ง€ ์ปฌ๋Ÿฌ๋ž‘ ๊ฐ™์€ float๊ฐ€ ์•„๋‹ˆ๋ผ์„œ ์•ˆ๋˜๋‚˜?


private Image Image;


ย  ย  [SerializeField]

ย  ย  private float lerpSpeed = 1;


ย  ย  private float currentFill;

ย  ย  public float MyMaxValue { get; set; }



ย  ย  public float MyCurrentValue

ย  ย  {

ย  ย  ย  ย  get

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  return currentValue;

ย  ย  ย  ย  }


ย  ย  ย  ย  set

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  if (value > MyMaxValue) currentValue = MyMaxValue;

ย  ย  ย  ย  ย  ย  else if (value

ย  ย  ย  ย  ย  ย  else currentValue = value;


ย  ย  ย  ย  ย  ย  currentFill = currentValue / MyMaxValue;

ย  ย  ย  ย  }

ย  ย  }


ย  ย  private float currentValue;


ย  ย  void Start()

ย  ย  {

ย  ย  ย  ย  Image = GetComponent();

ย  ย  }


ย  ย  // Update is called once per frame

ย  ย  void Update()

ย  ย  {

ย  ย  ย  ย  if (currentFill != Image.fillAmount)

ย  ย  ย  ย  {

ย  ย  ย  ย  ย  ย  Image.color = Color.Lerp(Color.white, Color.red, Time.deltaTime * lerpSpeed);

ย  ย  ย  ย  }

ย  ย  }


ย  ย  public void Initialize(float currentValue, float maxValue)

ย  ย  {

ย  ย  ย  ย  MyMaxValue = maxValue;

ย  ย  ย  ย  MyCurrentValue = currentValue;

ย  ย  }