/// <summary> /// パネル移動のTweenを作成 /// </summary> /// <param name="panelOperator"></param> /// <param name="endPos"></param> /// <returns></returns> private Tween CreatePanelMoveTween(BattleMapStatusPanelOperator panelOperator, Vector2 endPos) { // パネルを取得 BattleMapStatusPanelObject panelObject = panelOperator.GetStatusPanelObject(); // 閉じるボタンを非活性 panelObject.CancelButton.SetActive(false); RectTransform rect = panelObject.GameObject.GetComponent <RectTransform>(); // アンカー変更で位置がずれるので戻す用 Vector2 old = rect.position; // アンカーを変更 rect.anchorMin = new Vector2(0.5f, 0); rect.anchorMax = new Vector2(0.5f, 0); // アンカー変更でずれた位置を戻す rect.position = old; // アンカーポジションを指定位置へだんだん移動 Tween tween = DOTween.To( () => rect.anchoredPosition, v => { rect.anchoredPosition = v; }, endPos, GetPrepareDuration()); tween.SetEase(Ease.OutQuart); return(tween); }
private Tween CreatePanelMoveTween(BattleMapStatusPanelOperator panelOperator, Vector2 endPos) { BattleMapStatusPanelObject panelObject = panelOperator.GetStatusPanelObject(); RectTransform rect = panelObject.GameObject.GetComponent <RectTransform>(); Vector2 old = rect.position; rect.anchorMin = new Vector2(0.5f, 0); rect.anchorMax = new Vector2(0.5f, 0); rect.position = old; Tween tween = DOTween.To( () => rect.anchoredPosition, v => { rect.anchoredPosition = v; }, endPos, 1.0f); tween.SetEase(Ease.OutQuart); return(tween); }
/// <summary> /// パネルのシェイクのTweenを作成 /// </summary> /// <param name="battleResultSet"></param> /// <param name="battleResult"></param> /// <returns></returns> private Sequence CreatePanelShakeTween(BattleResultSet battleResultSet, BattleResult battleResult) { BattleMapStatusPanelObject panelObject = GetPanelObject(battleResultSet, battleResult); RectTransform rectPanel = panelObject.GameObject.GetComponent <RectTransform>(); Sequence seq = DOTween.Sequence(); // パネルのシェイク Tweener shakePanel = rectPanel.DOShakeAnchorPos(bc.GetBaseDuration(), SHAKE_POWER * 40); seq.Append(shakePanel); // HPを減らす int hp = int.Parse(panelObject.HpSubText.text); int damage = battleResult.ToDamage; int restHp = hp - damage; if (restHp < 0) { restHp = 0; } Tween tween = DOTween.To( () => hp, (v) => { hp = v; panelObject.HpSubText.text = "" + v; }, restHp, 1.0f); tween.SetEase(Ease.Linear); seq.Append(tween); return(seq); }
private void MinusStatus() { BattleMapStatusPanelOperator panelOperator = statusGenerator.GetStatusPanelOperator(); BattleMapStatusPanelObject panelObject = panelOperator.GetStatusPanelObject(); DOTween.Init(); DOTween.defaultAutoPlay = AutoPlay.None; int hp = 40; Tween tween = DOTween.To( () => hp, (v) => { hp = v; panelObject.HpText.text = "" + v; }, 0, 1.0f); tween.SetEase(Ease.Linear); tween.Play(); }