在Unity3D中创建自定义检查器

时间:2020-09-22 16:01:57

标签: c# unity3d

我正在尝试创建自定义检查器。即使我在自定义检查器中更改了值,这些值也会自动重置。

以下是我的自定义检查器,

[CustomEditor(typeof(MovePlayer))]
public class CustomInspector : Editor
{
    
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        MovePlayer move = (MovePlayer) target;
        GUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("ISpeed: ");
        move.speed = EditorGUILayout.FloatField(move.speed);
        GUILayout.EndHorizontal(); 
    }
}

MovePlayer类实现MonoBehaviorIMovePlayer

public class MovePlayer : MonoBehaviour, IMovePlayer
{
    public float speed { set; get; } = 2f;

}

界面如下,

public interface IMovePlayer
{
   
    float speed { set; get; }
}

不幸的是,即使我更改了Inspector中的值,每次也会重置这些值。我想念什么?

1 个答案:

答案 0 :(得分:3)

速度是属性而不是字段。尝试更改:

 public float speed { set; get; } = 2f;

public float _speed = 2f;
public float speed { 
     set { _speed = value; }
     get => _speed; 
}
相关问题