
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和专场块的遮挡问题 下班
53 lines
1.4 KiB
C#
53 lines
1.4 KiB
C#
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);
|
||
}
|
||
|
||
|
||
|
||
}
|