using UnityEngine;
using System.Collections;
public class myRange : PropertyAttribute {
public float max;
public float min;
public myRange(float min,float max )
{
this.max = max;
this.min = min;
}
}
using UnityEngine;
using System.Collections;
using UnityEditor;
[CustomPropertyDrawer(typeof(myRange))]
public class myRangeEditor : PropertyDrawer {
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
// First get the attribute since it contains the range for the slider
myRange range = attribute as myRange;
// Now draw the property as a Slider or an IntSlider based on whether it's a float or integer.
if (property.propertyType == SerializedPropertyType.Float)
EditorGUI.Slider(position, property, range.min, range.max, "我是滑动条");
else if (property.propertyType == SerializedPropertyType.Integer)
EditorGUI.IntSlider(position, property, (int)range.min, (int)range.max, "我是滑动条");
//else
// EditorGUI.LabelField(position, label.text, "Use Range with float or int.");
}
}
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
[myRange(0f,10f)]
public float 英雄血量;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
再把Test.cs挂在GameObject物品上