29 lines
1.1 KiB
C#
29 lines
1.1 KiB
C#
|
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);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|