[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,91 @@
#if UNITY_EDITOR
using UnityEditor;
using UnityEngine;
namespace FishNet.Managing.Predicting.Editing
{
[CustomEditor(typeof(PredictionManager), true)]
[CanEditMultipleObjects]
public class PredictionManagerEditor : Editor
{
//Client.
private SerializedProperty _reduceReconcilesWithFramerate;
private SerializedProperty _minimumClientReconcileFramerate;
private SerializedProperty _createLocalStates;
private SerializedProperty _stateInterpolation;
private SerializedProperty _stateOrder;
//Server.
private SerializedProperty _dropExcessiveReplicates;
private SerializedProperty _maximumServerReplicates;
//private SerializedProperty _maximumConsumeCount;
protected virtual void OnEnable()
{
//Client.
_reduceReconcilesWithFramerate = serializedObject.FindProperty(nameof(_reduceReconcilesWithFramerate));
_minimumClientReconcileFramerate = serializedObject.FindProperty(nameof(_minimumClientReconcileFramerate));
_createLocalStates = serializedObject.FindProperty(nameof(_createLocalStates));
_stateInterpolation = serializedObject.FindProperty(nameof(_stateInterpolation));
_stateOrder = serializedObject.FindProperty(nameof(_stateOrder));
//Server.
_dropExcessiveReplicates = serializedObject.FindProperty(nameof(_dropExcessiveReplicates));
_maximumServerReplicates = serializedObject.FindProperty(nameof(_maximumServerReplicates));
//_maximumConsumeCount = serializedObject.FindProperty(nameof(_maximumConsumeCount));
}
public override void OnInspectorGUI()
{
serializedObject.Update();
GUI.enabled = false;
EditorGUILayout.ObjectField("Script:", MonoScript.FromMonoBehaviour((PredictionManager)target), typeof(PredictionManager), false);
GUI.enabled = true;
EditorGUILayout.LabelField("Client", EditorStyles.boldLabel);
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_reduceReconcilesWithFramerate);
if (_reduceReconcilesWithFramerate.boolValue)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_minimumClientReconcileFramerate);
EditorGUI.indentLevel--;
}
EditorGUILayout.PropertyField(_createLocalStates);
int interpolationValue = _stateInterpolation.intValue;
if (interpolationValue == 0)
EditorGUILayout.HelpBox(PredictionManager.ZERO_STATE_INTERPOLATION_MESSAGE, MessageType.Warning);
else if (_stateOrder.intValue == (int)ReplicateStateOrder.Appended && interpolationValue < PredictionManager.MINIMUM_APPENDED_INTERPOLATION_RECOMMENDATION)
EditorGUILayout.HelpBox(PredictionManager.LESS_THAN_MINIMUM_APPENDED_MESSAGE, MessageType.Warning);
else if (_stateOrder.intValue == (int)ReplicateStateOrder.Inserted && interpolationValue < PredictionManager.MINIMUM_INSERTED_INTERPOLATION_RECOMMENDATION)
EditorGUILayout.HelpBox(PredictionManager.LESS_THAN_MINIMUM_INSERTED_MESSAGE, MessageType.Warning);
EditorGUILayout.PropertyField(_stateInterpolation);
EditorGUILayout.PropertyField(_stateOrder);
EditorGUI.indentLevel--;
EditorGUILayout.Space();
EditorGUILayout.LabelField("Server", EditorStyles.boldLabel);
EditorGUI.indentLevel++;
// EditorGUILayout.PropertyField(_serverInterpolation);
EditorGUILayout.PropertyField(_dropExcessiveReplicates);
EditorGUI.indentLevel++;
if (_dropExcessiveReplicates.boolValue)
{
EditorGUI.indentLevel++;
EditorGUILayout.PropertyField(_maximumServerReplicates);
EditorGUI.indentLevel--;
}
EditorGUI.indentLevel--;
serializedObject.ApplyModifiedProperties();
}
}
}
#endif
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 5382c1ab98f25c8439d23140d36651fe
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/Prediction/Editor/PredictionManagerEditor.cs
uploadId: 866910