[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.Managing.Server.Editing
{
[CustomEditor(typeof(ServerManager), true)]
[CanEditMultipleObjects]
public class ServerManagerEditor : Editor
{
private SerializedProperty _authenticator;
private SerializedProperty _remoteClientTimeout;
private SerializedProperty _remoteClientTimeoutDuration;
private SerializedProperty _syncTypeRate;
private SerializedProperty SpawnPacking;
private SerializedProperty _changeFrameRate;
private SerializedProperty _frameRate;
private SerializedProperty _shareIds;
private SerializedProperty _startOnHeadless;
private SerializedProperty _allowPredictedSpawning;
private SerializedProperty _reservedObjectIds;
protected virtual void OnEnable()
{
_authenticator = serializedObject.FindProperty(nameof(_authenticator));
_remoteClientTimeout = serializedObject.FindProperty(nameof(_remoteClientTimeout));
_remoteClientTimeoutDuration = serializedObject.FindProperty(nameof(_remoteClientTimeoutDuration));
_syncTypeRate = serializedObject.FindProperty(nameof(_syncTypeRate));
SpawnPacking = serializedObject.FindProperty(nameof(SpawnPacking));
_changeFrameRate = serializedObject.FindProperty(nameof(_changeFrameRate));
_frameRate = serializedObject.FindProperty(nameof(_frameRate));
_shareIds = serializedObject.FindProperty(nameof(_shareIds));
_startOnHeadless = serializedObject.FindProperty(nameof(_startOnHeadless));
_allowPredictedSpawning = serializedObject.FindProperty(nameof(_allowPredictedSpawning));
_reservedObjectIds = serializedObject.FindProperty(nameof(_reservedObjectIds));
}
public override void OnInspectorGUI()
{
serializedObject.Update();
GUI.enabled = false;
EditorGUILayout.ObjectField("Script:", MonoScript.FromMonoBehaviour((ServerManager)target), typeof(ServerManager), false);
GUI.enabled = true;
EditorGUILayout.LabelField("Settings", EditorStyles.boldLabel);
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_syncTypeRate);
EditorGUILayout.PropertyField(SpawnPacking);
EditorGUILayout.PropertyField(_changeFrameRate);
if (_changeFrameRate.boolValue)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_frameRate);
EditorGUI.indentLevel--;
}
EditorGUILayout.PropertyField(_startOnHeadless);
EditorGUI.indentLevel--;
EditorGUILayout.Space();
EditorGUILayout.LabelField("Connections", EditorStyles.boldLabel);
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_remoteClientTimeout);
if ((RemoteTimeoutType)_remoteClientTimeout.intValue != RemoteTimeoutType.Disabled)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_remoteClientTimeoutDuration, new GUIContent("Timeout"));
EditorGUI.indentLevel--;
}
EditorGUILayout.PropertyField(_shareIds);
EditorGUI.indentLevel--;
EditorGUILayout.Space();
EditorGUILayout.LabelField("Security", EditorStyles.boldLabel);
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_authenticator);
EditorGUILayout.PropertyField(_allowPredictedSpawning);
if (_allowPredictedSpawning.boolValue == true)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_reservedObjectIds);
EditorGUI.indentLevel--;
}
EditorGUI.indentLevel--;
EditorGUILayout.Space();
serializedObject.ApplyModifiedProperties();
}
}
}
#endif
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: da6ea97e6b868974e8ac139fe545e986
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 207815
packageName: 'FishNet: Networking Evolved'
packageVersion: 4.6.22R
assetPath: Assets/FishNet/Runtime/Managing/Server/Editor/ServerManagerEditor.cs
uploadId: 866910