我正在尝试创建自定义检查器。即使我在自定义检查器中更改了值,这些值也会自动重置。
以下是我的自定义检查器,
[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类实现MonoBehavior
和IMovePlayer
public class MovePlayer : MonoBehaviour, IMovePlayer
{
public float speed { set; get; } = 2f;
}
界面如下,
public interface IMovePlayer
{
float speed { set; get; }
}
不幸的是,即使我更改了Inspector中的值,每次也会重置这些值。我想念什么?
答案 0 :(得分:3)
速度是属性而不是字段。尝试更改:
public float speed { set; get; } = 2f;
到
public float _speed = 2f;
public float speed {
set { _speed = value; }
get => _speed;
}