12345678910111213141516171819202122232425262728 |
- using UnityEditor;
- using UnityEngine;
- namespace Mirror
- {
- [CustomPropertyDrawer(typeof(SyncVarAttribute))]
- public class SyncVarAttributeDrawer : PropertyDrawer
- {
- static readonly GUIContent syncVarIndicatorContent = new GUIContent("SyncVar", "This variable has been marked with the [SyncVar] attribute.");
- public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
- {
- Vector2 syncVarIndicatorRect = EditorStyles.miniLabel.CalcSize(syncVarIndicatorContent);
- float valueWidth = position.width - syncVarIndicatorRect.x;
- Rect valueRect = new Rect(position.x, position.y, valueWidth, position.height);
- Rect labelRect = new Rect(position.x + valueWidth, position.y, syncVarIndicatorRect.x, position.height);
- EditorGUI.PropertyField(valueRect, property, label, true);
- GUI.Label(labelRect, syncVarIndicatorContent, EditorStyles.miniLabel);
- }
- public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
- {
- return EditorGUI.GetPropertyHeight(property);
- }
- }
- }
|