在 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; } }
}
我在使用脚本时尝试使用界面,就像这样:
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; } }
}