113 lines
3.1 KiB
C#
113 lines
3.1 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using DamageNumbersPro;
|
||
using Mirror;
|
||
using TMPro;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
using DG.Tweening;
|
||
|
||
public class BloodSlider : MonoBehaviour
|
||
{
|
||
public Image board;
|
||
|
||
public Image blood1;
|
||
|
||
|
||
public Image blood2;
|
||
|
||
|
||
public TextMeshProUGUI enemyName;
|
||
|
||
|
||
public GameObject damageUIPre;
|
||
|
||
public Transform damageUIPos;
|
||
|
||
private void Start()
|
||
{
|
||
if(blood1 == null)
|
||
return;
|
||
blood1.fillAmount = 1;
|
||
blood2.fillAmount = 1;
|
||
}
|
||
|
||
// public void CreateDamageUI(float damage, bool criticalHit)
|
||
// {
|
||
// GameObject damageUI = Instantiate(damageUIPre, transform);
|
||
// float offsetX = Random.Range(-120f, 120f);
|
||
// float offsetY = Random.Range(-20f, 55f);
|
||
// damageUI.transform.localPosition = damageUIPos.localPosition;
|
||
// damageUI.GetComponent<DamageUI>().ShowDamage(damage, criticalHit);
|
||
//
|
||
// float randomScale = Random.Range(0.8f, 1.5f);
|
||
//
|
||
// CanvasGroup canvasGroup = damageUI.GetComponent<CanvasGroup>();
|
||
//
|
||
// Sequence sequence = DOTween.Sequence();
|
||
//
|
||
// // 添加缩小动画
|
||
// sequence.Append(damageUI.transform.DOScale(new Vector3(randomScale, randomScale, randomScale), 0.5f));
|
||
//
|
||
// // sequence.Append(damageUI.transform.DOScale(new Vector3(1f, 1f, 1f), 0.2f));
|
||
// // 添加移动动画
|
||
// sequence.Join(damageUI.transform.DOLocalMove(damageUIPos.localPosition + new Vector3(offsetX, offsetY, 0), 0.5f));
|
||
// sequence.OnComplete(() =>
|
||
// {
|
||
// canvasGroup.DOFade(0f, 0.1f).OnComplete(() =>
|
||
// {
|
||
// GameObject.Destroy(damageUI);
|
||
// });
|
||
//
|
||
// });
|
||
// // 启动动画
|
||
// sequence.Play();
|
||
// }
|
||
|
||
public void CreateDamagePre(float damage, bool criticalHit)
|
||
{
|
||
GameObject damageUI = Instantiate(damageUIPre, transform);
|
||
float offsetX = Random.Range(-100f, 100f);
|
||
float offsetY = Random.Range(-40f, 25f);
|
||
damageUI.transform.localPosition = damageUIPos.localPosition+new Vector3(offsetX,offsetY,0);
|
||
damageUI.GetComponent<DamageUI>().ShowDamage(damage, criticalHit);
|
||
// if (criticalHit)
|
||
// {
|
||
// damageTxt.poolSize += 10;
|
||
// }
|
||
}
|
||
|
||
public void SetName(string name)
|
||
{
|
||
enemyName.text = name;
|
||
}
|
||
|
||
public void SetValue(float value)
|
||
{
|
||
|
||
if (value <= 0)
|
||
gameObject.SetActive(false);
|
||
else
|
||
gameObject.SetActive(true);
|
||
blood1.fillAmount = value;
|
||
}
|
||
|
||
public void SetValue2(float currentBlood, float totalBlood)
|
||
{
|
||
float value = currentBlood / totalBlood;
|
||
DOTween.To(() => blood2.fillAmount, x => blood2.fillAmount = x, value, 0.5f);//Ѫ<><D1AA><EFBFBD>仯
|
||
|
||
|
||
blood1.fillAmount = value;
|
||
// if (value <= 0)
|
||
// {
|
||
// gameObject.SetActive(false);
|
||
// }
|
||
}
|
||
|
||
private void Update()
|
||
{
|
||
transform.parent.GetComponent<Transform>().LookAt(GameInit.Ins.MRCamera.transform);
|
||
}
|
||
}
|