You can't do this with ObjectField because Arrays are telling the editor that it is of type Tile in MyScriptEditornot Objects. Instead, castYou need to use a Tile arrayPropertyField instead of an ObjectField, which is more generic and use typeof for the arraycan handle properties of any type.
typeof(Tile[]) Corrected code:
[CustomEditor(typeof(TileMyTile))] public class MyScriptEditor : Editor { override public void OnInspectorGUI() { var tile = target as Tile;MyTile; tile.variety = EditorGUILayout.Toggle("Hide Fields", tile.variety); if (tile.variety) { tile.varietyTilesSerializedProperty tileProperty = serializedObject.FindProperty(Tile[]"varietyTiles"); if(EditorGUILayout.ObjectFieldPropertyField("Tile", tiletileProperty, typeof(Tile[]includeChildren:true),) allowSceneObjects: true { serializedObject.ApplyModifiedProperties(); } } } }