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!"); } } }