unity 继承Image 简单组件

简单记录一下
参考文章 https://blog.csdn.net/duzixi/article/details/78013295
本来是想继承image,像button里Transition的Sprite Swap类型一样,有个置灰图

public class SwapImage : Image
{
    
    

    public Sprite graySprite;

    public bool isGray;
   
}

但是之后发现编辑器上并不显示我的public的属性,搜了一下才知道还需要对应的ImageEditor。

[CustomEditor(typeof(SwapImage))] 
public class SwapImageEditor : ImageEditor
{
    
    
    SerializedProperty graySprite;
    SerializedProperty isGray;

    protected override void OnEnable()
    {
    
    
        base.OnEnable();
        graySprite = serializedObject.FindProperty(nameof(SwapImage.graySprite));
        isGray = serializedObject.FindProperty(nameof(SwapImage.isGray));
    }

    public override void OnInspectorGUI()
    {
    
    
        base.OnInspectorGUI();
        // DrawDefaultInspector(); 
        serializedObject.Update();

        EditorGUILayout.PropertyField(graySprite);
        EditorGUILayout.PropertyField(isGray);
        serializedObject.ApplyModifiedProperties();
    }

}

最后请教一下,我想在更改isGray的时候刷新ui,除了在OnEnable Start OnValidate里设置图片,还有更简单的方法吗?

猜你喜欢

转载自blog.csdn.net/weixin_38926960/article/details/129398078