Add FishNet network library

This commit is contained in:
2026-09-17 20:29:57 +08:00
parent b0e708d54c
commit 668121e35c
2015 changed files with 213270 additions and 0 deletions
@@ -0,0 +1,66 @@
using UnityEngine;
namespace FishNet.Managing.Statistic
{
[DisallowMultipleComponent]
[AddComponentMenu("FishNet/Manager/StatisticsManager")]
public class StatisticsManager : MonoBehaviour
{
/// <summary>
/// True to operate while in release. This may cause allocations and impact performance.
/// </summary>
[Tooltip("True to operate while in release. This may cause allocations and impact performance.")]
[SerializeField]
private bool _runInRelease;
/// <summary>
/// Statistics for NetworkTraffic.
/// </summary>
[Tooltip("Statistics for NetworkTraffic.")]
[SerializeField]
private NetworkTrafficStatistics _networkTraffic;
/// <summary>
/// NetworkManager this is for.
/// </summary>
private NetworkManager _networkManager;
internal void InitializeOnce_Internal(NetworkManager manager)
{
_networkManager = manager;
}
/// <summary>
/// Gets NetworkTrafficStatistics reference.
/// </summary>
public bool TryGetNetworkTrafficStatistics(out NetworkTrafficStatistics statistics)
{
statistics = null;
/* Cannot run in the current build type. */
#if (!UNITY_EDITOR && !DEVELOPMENT_BUILD) || UNITY_SERVER
if (!_runInRelease)
{
_networkTraffic = null;
return false;
}
#endif
//NetworkManager must be set to work.
if (_networkManager == null)
{
if (!TryGetComponent(out _networkManager))
return false;
}
//Hot-load if needed.
if (_networkTraffic == null)
_networkTraffic = new();
_networkTraffic.InitializeOnce_Internal(_networkManager);
if (_networkTraffic.IsEnabled())
statistics = _networkTraffic;
return statistics != null;
}
}
}