89 lines
1.8 KiB
C#
89 lines
1.8 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Unity.VisualScripting;
|
|
using UnityEngine;
|
|
|
|
public class GameManager : MonoBehaviour
|
|
{
|
|
public static GameManager instance;
|
|
|
|
public float Score;
|
|
public int DotNum;
|
|
public float invincibleTime;//无敌时间
|
|
|
|
public TMPro.TextMeshProUGUI scoreText;//分数文本
|
|
public TMPro.TextMeshProUGUI invincibleText;//无敌时间文本
|
|
|
|
public bool GameStart = false;//游戏开始
|
|
|
|
private void Awake()
|
|
{
|
|
// 单例初始化
|
|
if (instance == null)
|
|
{
|
|
instance = this;
|
|
DontDestroyOnLoad(gameObject);
|
|
}
|
|
else
|
|
{
|
|
Destroy(gameObject);
|
|
}
|
|
}
|
|
private void Update()
|
|
{
|
|
UpdateInvincibleTime();
|
|
}
|
|
|
|
|
|
// 吃豆加分减少数量
|
|
public void AddScore(float amount)
|
|
{
|
|
Score += amount;
|
|
DotNum--;
|
|
UpdateScoreDisplay();
|
|
if(DotNum<=0)
|
|
{
|
|
//游戏胜利
|
|
}
|
|
}
|
|
|
|
public void AddDotNum(int addNotNum)
|
|
{
|
|
DotNum += addNotNum;
|
|
// UpdateScoreDisplay();
|
|
}
|
|
|
|
private void UpdateScoreDisplay()
|
|
{
|
|
if (scoreText != null)
|
|
{
|
|
scoreText.text = Score.ToString();
|
|
}
|
|
}
|
|
|
|
private void UpdateInvincibleTime()
|
|
{
|
|
if (invincibleText != null)
|
|
{
|
|
invincibleText.text = invincibleTime.ToString();
|
|
}
|
|
}
|
|
|
|
|
|
public static float GetAnimaTime(Animator animtorName, string animName)//获得动画时长
|
|
{
|
|
if (animtorName != null)
|
|
{
|
|
RuntimeAnimatorController AC = animtorName.runtimeAnimatorController;
|
|
foreach (var item in AC.animationClips)
|
|
{
|
|
if (item.name == animName)
|
|
{
|
|
return item.length;
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
}
|