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 |