新增game hud字体

移除旧版血量控制
This commit is contained in:
2026-07-04 15:22:46 +08:00
parent 08dec79a6e
commit c8e66f72b1
11 changed files with 460 additions and 110 deletions
+32 -4
View File
@@ -100,6 +100,7 @@ namespace IndianOceanAssets.Engine2_5D
private float _attackTimer; // 攻击冷却计时器
private Animator _animator; // 敌人动画
private HealthSystem _playerHealth; // 玩家血量引用
private Camera _mainCam; // 主相机引用(用于Billboard
private void Start()
{
@@ -118,6 +119,7 @@ namespace IndianOceanAssets.Engine2_5D
}
_animator = GetComponent<Animator>();
_mainCam = Camera.main;
}
private void OnEnable()
@@ -130,6 +132,18 @@ namespace IndianOceanAssets.Engine2_5D
EchoSystem.OnEchoReleased -= OnBell;
}
private void LateUpdate()
{
// Billboard:让 Sprite 始终面朝相机,消除透视畸变
if (_mainCam != null)
{
transform.LookAt(
transform.position + (_mainCam.transform.position - transform.position),
Vector3.up
);
}
}
private void Update()
{
switch (_state)
@@ -225,12 +239,26 @@ namespace IndianOceanAssets.Engine2_5D
// ===== ChasingBell:追击铃铛 =====
private void UpdateChasingBell()
{
// 更新攻击冷却
_attackTimer -= Time.deltaTime;
// 追击过程中检测是否看到玩家
if (CanSeePlayer())
if (playerTarget != null && CanSeePlayer())
{
_state = State.ChasingPlayer;
_loseSightTimer = 0f;
return;
float distToPlayer = XZDistance(transform.position, playerTarget.position);
// 进入攻击范围 → 近战攻击
if (distToPlayer <= attackRange)
{
TryAttack();
}
else
{
// 看到玩家但不在攻击范围,切换到追击玩家
_state = State.ChasingPlayer;
_loseSightTimer = 0f;
return;
}
}
// 追击计时