religion/Assets/Scripts/UI/BossHPBar.cs
Roman eb0649bc20 任务:制作UI
1.制作玩家UI
(1.制作玩家血条UI
((1.作为一个独立的Canvas物体
((2.当检查到记录中血量和真实剩余血量不一样,重刷新血量UI
((3.保存子物体列表,一共10个爱心
((4.保存两张UI图片
((5.当触发重刷新UI,遍历10个爱心,把前Left个数的爱心换成红色,其他的换成白色
((6.将血条UI放置到每一个场景
(2.制作镰刀CDUI
((1.初始化时,获取玩家镰刀CD总时长
((2.当玩家发射镰刀,额外让玩家找到UI组件,并发送信号,触发Tween动画,以圆圈形式从0到1重显现CDUI
((3.适配到每一个场景

2.制作boss血条
(1.逻辑基本上与玩家的一致
(2.额外增加一个boss名字文字栏
(3.当Boss进入攻击状态,开始显示血条和名字

*优化和修复
1.镰刀攻击同时按卡动画
2.修复读板时按确定会出错的问题
3.修复疯狂发射镰刀会卡动画的问题
4.修复玩家死后着地会滑动的问题
5.修复了未开启开幕演出,死亡后报错的问题
6.修复各个场景玩家UI和专场块的遮挡问题

下班
2021-12-27 00:07:25 +08:00

53 lines
1.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using Sirenix.OdinInspector;
/// <summary>
/// 控制Boss血条UI
/// </summary>
public class BossHPBar : MonoBehaviour
{
private float HPLeft = -1f;
public Enemy boss;
private Image empty;
private Text bossName;
private Image self;
void Start(){
self = GetComponent<Image>();
empty = transform.Find("血条(底").GetComponent<Image>();
bossName = transform.Find("Boos名").GetComponent<Text>();
if(boss.gameObject.name == "地藏") bossName.text = "地藏王菩萨";
if(boss.gameObject.name == "木马") bossName.text = "特洛伊木马";
if(boss.gameObject.name == "以撒雕像") bossName.text = "以撒";
}
void Update(){
//
//Debug.Log(boss.HPLeft + ", " + boss.HP);
//
//每帧检查当UI剩余血量和玩家真实剩余血量不一致触发重刷新UI功能
if(HPLeft != boss.HPLeft) RefrashUI(boss.HPLeft/boss.HP);
HPLeft = boss.HPLeft;
}
/// <summary>
/// boss进入攻击状态的时候调用,开始显示boss血条
/// </summary>
public void OnShowUI(){
self.DOFade(1,1f);
empty.DOFade(1,1f);
bossName.DOFade(1,1f);
}
private void RefrashUI(float HPPrograss){
self.DOFillAmount(HPPrograss,2f);
}
}