This commit is contained in:
BlackMATov
2021-01-04 00:19:26 +07:00
parent da2ae02c89
commit cadefb411c
2 changed files with 15 additions and 11 deletions

View File

@@ -32,13 +32,9 @@ namespace IsoTools.Internal {
} }
public static bool DoFoldoutHeaderGroup(bool foldout, string header, System.Action act) { public static bool DoFoldoutHeaderGroup(bool foldout, string header, System.Action act) {
foldout = EditorGUILayout.BeginFoldoutHeaderGroup(foldout, header); foldout = EditorGUILayout.Foldout(foldout, header);
try { if ( foldout ) {
if ( foldout ) { act();
act();
}
} finally {
EditorGUILayout.EndFoldoutHeaderGroup();
} }
return foldout; return foldout;
} }
@@ -74,6 +70,14 @@ namespace IsoTools.Internal {
} }
} }
public static bool IsPrefabInstance(GameObject go) {
#if UNITY_2018_3_OR_NEWER
return PrefabUtility.IsPartOfAnyPrefab(go);
#else
return PrefabUtility.GetPrefabType(go) != PrefabType.None;
#endif
}
// --------------------------------------------------------------------- // ---------------------------------------------------------------------
// //
// Editor // Editor
@@ -145,7 +149,7 @@ namespace IsoTools.Internal {
var result_p_z = iso_orig_z + delta; var result_p_z = iso_orig_z + delta;
if ( move ) { if ( move ) {
iso_object.positionZ = IsoUtils.FloatBeautifier(result_p_z); iso_object.positionZ = IsoUtils.FloatBeautifier(result_p_z);
if ( PrefabUtility.GetPrefabInstanceStatus(iso_object) != PrefabInstanceStatus.NotAPrefab ) { if ( IsoEditorUtils.IsPrefabInstance(iso_object.gameObject) ) {
PrefabUtility.RecordPrefabInstancePropertyModifications(iso_object); PrefabUtility.RecordPrefabInstancePropertyModifications(iso_object);
} }
} }
@@ -249,7 +253,7 @@ namespace IsoTools.Internal {
var result_pos_iso = iso_orig_p + iso_delta; var result_pos_iso = iso_orig_p + iso_delta;
if ( move ) { if ( move ) {
iso_object.position = IsoUtils.VectorBeautifier(result_pos_iso); iso_object.position = IsoUtils.VectorBeautifier(result_pos_iso);
if ( PrefabUtility.GetPrefabInstanceStatus(iso_object) != PrefabInstanceStatus.NotAPrefab ) { if ( IsoEditorUtils.IsPrefabInstance(iso_object.gameObject) ) {
PrefabUtility.RecordPrefabInstancePropertyModifications(iso_object); PrefabUtility.RecordPrefabInstancePropertyModifications(iso_object);
} }
} }

View File

@@ -106,7 +106,7 @@ namespace IsoTools.Internal {
foreach ( var iso_object in _isoObjects[iso_world] ) { foreach ( var iso_object in _isoObjects[iso_world] ) {
iso_object.FixIsoPosition(); iso_object.FixIsoPosition();
iso_object.positionXY = IsoUtils.VectorBeautifier(iso_object.positionXY); iso_object.positionXY = IsoUtils.VectorBeautifier(iso_object.positionXY);
if ( PrefabUtility.GetPrefabInstanceStatus(iso_object) != PrefabInstanceStatus.NotAPrefab ) { if ( IsoEditorUtils.IsPrefabInstance(iso_object.gameObject) ) {
PrefabUtility.RecordPrefabInstancePropertyModifications(iso_object); PrefabUtility.RecordPrefabInstancePropertyModifications(iso_object);
} }
} }
@@ -137,7 +137,7 @@ namespace IsoTools.Internal {
foreach ( var iso_object in _isoObjects[iso_world] ) { foreach ( var iso_object in _isoObjects[iso_world] ) {
iso_object.FixIsoPosition(); iso_object.FixIsoPosition();
iso_object.positionXY = IsoUtils.VectorBeautifier(iso_object.positionXY); iso_object.positionXY = IsoUtils.VectorBeautifier(iso_object.positionXY);
if ( PrefabUtility.GetPrefabInstanceStatus(iso_object) != PrefabInstanceStatus.NotAPrefab ) { if ( IsoEditorUtils.IsPrefabInstance(iso_object.gameObject) ) {
PrefabUtility.RecordPrefabInstancePropertyModifications(iso_object); PrefabUtility.RecordPrefabInstancePropertyModifications(iso_object);
} }
} }