Unity-WebSocket/Assets/FishNet/Runtime/Generated/Component/TickSmoothing/Editor/MovementSettingsDrawer.cs
2025-06-28 11:28:54 +03:30

51 lines
2.3 KiB
C#

#if UNITY_EDITOR
using FishNet.Object;
using GameKit.Dependencies.Utilities;
using UnityEditor;
using UnityEngine;
namespace FishNet.Component.Transforming.Beta.Editing
{
[CustomPropertyDrawer(typeof(MovementSettings))]
public class MovementSettingsDrawer : PropertyDrawer
{
private PropertyDrawerTool _propertyDrawer;
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(position, label, property);
_propertyDrawer = new(position);
//_propertyDrawer.DrawLabel(label, FontStyle.Bold);
EditorGUI.indentLevel++;
SerializedProperty enableTeleport = property.FindPropertyRelative("EnableTeleport");
SerializedProperty teleportThreshold = property.FindPropertyRelative("TeleportThreshold");
SerializedProperty adaptiveInterpolationValue = property.FindPropertyRelative("AdaptiveInterpolationValue");
SerializedProperty interpolationValue = property.FindPropertyRelative("InterpolationValue");
SerializedProperty smoothedProperties = property.FindPropertyRelative("SmoothedProperties");
SerializedProperty snapNonSmoothedProperties = property.FindPropertyRelative("SnapNonSmoothedProperties");
_propertyDrawer.DrawProperty(enableTeleport, "Enable Teleport");
if (enableTeleport.boolValue == true)
_propertyDrawer.DrawProperty(teleportThreshold, "Teleport Threshold", indent: 1);
_propertyDrawer.DrawProperty(adaptiveInterpolationValue, "Adaptive Interpolation");
if ((AdaptiveInterpolationType)adaptiveInterpolationValue.intValue == AdaptiveInterpolationType.Off)
_propertyDrawer.DrawProperty(interpolationValue, "Interpolation Value", indent: 1);
_propertyDrawer.DrawProperty(smoothedProperties, "Smoothed Properties");
if ((uint)smoothedProperties.intValue != (uint)TransformPropertiesFlag.Everything)
_propertyDrawer.DrawProperty(snapNonSmoothedProperties, "Snap Non-Smoothed Properties", indent: 1);
_propertyDrawer.SetIndentToStarting();
EditorGUI.EndProperty();
}
public override float GetPropertyHeight(SerializedProperty property, GUIContent label) => _propertyDrawer.GetPropertyHeight();
}
}
#endif