SerializedProperty mesh, material; private void OnEnable() { mesh = serializedObject.FindProperty("mesh"); material = serializedObject.FindProperty("material"); } public override void OnInspectorGUI() { serializedObject.Update(); Accessory accessory = (Accessory)target; EditorGUILayout.PropertyField(mesh); EditorGUILayout.PropertyField(material); if (GUILayout.Button("Refresh Accessory Mesh")) { accessory.ChangeAccessory(mesh, material); // this is where the error is } serializedObject.ApplyModifiedProperties(); }