尽管我在使用脚本时尝试使用接口是有意义的,例如:
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,而是用于某些验证等。
谢谢!
答案 0 :(得分:1)
默认情况下,带有get / set的属性不会显示在编辑器中。您需要使用“[SerializeField]”属性标记它们,以便在编辑器中使用它们。原因是统一只会显示它可以保存的类型。
public class TestConsumable : MonoBehaviour, IConsumable
{
[SerializeField]
private Sprite icon;
public Sprite Icon { get { return icon; } set { icon = value; } }
}