Update: i’ve tried to fix it by myself doing as below:
NavMeshSurface
replace this:
var prefabType = UnityEditor.PrefabUtility.GetPrefabType(this);
if (prefabType == UnityEditor.PrefabType.Prefab)
with this:
var prefabType = UnityEditor.PrefabUtility.GetPrefabAssetType(this);
if (prefabType != UnityEditor.PrefabAssetType.NotAPrefab)
NavMeshSurfaceEditor
replace this:
var prefabType = PrefabUtility.GetPrefabType(navSurface);
if (prefabType == PrefabType.PrefabInstance || prefabType == PrefabType.DisconnectedPrefabInstance)
with this:
var prefabType = PrefabUtility.GetPrefabAssetType(navSurface);
if (prefabType != PrefabAssetType.NotAPrefab)
while for GetPrefabParent() i’ve simply replaced it with GetCorrespondingObjectFromSource()…
It seems to work, but i don’t know if it covers all the possible cases…
What do you think?