在 Unity 编辑器中设置属性

Setting Properties in Unity 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;
}

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

旁注,我不是专门为接口使用 getters / setters,但也用于一些验证等

谢谢!

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

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