[Add] FishNet

This commit is contained in:
2026-03-30 20:11:57 +07:00
parent ee793a3361
commit c22c08753a
1797 changed files with 197950 additions and 1 deletions
@@ -0,0 +1,92 @@
#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;
namespace FishNet.Editing.Beta
{
public class BetaModeMenu : MonoBehaviour
{
#region const.
private const string STABLE_RECURSIVE_DESPAWNS_DEFINE = "FISHNET_STABLE_RECURSIVE_DESPAWNS";
private const string THREADED_TICKSMOOTHERS_DEFINE = "FISHNET_THREADED_TICKSMOOTHERS";
private const string THREADED_COLLIDER_ROLLBACK_DEFINE = "FISHNET_THREADED_COLLIDER_ROLLBACK";
#endregion
#region Beta Recursive Despawns
#if FISHNET_STABLE_RECURSIVE_DESPAWNS
[MenuItem("Tools/Fish-Networking/Beta/Enable Recursive Despawns", false, -1101)]
private static void EnableBetaRecursiveDespawns() => SetBetaRecursiveDespawns(useStable: false);
#else
[MenuItem("Tools/Fish-Networking/Beta/Disable Recursive Despawns", false, -1101)]
private static void DisableBetaRecursiveDespawns() => SetBetaRecursiveDespawns(useStable: true);
#endif
private static void SetBetaRecursiveDespawns(bool useStable)
{
bool result = DeveloperMenu.RemoveOrAddDefine(STABLE_RECURSIVE_DESPAWNS_DEFINE, removeDefine: !useStable);
if (result)
Debug.LogWarning($"Beta Recursive Despawns are now {GetBetaEnabledText(useStable)}.");
}
#endregion
#region Beta ThreadedSmothers
/* Changes by https://github.com/belplaton
* Content: Threaded TickSmoothers
* Migrating the network interpolation system for the graphical world to a multithreaded Unity Jobs + Burst implementation. */
#if FISHNET_THREADED_TICKSMOOTHERS
[MenuItem("Tools/Fish-Networking/Beta/Disable Threaded TickSmoothers", false, -1101)]
private static void DisableBetaThreadedSmoothers() => SetBetaThreadedSmoothers(useStable: true);
#else
[MenuItem("Tools/Fish-Networking/Beta/Enable Threaded TickSmoothers", false, -1101)]
private static void EnableBetaThreadedSmoothers()
{
#if UNITYMATHEMATICS || UNITYMATHEMATICS_131 || UNITYMATHEMATICS_132
SetBetaThreadedSmoothers(useStable: false);
#else
Debug.LogError($"You must install the package com.unity.mathematics to use Beta Threaded TickSmoothers.");
#endif
}
#endif
private static void SetBetaThreadedSmoothers(bool useStable)
{
bool result = DeveloperMenu.RemoveOrAddDefine(THREADED_TICKSMOOTHERS_DEFINE, removeDefine: useStable);
if (result)
Debug.LogWarning($"Beta Threaded TickSmoothers are now {GetBetaEnabledText(useStable)}.");
}
#endregion
#region Beta Threaded Collider Rollback
/* Changes by https://github.com/belplaton
* Content: Threaded Collider Rollback
* Migrating collider rollback -- commonly used for hitbox tracing -- to a multithreaded Unity Jobs + Burst implementation. */
#if FISHNET_THREADED_COLLIDER_ROLLBACK
[MenuItem("Tools/Fish-Networking/Beta/Disable Threaded Collider Rollback", false, -1101)]
private static void DisableBetaThreadedColliderRollback() => SetBetaThreadedColliderRollback(useStable: true);
#else
[MenuItem("Tools/Fish-Networking/Beta/Enable Threaded Collider Rollback", false, -1101)]
private static void EnableBetaThreadedColliderRollback()
{
#if UNITYMATHEMATICS || UNITYMATHEMATICS_131 || UNITYMATHEMATICS_132
SetBetaThreadedColliderRollback(useStable: false);
#else
Debug.LogError($"You must install the package com.unity.mathematics to use Beta Threaded Collider Rollhack..");
#endif
}
#endif
private static void SetBetaThreadedColliderRollback(bool useStable)
{
bool result = DeveloperMenu.RemoveOrAddDefine(THREADED_COLLIDER_ROLLBACK_DEFINE, removeDefine: useStable);
if (result)
Debug.LogWarning($"Beta Threaded Collider Rollbacks are now {GetBetaEnabledText(useStable)}.");
}
#endregion
private static string GetBetaEnabledText(bool useStable)
{
return useStable ? "disabled" : "enabled";
}
}
}
#endif