religion/Assets/Scripts/UI/SickleCD.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

36 lines
928 B
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using Sirenix.OdinInspector;
/// <summary>
/// 控制镰刀CDUI的脚本
/// </summary>
public class SickleCD : MonoBehaviour
{
/// <summary>
/// 镰刀CD总时长,初始化的时候从玩家获取
/// </summary>
private float allTime;
private MyPlayer player;
private Image image;
void Start(){
player = FindObjectOfType<MyPlayer>();
allTime = player.sickleCD;
image = GetComponent<Image>();
}
/// <summary>
/// 玩家发射镰刀的时候顺便触发,开始计算镰刀UI
/// </summary>
public void OnSickle(){
//先让标志shake一下,很酷
transform.parent.DOShakePosition(0.5f,10);
//再开始Tween填充
image.fillAmount = 0;
image.DOFillAmount(1,allTime).SetEase(Ease.Linear);
}
}