0

尽管很有意义,但我在使用脚本时尝试使用接口,如下所示:

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;
}

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

旁注,我不是专门为接口使用 getter / setter,还用于一些验证等。

谢谢!

4

1 回答 1

1

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

public class TestConsumable : MonoBehaviour, IConsumable
{
[SerializeField]
private Sprite icon;
public Sprite Icon { get { return icon; } set { icon = value; } }    
}
于 2015-04-06T19:47:23.970 回答