using Mirror;
using UnityEngine;
using DamageNumbersPro;
///
/// 网络伤害数字(负责自动同步并显示)
///
public class DamageNumberNetwork : NetworkBehaviour
{
[SyncVar(hook = nameof(OnSyncVarChanged))]
public float damageValue;
[SyncVar]
public Vector3 worldPos;
[SyncVar]
public bool isCritical;
private bool hasSpawned;
public override void OnStartClient()
{
base.OnStartClient();
TrySpawnDamage();
}
void OnSyncVarChanged(float oldValue, float newValue)
{
TrySpawnDamage();
}
private void TrySpawnDamage()
{
if (hasSpawned || damageValue == 0) return;
hasSpawned = true;
// 实例化 DamageNumbersPro 的伤害数字显示
var dmgNum = GetComponent();
if (dmgNum != null)
{
dmgNum.Spawn(worldPos, damageValue);
}
else
{
Debug.LogWarning("[DamageNumberNetwork] Missing DamageNumber component!");
}
}
}