You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.1 KiB
29 lines
1.1 KiB
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);
|
|
}
|
|
}
|
|
}
|