Skip to content

Commit ba15ba0

Browse files
committed
Added new "Maze" Scene
1 parent d66a7c9 commit ba15ba0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+8513
-2518
lines changed

Assets/Cavern.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Cavern/Cavern.asset

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!114 &11400000
4+
MonoBehaviour:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
m_GameObject: {fileID: 0}
10+
m_Enabled: 1
11+
m_EditorHideFlags: 0
12+
m_Script: {fileID: 11500000, guid: 9d1514134bc4fbd41bb739b1b9a49231, type: 3}
13+
m_Name: Cavern
14+
m_EditorClassIdentifier:
15+
m_DefaultSprite: {fileID: 21300000, guid: a75449e9e8546574cb08a89c74c9c5e7, type: 3}
16+
m_DefaultGameObject: {fileID: 0}
17+
m_DefaultColliderType: 1
18+
m_TilingRules:
19+
- m_Neighbors: 0000000002000000000000000100000002000000000000000100000000000000
20+
m_Sprites:
21+
- {fileID: 21300002, guid: a75449e9e8546574cb08a89c74c9c5e7, type: 3}
22+
m_GameObject: {fileID: 0}
23+
m_AnimationSpeed: 1
24+
m_PerlinScale: 0.5
25+
m_RuleTransform: 1
26+
m_Output: 0
27+
m_ColliderType: 1
28+
m_RandomTransform: 0
29+
- m_Neighbors: 0000000002000000000000000200000002000000000000000100000000000000
30+
m_Sprites:
31+
- {fileID: 21300004, guid: a75449e9e8546574cb08a89c74c9c5e7, type: 3}
32+
m_GameObject: {fileID: 0}
33+
m_AnimationSpeed: 1
34+
m_PerlinScale: 0.5
35+
m_RuleTransform: 1
36+
m_Output: 0
37+
m_ColliderType: 1
38+
m_RandomTransform: 0

Assets/Cavern/Cavern.asset.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Cavern/Cavern.png

378 Bytes
Loading

Assets/Cavern/Cavern.png.meta

+162
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor2d.cs

+3-6
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,9 @@ public override void OnInspectorGUI()
141141
EditorGUILayout.PropertyField(m_LayerMask, s_Styles.m_LayerMask);
142142
EditorGUILayout.PropertyField(m_UseGeometry);
143143

144-
if ((CollectObjects2d)m_CollectObjects.enumValueIndex == CollectObjects2d.Grid)
145-
{
146-
EditorGUILayout.Space();
147-
EditorGUILayout.PropertyField(m_OverrideByGrid);
148-
EditorGUILayout.PropertyField(m_UseMeshPrefab);
149-
}
144+
EditorGUILayout.Space();
145+
EditorGUILayout.PropertyField(m_OverrideByGrid);
146+
EditorGUILayout.PropertyField(m_UseMeshPrefab);
150147

151148
EditorGUILayout.Space();
152149

Assets/NavMeshComponents/Scripts/NavMeshBuilder2d.cs

+8-7
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,13 @@ internal static void CollectGridSources(List<NavMeshBuildSource> sources, int de
4848
{
4949
continue;
5050
}
51-
52-
Debug.Log($"Walkable Bounds [{tilemap.name}]: {tilemap.localBounds}");
53-
var box = BoxBoundSource(NavMeshSurface2d.GetWorldBounds(tilemap.transform.localToWorldMatrix, tilemap.localBounds));
54-
box.area = defaultArea;
55-
sources.Add(box);
56-
51+
if(defaultArea != 1) //if it is walkable
52+
{
53+
Debug.Log($"Walkable Bounds [{tilemap.name}]: {tilemap.localBounds}");
54+
var box = BoxBoundSource(NavMeshSurface2d.GetWorldBounds(tilemap.transform.localToWorldMatrix, tilemap.localBounds));
55+
box.area = defaultArea;
56+
sources.Add(box);
57+
}
5758
int area = defaultArea;
5859
var modifier = tilemap.GetComponent<NavMeshModifier>();
5960
if (modifier != null && modifier.overrideArea)
@@ -104,7 +105,7 @@ static private void CollectTileSources(List<NavMeshBuildSource> sources, Tilemap
104105
if (!builder.overrideByGrid && tilemap.GetColliderType(vec3int) == Tile.ColliderType.Sprite)
105106
{
106107
mesh = builder.GetMesh(tilemap.GetSprite(vec3int));
107-
src.transform = tilemap.GetTransformMatrix(vec3int) * Matrix4x4.Translate(tilemap.GetCellCenterWorld(vec3int));
108+
src.transform = Matrix4x4.Translate(tilemap.GetCellCenterWorld(vec3int)) * tilemap.GetTransformMatrix(vec3int);
108109
src.sourceObject = mesh;
109110
sources.Add(src);
110111
}

Assets/NavMeshComponents/Scripts/NavMeshSurface2d.cs

+37-43
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ public enum CollectObjects2d
1313
All = 0,
1414
Volume = 1,
1515
Children = 2,
16-
Grid = 3,
1716
}
1817

1918
[ExecuteAlways]
@@ -331,12 +330,9 @@ List<NavMeshBuildSource> CollectSources()
331330
UnityEditor.AI.NavMeshBuilder.CollectSourcesInStage(
332331
worldBounds, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, gameObject.scene, sources);
333332
}
334-
if (m_CollectObjects == CollectObjects2d.Grid)
335-
{
336-
UnityEditor.AI.NavMeshBuilder.CollectSourcesInStage(
337-
transform, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, gameObject.scene, sources);
338-
NavMeshBuilder2d.CollectGridSources(sources, m_DefaultArea, m_LayerMask, m_OverrideByGrid ,m_UseMeshPrefab);
339-
}
333+
334+
NavMeshBuilder2d.CollectGridSources(sources, m_DefaultArea, m_LayerMask, m_OverrideByGrid ,m_UseMeshPrefab);
335+
340336
}
341337
else
342338
#endif
@@ -355,11 +351,8 @@ List<NavMeshBuildSource> CollectSources()
355351
var worldBounds = GetWorldBounds(localToWorld, new Bounds(m_Center, m_Size));
356352
NavMeshBuilder.CollectSources(worldBounds, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, sources);
357353
}
358-
if (m_CollectObjects == CollectObjects2d.Grid)
359-
{
360-
NavMeshBuilder.CollectSources(transform, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, sources);
361-
NavMeshBuilder2d.CollectGridSources(sources, m_DefaultArea, m_LayerMask, m_OverrideByGrid, m_UseMeshPrefab);
362-
}
354+
355+
NavMeshBuilder2d.CollectGridSources(sources, m_DefaultArea, m_LayerMask, m_OverrideByGrid, m_UseMeshPrefab);
363356
}
364357
if (m_IgnoreNavMeshAgent)
365358
sources.RemoveAll((x) => (x.component != null && x.component.gameObject.GetComponent<NavMeshAgent>() != null));
@@ -393,44 +386,25 @@ Bounds CalculateWorldBounds(List<NavMeshBuildSource> sources)
393386
Matrix4x4 worldToLocal = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one);
394387
worldToLocal = worldToLocal.inverse;
395388

396-
if (m_CollectObjects == CollectObjects2d.Grid)
397-
{
398-
var grid = FindObjectOfType<Grid>();
399-
var tilemaps = grid.GetComponentsInChildren<Tilemap>();
400-
if (tilemaps == null || tilemaps.Length < 1)
401-
{
402-
throw new NullReferenceException("Add at least one tilemap");
403-
}
404-
var bounds = new Bounds();
405-
foreach(var tilemap in tilemaps)
406-
{
407-
//Debug.Log($"From Local Bounds [{tilemap.name}]: {tilemap.localBounds}");
408-
var lbounds = GetWorldBounds(worldToLocal* tilemap.transform.localToWorldMatrix, tilemap.localBounds);
409-
bounds.Encapsulate(lbounds);
410-
//Debug.Log($"To World Bounds: {bounds}");
411-
}
412-
bounds.Expand(0.1f);
413-
return bounds;
414-
}
389+
var result = CalculateGridWorldBounds(worldToLocal);
415390

416-
var result = new Bounds();
417391
foreach (var src in sources)
418392
{
419393
switch (src.shape)
420394
{
421395
case NavMeshBuildSourceShape.Mesh:
422-
{
423-
var m = src.sourceObject as Mesh;
424-
result.Encapsulate(GetWorldBounds(worldToLocal * src.transform, m.bounds));
425-
break;
426-
}
396+
{
397+
var m = src.sourceObject as Mesh;
398+
result.Encapsulate(GetWorldBounds(worldToLocal * src.transform, m.bounds));
399+
break;
400+
}
427401
case NavMeshBuildSourceShape.Terrain:
428-
{
429-
// Terrain pivot is lower/left corner - shift bounds accordingly
430-
var t = src.sourceObject as TerrainData;
431-
result.Encapsulate(GetWorldBounds(worldToLocal * src.transform, new Bounds(0.5f * t.size, t.size)));
432-
break;
433-
}
402+
{
403+
// Terrain pivot is lower/left corner - shift bounds accordingly
404+
var t = src.sourceObject as TerrainData;
405+
result.Encapsulate(GetWorldBounds(worldToLocal * src.transform, new Bounds(0.5f * t.size, t.size)));
406+
break;
407+
}
434408
case NavMeshBuildSourceShape.Box:
435409
case NavMeshBuildSourceShape.Sphere:
436410
case NavMeshBuildSourceShape.Capsule:
@@ -444,6 +418,26 @@ Bounds CalculateWorldBounds(List<NavMeshBuildSource> sources)
444418
return result;
445419
}
446420

421+
private static Bounds CalculateGridWorldBounds(Matrix4x4 worldToLocal)
422+
{
423+
var grid = FindObjectOfType<Grid>();
424+
var tilemaps = grid.GetComponentsInChildren<Tilemap>();
425+
if (tilemaps == null || tilemaps.Length < 1)
426+
{
427+
throw new NullReferenceException("Add at least one tilemap");
428+
}
429+
var bounds = new Bounds();
430+
foreach (var tilemap in tilemaps)
431+
{
432+
//Debug.Log($"From Local Bounds [{tilemap.name}]: {tilemap.localBounds}");
433+
var lbounds = GetWorldBounds(worldToLocal * tilemap.transform.localToWorldMatrix, tilemap.localBounds);
434+
bounds.Encapsulate(lbounds);
435+
//Debug.Log($"To World Bounds: {bounds}");
436+
}
437+
bounds.Expand(0.1f);
438+
return bounds;
439+
}
440+
447441
bool HasTransformChanged()
448442
{
449443
if (m_LastPosition != transform.position) return true;

Assets/NavMeshExtras.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)