mirror of
https://github.com/BlackMATov/unity-iso-tools.git
synced 2025-12-15 09:16:08 +07:00
Fix incorrect sorting after Undo in Editor mode
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,6 @@
|
|||||||
|
.vs/*
|
||||||
|
.vscode/*
|
||||||
|
|
||||||
obj/*
|
obj/*
|
||||||
Temp/*
|
Temp/*
|
||||||
Library/*
|
Library/*
|
||||||
|
|||||||
@@ -5,7 +5,12 @@ namespace IsoTools.Internal {
|
|||||||
public float min;
|
public float min;
|
||||||
public float max;
|
public float max;
|
||||||
|
|
||||||
public IsoMinMax(float min, float max) : this() {
|
public IsoMinMax(float minmax) : this() {
|
||||||
|
this.min = minmax;
|
||||||
|
this.max = minmax;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IsoMinMax(float min, float max) : this() {
|
||||||
this.min = min;
|
this.min = min;
|
||||||
this.max = max;
|
this.max = max;
|
||||||
}
|
}
|
||||||
@@ -23,7 +28,12 @@ namespace IsoTools.Internal {
|
|||||||
get { return min + (max - min) * 0.5f; }
|
get { return min + (max - min) * 0.5f; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Set(float min, float max) {
|
public void Set(float minmax) {
|
||||||
|
this.min = minmax;
|
||||||
|
this.max = minmax;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Set(float min, float max) {
|
||||||
this.min = min;
|
this.min = min;
|
||||||
this.max = max;
|
this.max = max;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ namespace IsoTools.Internal {
|
|||||||
bool UpdateIsoObjectBounds3d(IsoObject iso_object) {
|
bool UpdateIsoObjectBounds3d(IsoObject iso_object) {
|
||||||
var minmax3d = IsoObjectMinMax3D(iso_object);
|
var minmax3d = IsoObjectMinMax3D(iso_object);
|
||||||
var offset3d = iso_object.Internal.Transform.position.z - minmax3d.center;
|
var offset3d = iso_object.Internal.Transform.position.z - minmax3d.center;
|
||||||
if ( iso_object.Internal.MinMax3d.Approximately(minmax3d) ||
|
if ( !iso_object.Internal.MinMax3d.Approximately(minmax3d) ||
|
||||||
!Mathf.Approximately(iso_object.Internal.Offset3d, offset3d) )
|
!Mathf.Approximately(iso_object.Internal.Offset3d, offset3d) )
|
||||||
{
|
{
|
||||||
iso_object.Internal.MinMax3d = minmax3d;
|
iso_object.Internal.MinMax3d = minmax3d;
|
||||||
@@ -117,9 +117,13 @@ namespace IsoTools.Internal {
|
|||||||
for ( int i = 0, e = renderers.Count; i < e; ++i ) {
|
for ( int i = 0, e = renderers.Count; i < e; ++i ) {
|
||||||
var renderer = renderers[i];
|
var renderer = renderers[i];
|
||||||
if ( renderer && renderer.enabled ) {
|
if ( renderer && renderer.enabled ) {
|
||||||
|
if ( renderer is ParticleSystemRenderer ) {
|
||||||
|
// ParticleSystemRenderer.bound returns incorrect bounds after Undo in Editor
|
||||||
|
continue;
|
||||||
|
}
|
||||||
var bounds = renderer.bounds;
|
var bounds = renderer.bounds;
|
||||||
var extents = bounds.extents;
|
var extents = bounds.extents;
|
||||||
if ( extents.x > 0.0f || extents.y > 0.0f || extents.z > 0.0f ) {
|
if ( extents.z > 0.0f ) {
|
||||||
var center = bounds.center.z;
|
var center = bounds.center.z;
|
||||||
var minbounds = center - extents.z;
|
var minbounds = center - extents.z;
|
||||||
var maxbounds = center + extents.z;
|
var maxbounds = center + extents.z;
|
||||||
@@ -137,7 +141,9 @@ namespace IsoTools.Internal {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return inited ? result : IsoMinMax.zero;
|
return inited
|
||||||
|
? result
|
||||||
|
: new IsoMinMax(iso_object.Internal.Transform.position.z);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Renderer> GetIsoObjectRenderers(IsoObject iso_object) {
|
List<Renderer> GetIsoObjectRenderers(IsoObject iso_object) {
|
||||||
|
|||||||
Reference in New Issue
Block a user