BatttleUIView.cs
<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹¡£
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class BatttleUIView : MonoBehaviour
{
[SerializeField] private Text txtUserHp;
[SerializeField] private Text txtOpponentHp;
[SerializeField] private Slider playerSlider; // Slider ¤â»È¤¦¾ì¹ç
[SerializeField] private Slider opponentSlider;
[SerializeField] private float duration = 0.5f; // ¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤Î»ý³»þ´Ö
[SerializeField] private Ease animationEase = Ease.InQuart; // ¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥¤¡¼¥¸¥ó¥°
/// <summary>
/// ¥×¥ì¥¤¥ä¡¼¤ÎHpÀßÄê
/// </summary>
/// <param name="maxHp"></param>
public void SetupPlayerHp(int maxHp) {
playerSlider.value = maxHp;
UpdateUserUp(maxHp, maxHp); // Âè1°ú¿ô¤ò 0 ¤Ë¤¹¤ë¤È¡¢0 ¢ª MaxHp ¤Ø¤Î¥¢¥Ë¥á¤¬½ÐÍè¤ë
}
/// <summary>
/// ÂÐÀïÁê¼ê¤ÎHpÀßÄê
/// </summary>
/// <param name="maxHp"></param>
public void SetupOpponentHp(int maxHp) {
opponentSlider.value = maxHp;
UpdateOpponentUp(maxHp, maxHp); // Âè1°ú¿ô¤ò 0 ¤Ë¤¹¤ë¤È¡¢0 ¢ª MaxHp ¤Ø¤Î¥¢¥Ë¥á¤¬½ÐÍè¤ë
}
/// <summary>
/// DOTween ¤Î DoCounter ¥á¥½¥Ã¥É¤ò»ÈÍѤ·¤Æ¥æ¡¼¥¶¡¼¤Î HP ÍÑ UI ¤ò¹¹¿·
/// Slider ¤ÎÃͤâ DOTween ¤ò»ÈÍѤ·¤Æ¹¹¿·
/// </summary>
/// <param name="prevHp">Á°²ó¤Î HP ÃÍ</param>
/// <param name="currentHp">¸½ºß¤Î HP ÃÍ</param>
public void UpdatePlayerUp(int prevHp, int currentHp) {
txtUserHp.DOCounter(prevHp, currentHp, 0.5f).SetEase(Ease.InQuart);
playerSlider.DOValue(currentHp, duration).SetEase(animationEase);
}
/// <summary>
/// DOTween ¤Î DoCounter ¥á¥½¥Ã¥É¤ò»ÈÍѤ·¤ÆÂÐÀïÁê¼ê¤Î HP ÍÑ UI ¤ò¹¹¿·
/// Slider ¤ÎÃͤâ DOTween ¤ò»ÈÍѤ·¤Æ¹¹¿·
/// </summary>
/// <param name="prevHp">Á°²ó¤Î HP ÃÍ</param>
/// <param name="currentHp">¸½ºß¤Î HP ÃÍ</param>
public void UpdateOpponentUp(int prevHp, int currentHp) {
txtOpponentHp.DOCounter(prevHp, currentHp, 0.5f).SetEase(Ease.InQuart);
opponentSlider.DOValue(currentHp, duration).SetEase(animationEase);
}
}
¤³¤Á¤é¤Ï View ¤ËʬÎव¤ì¤ë¡¢²èÌ̤Îɽ¼¨¤È¹¹¿·¤ò¹Ô¤¦¤¿¤á¤Î¥¯¥é¥¹¤Ç¤¹¡£
¤Þ¤º¡¢¥²¡¼¥à²èÌ̤˥ץ쥤¥ä¡¼ÍѤÈÂÐÀïÁê¼êÍѤΠUI ¤òÍÑ°Õ¤·¤Þ¤¹¡£
Text ¤¬¤¢¤ì¤Ð HP ¤Î¸½ºßÃͤò¹¹¿·¤Ç¤¤Þ¤¹¡£Slider ¤âÍÑ°Õ¤¹¤ë¤³¤È¤Ç¡¢¥²¡¼¥¸¤â¹¹¿·¤Ç¤¤Þ¤¹¡£
Hp ¤ÎºÇÂçÃͤϤ³¤³¤Ç¤ÏÀ©¸æ¤·¤Æ¤¤¤Þ¤»¤ó¤Î¤Ç¡¢É¬Íפ˱þ¤¸¤Æ¡¢ÊÌÅÓ Text ¤òÍÑ°Õ¤¹¤ë¤«¡¢£±¤Ä¤Î Text Æâ¤Ëɽ¼¨¤·¤Æ¤¯¤À¤µ¤¤¡£
¤½¤Î¸å¡¢¤¤¤º¤ì¤«¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë View ¥¯¥é¥¹¤ò¥¢¥¿¥Ã¥Á¤·¡¢Text ¤Ê¤É¤ò¥¢¥µ¥¤¥ó¤·¤ÆÍøÍѤ·¤Þ¤¹¡£
½èÍý¤ÎÆâÍƤȤ·¤Æ¤Ï¡¢»öÁ°¤Ë ReactiveProperty ¤ÇºîÀ®¤¹¤ë Hp ¤Î¾ðÊó¤È¥á¥½¥Ã¥É¤òɳ¤Å¤±¤·¤Æ¤ª¤¯¤³¤È¤Ç¡¢
Hp ¤ÎÃͤ¬ÊÑÆ°¤¹¤ë¤¿¤Ó¤Ë¼«Æ°Åª¤Ë²èÌ̤ΠHp ¤ÎÃͤò¹¹¿·¤µ¤»¤ë»ÅÁȤߤǤ¹¡£Slider ¤âƱÍͤǤ¹¡£
¥×¥ì¥¤¥ä¡¼¤Ë¤Ä¤¤¤Æ¤ÏºÇ½é¤Ë1²ó¥»¥Ã¥È¤¹¤ì¤Ð¡¢Æ±¤¸ Hp ¤ò¹ØÆÉ(´Æ»ë)¤¹¤ë¤Î¤ÇÌäÂꤢ¤ê¤Þ¤»¤ó¤¬¡¢
ÂÐÀïÁê¼ê¤Î¾ì¹ç¤Ï¡¢Hp ¤ÎÃͤò¥»¥Ã¥È¤·Ä¾¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£
Ãͤι¹¿·ÊýË¡¤È¤·¤Æ¤Ï¡¢DOTween ¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
DOCounter ¤Ç Hp Ãͤò¹¹¿·¤·¤Æ¤¤¤Þ¤¹¡£
DOValue ¤Ç Slider ¤Î¥²¡¼¥¸¤ò¹¹¿·¤·¤Æ¤¤¤Þ¤¹¡£
DOValue ¤Î°ú¿ô¤ä Ease ¤Ë¤Ä¤¤¤Æ¤ÏÊÑ¿ô¤òÍÑ°Õ¤·¤Þ¤·¤¿¡£DOCounter ¤â¶¦ÍѲ½¤·¤ÆÊÑ¿ô¤Ë¤·¤Æ¤â¤è¤¤¤Ç¤¹¤·¡¢
ÊÌÅÓ¡¢DOCounter ÍѤ˿·¤·¤¤¥á¥ó¥ÐÊÑ¿ô¤òÍÑ°Õ¤·¤Æ¤â¤¤¤¤¤È»×¤¤¤Þ¤¹¡£
¥½¡¼¥¹¥³¡¼¥ÉÆâ¤Ç¤Ï´ðËÜŪ¤Ë¤Ï¥ê¥Æ¥é¥ëɽµ(ľÀÜ¿ô»ú¤ä¡¢Ê¸»úÎó¤ò½ñ¤¯¤³¤È)¤ÏÈò¤±¤Æ¡¢¤Ê¤ë¤Ù¤¯¡¢ÊÑ¿ô¤Ç½ñ¤¤¤Æ¤ª¤¯¤è¤¦¤Ë¤·¤Þ¤·¤ç¤¦¡£