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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -1,8 +1,11 @@
using UnityEngine;
using System;
using System.Linq;
using System.Collections.Generic;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace IsoTools {
[ExecuteInEditMode]
public class IsoWorld : MonoBehaviour {
@@ -118,17 +121,22 @@ namespace IsoTools {
// ------------------------------------------------------------------------
public void MarkDirty() {
_dirty = true;
MarkEditorWorldDirty();
}
// ------------------------------------------------------------------------
/// <summary>
/// Marks world for resorting one object only
/// Marks world for resorting.
/// </summary>
/// <param name="obj">Isometric object for resorting.</param>
// ------------------------------------------------------------------------
public void MarkDirty(IsoObject obj) {
if ( obj && obj.Sorting ) {
_dirty = true;
var renderer = obj.GetComponent<Renderer>();
if ( renderer && renderer.isVisible ) {
_dirty = true;
MarkEditorWorldDirty();
}
}
}
@@ -202,6 +210,14 @@ namespace IsoTools {
throw new UnityException("IsoWorld. TileType is wrong!");
}
}
void MarkEditorWorldDirty() {
#if UNITY_EDITOR
if ( Application.isEditor ) {
EditorUtility.SetDirty(this);
}
#endif
}
void FixAllTransforms() {
ApplyToAllIsoObjects(obj => obj.FixTransform());
@@ -254,15 +270,18 @@ namespace IsoTools {
_objects.Clear();
_objects.Capacity = iso_objects.Length;
Vector3 min_num_pos = -Vector3.one;
Vector3 max_num_pos = Vector3.one;
var min_num_pos = Vector3.zero;
var max_num_pos = Vector3.one;
foreach ( var obj in iso_objects ) {
var obj_max_size = IsoUtils.Vec3Max(Vector3.one, obj.Size);
var obj_min_num_pos = IsoUtils.Vec3DivFloor(obj.Position, SectorSize);
var obj_max_num_pos = IsoUtils.Vec3DivCeil(obj.Position + obj_max_size, SectorSize);
min_num_pos = IsoUtils.Vec3Min(min_num_pos, obj_min_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));
var renderer = obj.GetComponent<Renderer>();
if ( renderer && renderer.isVisible ) {
var obj_max_size = IsoUtils.Vec3Max(Vector3.one, obj.Size);
var obj_min_num_pos = IsoUtils.Vec3DivFloor(obj.Position, SectorSize);
var obj_max_num_pos = IsoUtils.Vec3DivCeil(obj.Position + obj_max_size, SectorSize);
min_num_pos = IsoUtils.Vec3Min(min_num_pos, obj_min_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));
}
}
_sectorsNum = max_num_pos - 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 ) {
depth = PlaceObject(info, depth);
}
_objects.Clear();
_depends.Clear();
}
void PlaceObject(IsoObject obj, float depth) {

View File

@@ -17,7 +17,7 @@ Global
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
GlobalSection(MonoDevelopProperties) = preSolution
StartupItem = Assembly-CSharp.csproj
Policies = $0
$0.TextStylePolicy = $1

View File

@@ -17,7 +17,7 @@ Global
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
GlobalSection(MonoDevelopProperties) = preSolution
StartupItem = Assembly-CSharp.csproj
Policies = $0
$0.TextStylePolicy = $1

View File

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