在Unity Editor中设置属性

时间:2015-04-06 19:32:43

标签: unity3d unity3d-editor

尽管我在使用脚本时尝试使用接口是有意义的,例如:

public interface IConsumable
{
    Sprite Icon { get; set; }
}

然而,当使用这种方法时,任何实现接口的类都不会在检查器中显示这些属性,我最终会得到这样的结果:

public class TestConsumable : MonoBehaviour, IConsumable
{
    public Sprite Icon { get { return IconSprite; } set { IconSprite = value; } }

    // Hack just to show up in Editor
    public Sprite IconSprite;
}

这对我来说没有意义,我希望有更好的解决方案。

Side-note ,我不是专门为接口使用getter / setter,而是用于某些验证等。

谢谢!

1 个答案:

答案 0 :(得分:1)

默认情况下,带有get / set的属性不会显示在编辑器中。您需要使用“[SerializeField]”属性标记它们,以便在编辑器中使用它们。原因是统一只会显示它可以保存的类型。

public class TestConsumable : MonoBehaviour, IConsumable
{
[SerializeField]
private Sprite icon;
public Sprite Icon { get { return icon; } set { icon = value; } }    
}