Files
bansonic_beta_main/Assets/scripts/gameplay_teamUI/teamUIController.cs
T

293 lines
9.2 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 UnityEngine;
using UnityEngine.UI;
using TMPro;
public class teamUIController : MonoBehaviour
{
public static teamUIController Instance {
get;
private set;
}
[Header("基本文本")]
[Tooltip("title")]
public TextMeshProUGUI songNametitle;
public TextMeshProUGUI difficultyName;
public TextMeshProUGUI difficultyID;
public TextMeshProUGUI constructionName;
[Tooltip("连击计数")]
public Text comboCounter;
[Tooltip("敌人出场数量")]
public Text enemyCounter;
[SerializeField] private int enemyCounterMax; // 本局游戏敌人最大数
[SerializeField] private int enemyCurrentCount; // 现在的敌人顺序
[Tooltip("当前总分")]
public Text currentTotalScore;
[Header("Combo判定最低要求")]
public ComboJudgeType comboJudgeType = ComboJudgeType.Perfect;
private int combo = 0;
public enum ComboJudgeType
{
Perfect,
Great,
Good,
// Miss
}
[Header("teammate01")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_ally01;
[Tooltip("开关")]
public bool isAlly01_active = true;
[Tooltip("角色图")]
public Image teammate01_characterImage;
[Tooltip("血条")]
public Image teammate01_healthImage;
[Tooltip("虚血条")]
public Image teammate01_fadehealthImage;
[Tooltip("法力条")]
public Image teammate01_manaImage;
[Tooltip("虚法力条")]
public Image teammate01_fadeManaImage;
[Tooltip("名字文本")]
public TextMeshProUGUI teammate01_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI teammate01_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI teammate01_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int ally01_id;
[Tooltip("受击闪红")]
public Image teammate01_hurtRedImage;
[Tooltip("当前生命值")]
[SerializeField] private int teammate01_currentHP;
[Tooltip("最大生命值")]
[SerializeField] private int teammate01_maxHP;
[Tooltip("当前法力值")]
[SerializeField] private int teammate01_currentMana;
[Tooltip("最大法力值")]
[SerializeField] private int teammate01_maxMana;
[Header("teammate02")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_ally02;
[Tooltip("开关")]
public bool isAlly02_active = true;
[Tooltip("角色图")]
public Image teammate02_characterImage;
[Tooltip("血条")]
public Image teammate02_healthImage;
[Tooltip("虚血条")]
public Image teammate02_fadehealthImage;
[Tooltip("法力条")]
public Image teammate02_manaImage;
[Tooltip("虚法力条")]
public Image teammate02_fadeManaImage;
[Tooltip("名字文本")]
public TextMeshProUGUI teammate02_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI teammate02_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI teammate02_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int ally02_id;
[Tooltip("受击闪红")]
public Image teammate02_hurtRedImage;
[Tooltip("当前生命值")]
[SerializeField] private int teammate02_currentHP;
[Tooltip("最大生命值")]
[SerializeField] private int teammate02_maxHP;
[Tooltip("当前法力值")]
[SerializeField] private int teammate02_currentMana;
[Tooltip("最大法力值")]
[SerializeField] private int teammate02_maxMana;
[Header("teammate03")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_ally03;
[Tooltip("开关")]
public bool isAlly03_active = true;
[Tooltip("角色图")]
public Image teammate03_characterImage;
[Tooltip("血条")]
public Image teammate03_healthImage;
[Tooltip("虚血条")]
public Image teammate03_fadehealthImage;
[Tooltip("法力条")]
public Image teammate03_manaImage;
[Tooltip("虚法力条")]
public Image teammate03_fadeManaImage;
[Tooltip("名字文本")]
public TextMeshProUGUI teammate03_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI teammate03_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI teammate03_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int ally03_id;
[Tooltip("受击闪红")]
public Image teammate03_hurtRedImage;
[Tooltip("当前生命值")]
[SerializeField] private int teammate03_currentHP;
[Tooltip("最大生命值")]
[SerializeField] private int teammate03_maxHP;
[Tooltip("当前法力值")]
[SerializeField] private int teammate03_currentMana;
[Tooltip("最大法力值")]
[SerializeField] private int teammate03_maxMana;
[Header("teammate04")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_ally04;
[Tooltip("开关")]
public bool isAlly04_active = true;
[Tooltip("角色图")]
public Image teammate04_characterImage;
[Tooltip("血条")]
public Image teammate04_healthImage;
[Tooltip("虚血条")]
public Image teammate04_fadehealthImage;
[Tooltip("法力条")]
public Image teammate04_manaImage;
[Tooltip("虚法力条")]
public Image teammate04_fadeManaImage;
[Tooltip("名字文本")]
public TextMeshProUGUI teammate04_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI teammate04_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI teammate04_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int ally04_id;
[Tooltip("受击闪红")]
public Image teammate04_hurtRedImage;
[Tooltip("当前生命值")]
[SerializeField] private int teammate04_currentHP;
[Tooltip("最大生命值")]
[SerializeField] private int teammate04_maxHP;
[Tooltip("当前法力值")]
[SerializeField] private int teammate04_currentMana;
[Tooltip("最大法力值")]
[SerializeField] private int teammate04_maxMana;
[Header("teammate05")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_ally05;
[Tooltip("开关")]
public bool isAlly05_active = true;
[Tooltip("角色图")]
public Image teammate05_characterImage;
[Tooltip("血条")]
public Image teammate05_healthImage;
[Tooltip("虚血条")]
public Image teammate05_fadehealthImage;
[Tooltip("法力条")]
public Image teammate05_manaImage;
[Tooltip("虚法力条")]
public Image teammate05_fadeManaImage;
[Tooltip("名字文本")]
public TextMeshProUGUI teammate05_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI teammate05_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI teammate05_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int ally05_id;
[Tooltip("受击闪红")]
public Image teammate05_hurtRedImage;
[Tooltip("当前生命值")]
[SerializeField] private int teammate05_currentHP;
[Tooltip("最大生命值")]
[SerializeField] private int teammate05_maxHP;
[Tooltip("当前法力值")]
[SerializeField] private int teammate05_currentMana;
[Tooltip("最大法力值")]
[SerializeField] private int teammate05_maxMana;
[Header("currentEnemy")]
[Tooltip("父物体-控制整体显隐")]
public GameObject objectFather_enemy;
[Tooltip("开关")]
public bool isEnemy_active = true;
[Tooltip("角色图")]
public Image currentEnemy_characterImage;
[Tooltip("血条")]
public Image currentEnemy_healthImage;
[Tooltip("虚血条")]
public Image currentEnemy_fadehealthImage;
[Tooltip("名字文本")]
public TextMeshProUGUI currentEnemy_nameText;
[Tooltip("当前生命值/最大生命值")]
public TextMeshProUGUI currentEnemy_healthRate;
[Tooltip("当前分数/轨道分数上限")]
public TextMeshProUGUI currentEnemy_current_scoreText; // rate : now score / max score
[Tooltip("角色唯一识别码")]
[SerializeField] private int enemy_id;
[Tooltip("受击闪红")]
public Image currentEnemy_hurtRedImage;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void FixedUpdate()
{
}
private void Awake()
{
if (Instance == null)
Instance = this;
else
Destroy(gameObject);
}
/// <summary>
/// 由判定系统调用,传入判定结果(如"Perfect"、"Great"、"Good"、"Miss"
/// </summary>
public void OnJudgeResult(string result)
{
if (IsCombo(result))
{
combo++;
}
else
{
combo = 0;
}
if (comboCounter != null)
comboCounter.text = combo.ToString();
}
/// <summary>
/// 判断当前判定结果是否达到combo要求
/// </summary>
private bool IsCombo(string result)
{
switch (comboJudgeType)
{
case ComboJudgeType.Perfect:
return result == "Perfect";
case ComboJudgeType.Great:
return result == "Perfect" || result == "Great";
case ComboJudgeType.Good:
return result == "Perfect" || result == "Great" || result == "Good";
default:
return false;
}
}
}