unity3d Unity -接口所需的公共浮动未出现在inspector - float value {get;set; }

klh5stk1  于 2023-05-01  发布在  其他
关注(0)|答案(2)|浏览(124)

我有一个浮点值,我想在检查器中编辑。该值是接口在类上所必需的。
该接口要求我显式地声明访问器{ get; set; },但是当显式地设置这些访问器时,该值不会出现在Inspector中。
[SerializeField]不起作用。

public interface IValueInterface
{
    float value { get; set; }
}
using UnityEngine;
public class MyClass : MonoBehaviour, IValueInterface
{
    public float nourishmentValue { get; set; } = 0.1f;
}
2fjabf4q

2fjabf4q1#

您还可以使用- field将属性(SerializeField)应用于后台字段(由auto属性创建的字段):- 在属性之前。

using UnityEngine;
public class MyClass : MonoBehaviour, IValueInterface
{
   [field: SerializeField]
   public float nourishmentValue { get; set; } = 0.1f;
}
8i9zcol2

8i9zcol22#

Unity在inspector中不显示属性。相反,您可以使用backing field:

using UnityEngine;
public class MyClass : MonoBehaviour, IValueInterface
{
    [SerializeField]
    private float NourishmentValue = 0.1f;
    public float nourishmentValue
    {
        get => NourishmentValue;
        set => NourishmentValue = value;
    }
}

其他类使用属性nourishmentValue,但实际值存储在字段NourishmentValue中。

相关问题