Files
MRCS/Assets/_MrCs/Scripts/UI/DamageNumberNetwork.cs

48 lines
1.0 KiB
C#

using Mirror;
using UnityEngine;
using DamageNumbersPro;
/// <summary>
/// 网络伤害数字(负责自动同步并显示)
/// </summary>
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<DamageNumber>();
if (dmgNum != null)
{
dmgNum.Spawn(worldPos, damageValue);
}
else
{
Debug.LogWarning("[DamageNumberNetwork] Missing DamageNumber component!");
}
}
}