79 lines
3.2 KiB
C#
79 lines
3.2 KiB
C#
#if UNITY_EDITOR
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace FishNet.Managing.Timing.Editing
|
|
{
|
|
|
|
|
|
[CustomEditor(typeof(TimeManager), true)]
|
|
[CanEditMultipleObjects]
|
|
public class TimeManagerEditor : Editor
|
|
{
|
|
private SerializedProperty _updateOrder;
|
|
private SerializedProperty _timingType;
|
|
private SerializedProperty _tickRate;
|
|
private SerializedProperty _allowTickDropping;
|
|
private SerializedProperty _maximumFrameTicks;
|
|
private SerializedProperty _pingInterval;
|
|
private SerializedProperty _timingInterval;
|
|
private SerializedProperty _physicsMode;
|
|
|
|
protected virtual void OnEnable()
|
|
{
|
|
_updateOrder = serializedObject.FindProperty("_updateOrder");
|
|
_timingType = serializedObject.FindProperty("_timingType");
|
|
_tickRate = serializedObject.FindProperty("_tickRate");
|
|
_allowTickDropping = serializedObject.FindProperty("_allowTickDropping");
|
|
_maximumFrameTicks = serializedObject.FindProperty("_maximumFrameTicks");
|
|
_pingInterval = serializedObject.FindProperty("_pingInterval");
|
|
_timingInterval = serializedObject.FindProperty("_timingInterval");
|
|
_physicsMode = serializedObject.FindProperty("_physicsMode");
|
|
}
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
serializedObject.Update();
|
|
|
|
GUI.enabled = false;
|
|
EditorGUILayout.ObjectField("Script:", MonoScript.FromMonoBehaviour((TimeManager)target), typeof(TimeManager), false);
|
|
GUI.enabled = true;
|
|
|
|
//Timing.
|
|
EditorGUILayout.LabelField("Timing", EditorStyles.boldLabel);
|
|
EditorGUI.indentLevel++;
|
|
EditorGUILayout.PropertyField(_updateOrder);
|
|
EditorGUILayout.PropertyField(_timingType);
|
|
EditorGUILayout.PropertyField(_allowTickDropping);
|
|
if (_allowTickDropping.boolValue == true)
|
|
{
|
|
EditorGUI.indentLevel++;
|
|
EditorGUILayout.PropertyField(_maximumFrameTicks);
|
|
EditorGUI.indentLevel--;
|
|
}
|
|
EditorGUILayout.PropertyField(_tickRate);
|
|
EditorGUILayout.PropertyField(_pingInterval);
|
|
EditorGUILayout.PropertyField(_timingInterval);
|
|
EditorGUI.indentLevel--;
|
|
EditorGUILayout.Space();
|
|
|
|
//Physics.
|
|
EditorGUILayout.LabelField("Physics", EditorStyles.boldLabel);
|
|
EditorGUI.indentLevel++;
|
|
EditorGUILayout.PropertyField(_physicsMode);
|
|
if (_physicsMode.intValue != (int)FishNet.Managing.Timing.PhysicsMode.TimeManager)
|
|
EditorGUILayout.HelpBox("If you are using physics interactions be sure to change the PhysicsMode to TimeManager and implement physics within the TimeManager tick events.", MessageType.None);
|
|
EditorGUI.indentLevel--;
|
|
|
|
////Prediction.
|
|
//EditorGUILayout.LabelField("Prediction", EditorStyles.boldLabel);
|
|
//EditorGUI.indentLevel++;
|
|
//EditorGUILayout.PropertyField(_maximumBufferedInputs);
|
|
//EditorGUI.indentLevel--;
|
|
|
|
serializedObject.ApplyModifiedProperties();
|
|
}
|
|
}
|
|
|
|
}
|
|
#endif |