293 lines
9.2 KiB
C#
293 lines
9.2 KiB
C#
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;
|
||
}
|
||
}
|
||
|
||
|
||
} |