sorting visible only

This commit is contained in:
2015-03-07 22:34:19 +06:00
parent 8a66813d72
commit 4690117cb0
17 changed files with 98871 additions and 117610 deletions

View File

@@ -20,6 +20,9 @@ TextureImporter:
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 1024
@@ -30,6 +33,7 @@ TextureImporter:
wrapMode: 1 wrapMode: 1
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
rGBM: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 1 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
@@ -43,5 +47,7 @@ TextureImporter:
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
sprites: [] sprites: []
spritePackingTag: spritePackingTag: objs
userData: userData:
assetBundleName:
assetBundleVariant:

View File

@@ -20,6 +20,9 @@ TextureImporter:
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 1024
@@ -30,6 +33,7 @@ TextureImporter:
wrapMode: 1 wrapMode: 1
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
rGBM: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 1 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
@@ -43,5 +47,7 @@ TextureImporter:
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
sprites: [] sprites: []
spritePackingTag: spritePackingTag: objs
userData: userData:
assetBundleName:
assetBundleVariant:

View File

@@ -20,6 +20,9 @@ TextureImporter:
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 1024
@@ -30,6 +33,7 @@ TextureImporter:
wrapMode: 1 wrapMode: 1
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
rGBM: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 1 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
@@ -43,5 +47,7 @@ TextureImporter:
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
sprites: [] sprites: []
spritePackingTag: spritePackingTag: objs
userData: userData:
assetBundleName:
assetBundleVariant:

View File

@@ -20,6 +20,9 @@ TextureImporter:
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 1024
@@ -30,6 +33,7 @@ TextureImporter:
wrapMode: 1 wrapMode: 1
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
rGBM: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 1 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
@@ -43,5 +47,7 @@ TextureImporter:
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
sprites: [] sprites: []
spritePackingTag: spritePackingTag: objs
userData: userData:
assetBundleName:
assetBundleVariant:

View File

@@ -21,6 +21,9 @@ TextureImporter:
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 1024
@@ -31,6 +34,7 @@ TextureImporter:
wrapMode: 1 wrapMode: 1
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
rGBM: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 1 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
@@ -54,5 +58,7 @@ TextureImporter:
alignment: 9 alignment: 9
pivot: {x: .5, y: .5} pivot: {x: .5, y: .5}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
spritePackingTag: spritePackingTag: objs
userData: userData:
assetBundleName:
assetBundleVariant:

View File

@@ -20,6 +20,9 @@ TextureImporter:
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 1024
@@ -30,6 +33,7 @@ TextureImporter:
wrapMode: 1 wrapMode: 1
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
rGBM: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 1 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
@@ -43,5 +47,7 @@ TextureImporter:
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
sprites: [] sprites: []
spritePackingTag: spritePackingTag: objs
userData: userData:
assetBundleName:
assetBundleVariant:

View File

@@ -21,6 +21,9 @@ TextureImporter:
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 1024
@@ -31,6 +34,7 @@ TextureImporter:
wrapMode: 1 wrapMode: 1
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
rGBM: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 1 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
@@ -54,5 +58,7 @@ TextureImporter:
alignment: 9 alignment: 9
pivot: {x: .485000014, y: .254999995} pivot: {x: .485000014, y: .254999995}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
spritePackingTag: spritePackingTag: objs
userData: userData:
assetBundleName:
assetBundleVariant:

View File

@@ -21,6 +21,9 @@ TextureImporter:
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 1024
@@ -31,6 +34,7 @@ TextureImporter:
wrapMode: 1 wrapMode: 1
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
rGBM: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 1 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
@@ -54,5 +58,7 @@ TextureImporter:
alignment: 9 alignment: 9
pivot: {x: .485000014, y: .254999995} pivot: {x: .485000014, y: .254999995}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
spritePackingTag: spritePackingTag: objs
userData: userData:
assetBundleName:
assetBundleVariant:

View File

@@ -20,6 +20,9 @@ TextureImporter:
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 1024
@@ -30,6 +33,7 @@ TextureImporter:
wrapMode: 1 wrapMode: 1
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
rGBM: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 1 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
@@ -43,5 +47,7 @@ TextureImporter:
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
sprites: [] sprites: []
spritePackingTag: spritePackingTag: objs
userData: userData:
assetBundleName:
assetBundleVariant:

View File

@@ -20,6 +20,9 @@ TextureImporter:
isReadable: 0 isReadable: 0
grayScaleToAlpha: 0 grayScaleToAlpha: 0
generateCubemap: 0 generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 8
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0 seamlessCubemap: 0
textureFormat: -3 textureFormat: -3
maxTextureSize: 1024 maxTextureSize: 1024
@@ -30,6 +33,7 @@ TextureImporter:
wrapMode: 1 wrapMode: 1
nPOTScale: 0 nPOTScale: 0
lightmap: 0 lightmap: 0
rGBM: 0
compressionQuality: 50 compressionQuality: 50
spriteMode: 1 spriteMode: 1
spriteExtrude: 1 spriteExtrude: 1
@@ -43,5 +47,7 @@ TextureImporter:
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
sprites: [] sprites: []
spritePackingTag: spritePackingTag: objs
userData: userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -137,6 +137,10 @@ namespace IsoTools {
MartDirtyIsoWorld(); MartDirtyIsoWorld();
} }
void OnBecameVisible() {
MartDirtyIsoWorld();
}
#if UNITY_EDITOR #if UNITY_EDITOR
void Update() { void Update() {
if ( Application.isEditor ) { if ( Application.isEditor ) {

View File

@@ -1,6 +1,5 @@
using UnityEngine; using UnityEngine;
using System; using System;
using System.Collections;
namespace IsoTools { namespace IsoTools {
public class IsoUtils { public class IsoUtils {

View File

@@ -1,8 +1,11 @@
using UnityEngine; using UnityEngine;
using System; using System;
using System.Linq;
using System.Collections.Generic; using System.Collections.Generic;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace IsoTools { namespace IsoTools {
[ExecuteInEditMode] [ExecuteInEditMode]
public class IsoWorld : MonoBehaviour { public class IsoWorld : MonoBehaviour {
@@ -118,17 +121,22 @@ namespace IsoTools {
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
public void MarkDirty() { public void MarkDirty() {
_dirty = true; _dirty = true;
MarkEditorWorldDirty();
} }
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
/// <summary> /// <summary>
/// Marks world for resorting one object only /// Marks world for resorting.
/// </summary> /// </summary>
/// <param name="obj">Isometric object for resorting.</param> /// <param name="obj">Isometric object for resorting.</param>
// ------------------------------------------------------------------------ // ------------------------------------------------------------------------
public void MarkDirty(IsoObject obj) { public void MarkDirty(IsoObject obj) {
if ( obj && obj.Sorting ) { if ( obj && obj.Sorting ) {
var renderer = obj.GetComponent<Renderer>();
if ( renderer && renderer.isVisible ) {
_dirty = true; _dirty = true;
MarkEditorWorldDirty();
}
} }
} }
@@ -203,6 +211,14 @@ namespace IsoTools {
} }
} }
void MarkEditorWorldDirty() {
#if UNITY_EDITOR
if ( Application.isEditor ) {
EditorUtility.SetDirty(this);
}
#endif
}
void FixAllTransforms() { void FixAllTransforms() {
ApplyToAllIsoObjects(obj => obj.FixTransform()); ApplyToAllIsoObjects(obj => obj.FixTransform());
} }
@@ -254,9 +270,11 @@ namespace IsoTools {
_objects.Clear(); _objects.Clear();
_objects.Capacity = iso_objects.Length; _objects.Capacity = iso_objects.Length;
Vector3 min_num_pos = -Vector3.one; var min_num_pos = Vector3.zero;
Vector3 max_num_pos = Vector3.one; var max_num_pos = Vector3.one;
foreach ( var obj in iso_objects ) { foreach ( var obj in iso_objects ) {
var renderer = obj.GetComponent<Renderer>();
if ( renderer && renderer.isVisible ) {
var obj_max_size = IsoUtils.Vec3Max(Vector3.one, obj.Size); var obj_max_size = IsoUtils.Vec3Max(Vector3.one, obj.Size);
var obj_min_num_pos = IsoUtils.Vec3DivFloor(obj.Position, SectorSize); var obj_min_num_pos = IsoUtils.Vec3DivFloor(obj.Position, SectorSize);
var obj_max_num_pos = IsoUtils.Vec3DivCeil(obj.Position + obj_max_size, SectorSize); var obj_max_num_pos = IsoUtils.Vec3DivCeil(obj.Position + obj_max_size, SectorSize);
@@ -264,6 +282,7 @@ namespace IsoTools {
max_num_pos = IsoUtils.Vec3Max(max_num_pos, obj_max_num_pos); max_num_pos = IsoUtils.Vec3Max(max_num_pos, obj_max_num_pos);
_objects.Add(new ObjectInfo(_objects.Count, obj, obj_min_num_pos, obj_max_num_pos)); _objects.Add(new ObjectInfo(_objects.Count, obj, obj_min_num_pos, obj_max_num_pos));
} }
}
_sectorsNum = max_num_pos - min_num_pos; _sectorsNum = max_num_pos - min_num_pos;
_sectorsMinNumPos = min_num_pos; _sectorsMinNumPos = min_num_pos;
@@ -327,7 +346,6 @@ namespace IsoTools {
} }
}); });
}); });
//Debug.LogFormat("{0} --- {1}" , obj_a.IsoObject.Position, obj_a.EndDepend - obj_a.BeginDepend);
} }
} }
@@ -342,6 +360,8 @@ namespace IsoTools {
foreach ( var info in _objects ) { foreach ( var info in _objects ) {
depth = PlaceObject(info, depth); depth = PlaceObject(info, depth);
} }
_objects.Clear();
_depends.Clear();
} }
void PlaceObject(IsoObject obj, float depth) { void PlaceObject(IsoObject obj, float depth) {

View File

@@ -2,9 +2,7 @@
<MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" PreferredExecutionTarget="MonoDevelop.Default" /> <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" PreferredExecutionTarget="MonoDevelop.Default" />
<MonoDevelop.Ide.Workbench ActiveDocument="Assets/IsoTools/Scripts/IsoWorld.cs"> <MonoDevelop.Ide.Workbench ActiveDocument="Assets/IsoTools/Scripts/IsoWorld.cs">
<Files> <Files>
<File FileName="Assets/IsoTools/Scripts/IsoObject.cs" Line="154" Column="9" /> <File FileName="Assets/IsoTools/Scripts/IsoWorld.cs" Line="273" Column="37" />
<File FileName="Assets/IsoTools/Scripts/IsoUtils.cs" Line="1" Column="1" />
<File FileName="Assets/IsoTools/Scripts/IsoWorld.cs" Line="371" Column="5" />
</Files> </Files>
</MonoDevelop.Ide.Workbench> </MonoDevelop.Ide.Workbench>
<MonoDevelop.Ide.DebuggingService.Breakpoints> <MonoDevelop.Ide.DebuggingService.Breakpoints>