fr.jeanf.scenemanagement 0.0.21 → 0.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/Runtime/AdditiveLoading/ScenarioManager.cs +19 -0
  2. package/Runtime/AdditiveLoading/WorldManager.cs +14 -1
  3. package/Runtime/DynamicLoading/VolumeSystem.cs +35 -13
  4. package/Runtime/DynamicLoading/VolumeSystemAuthoring.cs +33 -0
  5. package/Runtime/DynamicLoading/VolumeSystemAuthoring.cs.meta +2 -0
  6. package/Samples/Example/ObjectThatFollowsCamera.prefab +46 -0
  7. package/Samples/Example/ObjectThatFollowsCamera.prefab.meta +7 -0
  8. package/Samples/Example/RegionData/Region_00/Region_00.asset +38 -0
  9. package/Samples/Example/RegionData/Region_00/Region_00.asset.meta +8 -0
  10. package/Samples/Example/RegionData/Region_00/Region_00_Colliders.prefab +305 -0
  11. package/Samples/Example/RegionData/Region_00/Region_00_Colliders.prefab.meta +7 -0
  12. package/Samples/Example/RegionData/Region_00/Region_00_Volumes.prefab +213 -0
  13. package/Samples/Example/RegionData/Region_00/Region_00_Volumes.prefab.meta +7 -0
  14. package/Samples/Example/RegionData/Region_00/Scenarios/Scenario_1.asset +25 -0
  15. package/Samples/Example/RegionData/Region_00/Scenarios/Scenario_1.asset.meta +8 -0
  16. package/Samples/Example/RegionData/Region_00/Scenarios/ZoneOverride_1.asset +16 -0
  17. package/Samples/Example/RegionData/Region_00/Scenarios/ZoneOverride_1.asset.meta +8 -0
  18. package/Samples/Example/RegionData/Region_00/Scenarios/ZoneOverride_2.asset +16 -0
  19. package/Samples/Example/RegionData/Region_00/Scenarios/ZoneOverride_2.asset.meta +8 -0
  20. package/Samples/Example/RegionData/Region_00/Scenarios.meta +8 -0
  21. package/Samples/Example/RegionData/Region_00/Zones/Zone_1.asset +20 -0
  22. package/Samples/Example/RegionData/Region_00/Zones/Zone_1.asset.meta +8 -0
  23. package/Samples/Example/RegionData/Region_00/Zones/Zone_2.asset +20 -0
  24. package/Samples/Example/RegionData/Region_00/Zones/Zone_2.asset.meta +8 -0
  25. package/Samples/Example/RegionData/Region_00/Zones/Zone_3.asset +20 -0
  26. package/Samples/Example/RegionData/Region_00/Zones/Zone_3.asset.meta +8 -0
  27. package/Samples/Example/RegionData/Region_00/Zones/Zone_4.asset +20 -0
  28. package/Samples/Example/RegionData/Region_00/Zones/Zone_4.asset.meta +8 -0
  29. package/Samples/Example/RegionData/Region_00/Zones.meta +8 -0
  30. package/Samples/Example/RegionData/Region_00.meta +8 -0
  31. package/Samples/Example/RegionData.meta +8 -0
  32. package/Samples/Example/Scenes/1.unity +484 -0
  33. package/Samples/Example/Scenes/1.unity.meta +7 -0
  34. package/Samples/Example/Scenes/2.unity +484 -0
  35. package/Samples/Example/Scenes/2.unity.meta +7 -0
  36. package/Samples/Example/Scenes/3.unity +484 -0
  37. package/Samples/Example/Scenes/3.unity.meta +7 -0
  38. package/Samples/Example/Scenes/4.unity +484 -0
  39. package/Samples/Example/Scenes/4.unity.meta +7 -0
  40. package/Samples/Example/Scenes/Main.unity +3254 -0
  41. package/Samples/Example/Scenes/Main.unity.meta +7 -0
  42. package/Samples/Example/Scenes/Scenario_1.unity +234 -0
  43. package/Samples/Example/Scenes/Scenario_1.unity.meta +7 -0
  44. package/Samples/Example/Scenes/World.unity +664 -0
  45. package/Samples/Example/Scenes/World.unity.meta +7 -0
  46. package/Samples/Example/Scenes/World_depedency.unity +1717 -0
  47. package/Samples/Example/Scenes/World_depedency.unity.meta +7 -0
  48. package/Samples/Example/Scenes.meta +8 -0
  49. package/Samples/Example/VolumeSystemAuthoring.prefab +49 -0
  50. package/Samples/Example/VolumeSystemAuthoring.prefab.meta +7 -0
  51. package/Samples/Example.meta +8 -0
  52. package/Samples/Setup/AdditiveLoading.prefab +10 -45
  53. package/package.json +6 -1
@@ -17,6 +17,9 @@ namespace jeanf.scenemanagement
17
17
  [SerializeField] private VoidEventChannelSO KillAllScenariosRequest;
18
18
 
19
19
  public static Dictionary<string, List<AppType>> activeOverridesPerZone = new Dictionary<string, List<AppType>>();
20
+
21
+ public delegate void ScenarioStateChanged(string zoneId);
22
+ public static ScenarioStateChanged OnZoneOverridesChanged;
20
23
  private void Awake()
21
24
  {
22
25
  _sceneLoader = this.GetComponent<SceneLoader>();
@@ -53,6 +56,7 @@ namespace jeanf.scenemanagement
53
56
  foreach (var zoneOverride in ScenarioDictionary[scenarioID].ZoneOverrides)
54
57
  {
55
58
  activeOverridesPerZone.Add(zoneOverride.zone.id, zoneOverride.AppsForThisZone_Override);
59
+ OnZoneOverridesChanged?.Invoke(zoneOverride.zone.id);
56
60
  }
57
61
 
58
62
  foreach (var scene in CompileSceneList(scenario))
@@ -78,6 +82,7 @@ namespace jeanf.scenemanagement
78
82
  foreach (var zoneOverride in ScenarioDictionary[scenarioID].ZoneOverrides)
79
83
  {
80
84
  activeOverridesPerZone.Remove(zoneOverride.zone.id);
85
+ OnZoneOverridesChanged?.Invoke(zoneOverride.zone.id);
81
86
  }
82
87
  foreach (var scene in CompileSceneList(scenario))
83
88
  {
@@ -90,11 +95,25 @@ namespace jeanf.scenemanagement
90
95
  {
91
96
  var scenariosToRemove = _activeScenarios;
92
97
  var obsoleteScenarios = scenariosToRemove.Select(scenario => UnloadScenario(scenario.id)).Where(scenarioToUnload => scenarioToUnload is not null).ToList();
98
+ var affectedZones = new HashSet<string>();
99
+ // Collect all affected zones before unloading
100
+ foreach (var scenario in scenariosToRemove)
101
+ {
102
+ foreach (var zoneOverride in scenario.ZoneOverrides)
103
+ {
104
+ affectedZones.Add(zoneOverride.zone.id);
105
+ }
106
+ }
93
107
 
94
108
  foreach (var obsoleteScenario in obsoleteScenarios)
95
109
  {
96
110
  _activeScenarios.Remove(obsoleteScenario);
97
111
  }
112
+ // Notify for all affected zones after everything is unloaded
113
+ foreach (var zoneId in affectedZones)
114
+ {
115
+ OnZoneOverridesChanged?.Invoke(zoneId);
116
+ }
98
117
  }
99
118
 
100
119
  private static List<string> CompileSceneList(Scenario scenario)
@@ -60,6 +60,7 @@ namespace jeanf.scenemanagement
60
60
 
61
61
  ZoneContainer.broadcastObject += SetCurrentZoneAndRegion;
62
62
  ResetWorld += Init;
63
+ ScenarioManager.OnZoneOverridesChanged += OnZoneOverridesChanged;
63
64
  }
64
65
 
65
66
  private void Unsubscribe()
@@ -69,6 +70,7 @@ namespace jeanf.scenemanagement
69
70
 
70
71
  ZoneContainer.broadcastObject -= SetCurrentZoneAndRegion;
71
72
  ResetWorld -= Init;
73
+ ScenarioManager.OnZoneOverridesChanged -= OnZoneOverridesChanged;
72
74
  }
73
75
 
74
76
 
@@ -102,6 +104,16 @@ namespace jeanf.scenemanagement
102
104
  _dependenciesPerRegion.TryAdd(region.id, region.dependenciesInThisRegion);
103
105
  }
104
106
  }
107
+
108
+ // Add new method to handle zone override changes
109
+ private void OnZoneOverridesChanged(string zoneId)
110
+ {
111
+ // Only update if we're in the affected zone
112
+ if (CurrentPlayerZone != null && CurrentPlayerZone.id == zoneId)
113
+ {
114
+ PublishAppList(CurrentPlayerZone);
115
+ }
116
+ }
105
117
 
106
118
  private void SetCurrentZoneAndRegion(GameObject gameObject, Zone zone)
107
119
  {
@@ -161,12 +173,13 @@ namespace jeanf.scenemanagement
161
173
  private void PublishAppList(Zone zone)
162
174
  {
163
175
  var listToBroadcast = zone.DefaultAppsInZone;
176
+ if(isDebug) Debug.Log($"[WorldManager] Default list for zone [{zone.name}] : [{string.Join(", ", listToBroadcast)}]");
164
177
  // check if for this zone there is no override
165
178
  if (ScenarioManager.activeOverridesPerZone.TryGetValue(zone.id, out var value))
166
179
  {
167
180
  // if yes, send override list
168
181
  listToBroadcast = value;
169
- Debug.Log($"[WorldManager] List override found: [{string.Join(", ", listToBroadcast)}]");
182
+ if(isDebug) Debug.Log($"[WorldManager] List override found for zone [{zone.name}] : [{string.Join(", ", listToBroadcast)}]");
170
183
  }
171
184
 
172
185
  // broadcast list
@@ -13,12 +13,14 @@ namespace jeanf.scenemanagement
13
13
  {
14
14
  private EntityQuery _relevantQuery;
15
15
  private EntityQuery _volumeSetQuery;
16
+ private EntityQuery _configQuery;
16
17
  private NativeHashSet<Entity> _activeScenes;
17
18
  private NativeHashSet<Entity> _preloadingScenes;
18
19
 
19
- private const float PRELOAD_HORIZONTAL_MULTIPLIER = 2.0f;
20
- private const float PRELOAD_VERTICAL_MULTIPLIER = 1.0f;
21
- private const int MAX_OPERATIONS_PER_FRAME = 2;
20
+ // Default values if no config is present
21
+ private const float DEFAULT_PRELOAD_HORIZONTAL_MULTIPLIER = 1.0f;
22
+ private const float DEFAULT_PRELOAD_VERTICAL_MULTIPLIER = 1.0f;
23
+ private const int DEFAULT_MAX_OPERATIONS_PER_FRAME = 2;
22
24
 
23
25
  [BurstCompile]
24
26
  public void OnCreate(ref SystemState state)
@@ -33,6 +35,10 @@ namespace jeanf.scenemanagement
33
35
  .WithAll<VolumeBuffer>() // Changed from WithReadOnly to WithAll
34
36
  .Build(ref state);
35
37
 
38
+ _configQuery = new EntityQueryBuilder(Allocator.Temp)
39
+ .WithAll<VolumeSystemConfig>()
40
+ .Build(ref state);
41
+
36
42
  //_relevantQuery = state.GetEntityQuery(
37
43
  // ComponentType.ReadOnly<Relevant>(),
38
44
  // ComponentType.ReadOnly<LocalToWorld>());
@@ -55,6 +61,8 @@ namespace jeanf.scenemanagement
55
61
  [ReadOnly] public ComponentLookup<LocalToWorld> LocalToWorldLookup;
56
62
  [ReadOnly] public ComponentLookup<Volume> VolumeLookup;
57
63
  [ReadOnly] public BufferLookup<VolumeBuffer> VolumeBufferLookup;
64
+ [ReadOnly] public float PreloadHorizontalMultiplier; // Added this
65
+ [ReadOnly] public float PreloadVerticalMultiplier; // Added this
58
66
 
59
67
  public NativeHashSet<Entity> ContainingVolumes;
60
68
  public NativeHashSet<Entity> NearbyVolumes;
@@ -70,9 +78,9 @@ namespace jeanf.scenemanagement
70
78
  private bool IsPositionNearVolume(float3 position, float3 volumePosition, float3 range)
71
79
  {
72
80
  var distance = math.abs(position - volumePosition);
73
- bool isNearHorizontally = distance.x < range.x * PRELOAD_HORIZONTAL_MULTIPLIER &&
74
- distance.z < range.z * PRELOAD_HORIZONTAL_MULTIPLIER;
75
- bool isNearVertically = distance.y < range.y * PRELOAD_VERTICAL_MULTIPLIER;
81
+ bool isNearHorizontally = distance.x < range.x * PreloadHorizontalMultiplier &&
82
+ distance.z < range.z * PreloadHorizontalMultiplier;
83
+ bool isNearVertically = distance.y < range.y * PreloadVerticalMultiplier;
76
84
  return isNearHorizontally && isNearVertically;
77
85
  }
78
86
 
@@ -203,9 +211,21 @@ namespace jeanf.scenemanagement
203
211
  }
204
212
  }
205
213
 
206
- [BurstCompile]
207
214
  public void OnUpdate(ref SystemState state)
208
215
  {
216
+ // Get config values with fallback to defaults
217
+ float preloadHorizontalMultiplier = DEFAULT_PRELOAD_HORIZONTAL_MULTIPLIER;
218
+ float preloadVerticalMultiplier = DEFAULT_PRELOAD_VERTICAL_MULTIPLIER;
219
+ int maxOperationsPerFrame = DEFAULT_MAX_OPERATIONS_PER_FRAME;
220
+
221
+ if (_configQuery.HasSingleton<VolumeSystemConfig>())
222
+ {
223
+ var config = SystemAPI.GetSingleton<VolumeSystemConfig>();
224
+ preloadHorizontalMultiplier = config.PreloadHorizontalMultiplier;
225
+ preloadVerticalMultiplier = config.PreloadVerticalMultiplier;
226
+ maxOperationsPerFrame = config.MaxOperationsPerFrame;
227
+ }
228
+
209
229
  var relevantTransforms = _relevantQuery.ToComponentDataArray<LocalToWorld>(Allocator.TempJob);
210
230
  var playerPosition = relevantTransforms[0].Position;
211
231
  var volumeSets = _volumeSetQuery.ToEntityArray(Allocator.TempJob);
@@ -228,7 +248,9 @@ namespace jeanf.scenemanagement
228
248
  VolumeLookup = SystemAPI.GetComponentLookup<Volume>(true),
229
249
  VolumeBufferLookup = SystemAPI.GetBufferLookup<VolumeBuffer>(true),
230
250
  ContainingVolumes = containingVolumes,
231
- NearbyVolumes = nearbyVolumes
251
+ NearbyVolumes = nearbyVolumes,
252
+ PreloadHorizontalMultiplier = preloadHorizontalMultiplier,
253
+ PreloadVerticalMultiplier = preloadVerticalMultiplier
232
254
  };
233
255
 
234
256
  // Schedule scene filter job
@@ -261,7 +283,7 @@ namespace jeanf.scenemanagement
261
283
  sceneChangeHandle.Complete();
262
284
 
263
285
  // Process scene operations (this part cannot be burst compiled or parallelized due to SceneSystem calls)
264
- ProcessSceneOperations(ref state, scenesToUnload, scenesToLoad, scenesToPreload);
286
+ ProcessSceneOperations(ref state, scenesToUnload, scenesToLoad, scenesToPreload, maxOperationsPerFrame);
265
287
 
266
288
  // Cleanup
267
289
  relevantTransforms.Dispose();
@@ -275,14 +297,14 @@ namespace jeanf.scenemanagement
275
297
  scenesToPreload.Dispose();
276
298
  }
277
299
 
278
- private void ProcessSceneOperations( ref SystemState state, NativeList<Entity> scenesToUnload, NativeList<Entity> scenesToLoad, NativeList<Entity> scenesToPreload)
300
+ private void ProcessSceneOperations( ref SystemState state, NativeList<Entity> scenesToUnload, NativeList<Entity> scenesToLoad, NativeList<Entity> scenesToPreload, int maxOperationsPerFrame)
279
301
  {
280
302
  var operationsThisFrame = 0;
281
303
 
282
304
  // Process unloads first
283
305
  foreach (var scene in scenesToUnload)
284
306
  {
285
- if (operationsThisFrame >= MAX_OPERATIONS_PER_FRAME) break;
307
+ if (operationsThisFrame >= maxOperationsPerFrame) break;
286
308
 
287
309
  // Check if entity exists before trying to access it
288
310
  if (!state.EntityManager.Exists(scene))
@@ -318,7 +340,7 @@ namespace jeanf.scenemanagement
318
340
  // Process loads
319
341
  foreach (var scene in scenesToLoad)
320
342
  {
321
- if (operationsThisFrame >= MAX_OPERATIONS_PER_FRAME) break;
343
+ if (operationsThisFrame >= maxOperationsPerFrame) break;
322
344
 
323
345
  if (!state.EntityManager.Exists(scene) || !state.EntityManager.HasComponent<LevelInfo>(scene))
324
346
  {
@@ -341,7 +363,7 @@ namespace jeanf.scenemanagement
341
363
  // Process preloads
342
364
  foreach (var scene in scenesToPreload)
343
365
  {
344
- if (operationsThisFrame >= MAX_OPERATIONS_PER_FRAME) break;
366
+ if (operationsThisFrame >= maxOperationsPerFrame) break;
345
367
 
346
368
  if (!state.EntityManager.Exists(scene) || !state.EntityManager.HasComponent<LevelInfo>(scene))
347
369
  {
@@ -0,0 +1,33 @@
1
+ using Unity.Entities;
2
+ using UnityEngine;
3
+
4
+ namespace jeanf.scenemanagement
5
+ {
6
+ public class VolumeSystemAuthoring : MonoBehaviour
7
+ {
8
+ public float preloadHorizontalMultiplier = 2.0f;
9
+ public float preloadVerticalMultiplier = 1.0f;
10
+ public int maxOperationsPerFrame = 2;
11
+
12
+ class Baker : Baker<VolumeSystemAuthoring>
13
+ {
14
+ public override void Bake(VolumeSystemAuthoring authoring)
15
+ {
16
+ var entity = GetEntity(TransformUsageFlags.None);
17
+ AddComponent(entity, new VolumeSystemConfig
18
+ {
19
+ PreloadHorizontalMultiplier = authoring.preloadHorizontalMultiplier,
20
+ PreloadVerticalMultiplier = authoring.preloadVerticalMultiplier,
21
+ MaxOperationsPerFrame = authoring.maxOperationsPerFrame
22
+ });
23
+ }
24
+ }
25
+ }
26
+
27
+ public struct VolumeSystemConfig : IComponentData
28
+ {
29
+ public float PreloadHorizontalMultiplier;
30
+ public float PreloadVerticalMultiplier;
31
+ public int MaxOperationsPerFrame;
32
+ }
33
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 2
2
+ guid: d2b2dee6072489842b61e469ffe698de
@@ -0,0 +1,46 @@
1
+ %YAML 1.1
2
+ %TAG !u! tag:unity3d.com,2011:
3
+ --- !u!1 &6922798849384411428
4
+ GameObject:
5
+ m_ObjectHideFlags: 0
6
+ m_CorrespondingSourceObject: {fileID: 0}
7
+ m_PrefabInstance: {fileID: 0}
8
+ m_PrefabAsset: {fileID: 0}
9
+ serializedVersion: 6
10
+ m_Component:
11
+ - component: {fileID: 4453093168078531673}
12
+ - component: {fileID: 7398194448339198983}
13
+ m_Layer: 0
14
+ m_Name: ObjectThatFollowsCamera
15
+ m_TagString: Untagged
16
+ m_Icon: {fileID: 0}
17
+ m_NavMeshLayer: 0
18
+ m_StaticEditorFlags: 0
19
+ m_IsActive: 1
20
+ --- !u!4 &4453093168078531673
21
+ Transform:
22
+ m_ObjectHideFlags: 0
23
+ m_CorrespondingSourceObject: {fileID: 0}
24
+ m_PrefabInstance: {fileID: 0}
25
+ m_PrefabAsset: {fileID: 0}
26
+ m_GameObject: {fileID: 6922798849384411428}
27
+ serializedVersion: 2
28
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
29
+ m_LocalPosition: {x: 0, y: 0, z: 0}
30
+ m_LocalScale: {x: 1, y: 1, z: 1}
31
+ m_ConstrainProportionsScale: 0
32
+ m_Children: []
33
+ m_Father: {fileID: 0}
34
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
35
+ --- !u!114 &7398194448339198983
36
+ MonoBehaviour:
37
+ m_ObjectHideFlags: 0
38
+ m_CorrespondingSourceObject: {fileID: 0}
39
+ m_PrefabInstance: {fileID: 0}
40
+ m_PrefabAsset: {fileID: 0}
41
+ m_GameObject: {fileID: 6922798849384411428}
42
+ m_Enabled: 1
43
+ m_EditorHideFlags: 0
44
+ m_Script: {fileID: 11500000, guid: ba0952901a8ec71478ebf3e3f21a9f0c, type: 3}
45
+ m_Name:
46
+ m_EditorClassIdentifier:
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 646e3b510c41d3044be0d8aa4f54453f
3
+ PrefabImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
@@ -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: c96c6420dc848df48969d92d82fab61f, type: 3}
13
+ m_Name: Region_00
14
+ m_EditorClassIdentifier:
15
+ id:
16
+ id: f6a8a488-c421-48db-8b31-fc5d846a16fa
17
+ Coordinate:
18
+ x: 0
19
+ y: 0
20
+ levelName: region_00
21
+ level: 0
22
+ scenariosInThisRegion:
23
+ - {fileID: 11400000, guid: da48d91e553f86f47add3deca44799c2, type: 2}
24
+ zonesInThisRegion:
25
+ - {fileID: 11400000, guid: 2b0939a48ac9b554d9da18a49189cb9d, type: 2}
26
+ - {fileID: 11400000, guid: a171907111fad6941a4b6e06501f0a26, type: 2}
27
+ - {fileID: 11400000, guid: 31277bf1125592b41afff901df8ad815, type: 2}
28
+ - {fileID: 11400000, guid: 89857cc01bad650448624ec63199b051, type: 2}
29
+ dependenciesInThisRegion:
30
+ - sceneAsset: {fileID: 102900000, guid: eca06b9066d8efb4fae7239d6bec44d5, type: 3}
31
+ sceneName: World_depedency
32
+ SpawnPosOnRegionChangeRequest:
33
+ position: {x: 2.5, y: 0, z: 2.5}
34
+ rotation: {x: 0, y: 0, z: 0}
35
+ isUsingOnInitSpawnPos: 1
36
+ SpawnPosOnInit:
37
+ position: {x: -2.5, y: 0, z: -2.5}
38
+ rotation: {x: 0, y: 0, z: 0}
@@ -0,0 +1,8 @@
1
+ fileFormatVersion: 2
2
+ guid: bbabf3e47905c1b4da96100c0b4e4484
3
+ NativeFormatImporter:
4
+ externalObjects: {}
5
+ mainObjectFileID: 11400000
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
@@ -0,0 +1,305 @@
1
+ %YAML 1.1
2
+ %TAG !u! tag:unity3d.com,2011:
3
+ --- !u!1 &252426196197899153
4
+ GameObject:
5
+ m_ObjectHideFlags: 0
6
+ m_CorrespondingSourceObject: {fileID: 0}
7
+ m_PrefabInstance: {fileID: 0}
8
+ m_PrefabAsset: {fileID: 0}
9
+ serializedVersion: 6
10
+ m_Component:
11
+ - component: {fileID: 5669898147517753877}
12
+ - component: {fileID: 2744812813658641302}
13
+ - component: {fileID: 3404672360156734665}
14
+ m_Layer: 0
15
+ m_Name: Collider_Zone_2
16
+ m_TagString: Untagged
17
+ m_Icon: {fileID: 0}
18
+ m_NavMeshLayer: 0
19
+ m_StaticEditorFlags: 0
20
+ m_IsActive: 1
21
+ --- !u!4 &5669898147517753877
22
+ Transform:
23
+ m_ObjectHideFlags: 0
24
+ m_CorrespondingSourceObject: {fileID: 0}
25
+ m_PrefabInstance: {fileID: 0}
26
+ m_PrefabAsset: {fileID: 0}
27
+ m_GameObject: {fileID: 252426196197899153}
28
+ serializedVersion: 2
29
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
30
+ m_LocalPosition: {x: 0, y: 0, z: 0}
31
+ m_LocalScale: {x: 1, y: 1, z: 1}
32
+ m_ConstrainProportionsScale: 0
33
+ m_Children: []
34
+ m_Father: {fileID: 6314793345764810206}
35
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
36
+ --- !u!65 &2744812813658641302
37
+ BoxCollider:
38
+ m_ObjectHideFlags: 0
39
+ m_CorrespondingSourceObject: {fileID: 0}
40
+ m_PrefabInstance: {fileID: 0}
41
+ m_PrefabAsset: {fileID: 0}
42
+ m_GameObject: {fileID: 252426196197899153}
43
+ m_Material: {fileID: 0}
44
+ m_IncludeLayers:
45
+ serializedVersion: 2
46
+ m_Bits: 0
47
+ m_ExcludeLayers:
48
+ serializedVersion: 2
49
+ m_Bits: 0
50
+ m_LayerOverridePriority: 0
51
+ m_IsTrigger: 0
52
+ m_ProvidesContacts: 0
53
+ m_Enabled: 1
54
+ serializedVersion: 3
55
+ m_Size: {x: 5, y: 5, z: 5}
56
+ m_Center: {x: -2.5, y: 2.5, z: -2.5}
57
+ --- !u!114 &3404672360156734665
58
+ MonoBehaviour:
59
+ m_ObjectHideFlags: 0
60
+ m_CorrespondingSourceObject: {fileID: 0}
61
+ m_PrefabInstance: {fileID: 0}
62
+ m_PrefabAsset: {fileID: 0}
63
+ m_GameObject: {fileID: 252426196197899153}
64
+ m_Enabled: 1
65
+ m_EditorHideFlags: 0
66
+ m_Script: {fileID: 11500000, guid: c3dd1468d9d8412e8b20d430ba60ccc1, type: 3}
67
+ m_Name:
68
+ m_EditorClassIdentifier:
69
+ Zone: {fileID: 11400000, guid: a171907111fad6941a4b6e06501f0a26, type: 2}
70
+ --- !u!1 &1293605325447930491
71
+ GameObject:
72
+ m_ObjectHideFlags: 0
73
+ m_CorrespondingSourceObject: {fileID: 0}
74
+ m_PrefabInstance: {fileID: 0}
75
+ m_PrefabAsset: {fileID: 0}
76
+ serializedVersion: 6
77
+ m_Component:
78
+ - component: {fileID: 6851396448519349762}
79
+ - component: {fileID: 458138277579537308}
80
+ - component: {fileID: 8802124777653500649}
81
+ m_Layer: 0
82
+ m_Name: Collider_Zone_3
83
+ m_TagString: Untagged
84
+ m_Icon: {fileID: 0}
85
+ m_NavMeshLayer: 0
86
+ m_StaticEditorFlags: 0
87
+ m_IsActive: 1
88
+ --- !u!4 &6851396448519349762
89
+ Transform:
90
+ m_ObjectHideFlags: 0
91
+ m_CorrespondingSourceObject: {fileID: 0}
92
+ m_PrefabInstance: {fileID: 0}
93
+ m_PrefabAsset: {fileID: 0}
94
+ m_GameObject: {fileID: 1293605325447930491}
95
+ serializedVersion: 2
96
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
97
+ m_LocalPosition: {x: 0, y: 0, z: 0}
98
+ m_LocalScale: {x: 1, y: 1, z: 1}
99
+ m_ConstrainProportionsScale: 0
100
+ m_Children: []
101
+ m_Father: {fileID: 6314793345764810206}
102
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
103
+ --- !u!65 &458138277579537308
104
+ BoxCollider:
105
+ m_ObjectHideFlags: 0
106
+ m_CorrespondingSourceObject: {fileID: 0}
107
+ m_PrefabInstance: {fileID: 0}
108
+ m_PrefabAsset: {fileID: 0}
109
+ m_GameObject: {fileID: 1293605325447930491}
110
+ m_Material: {fileID: 0}
111
+ m_IncludeLayers:
112
+ serializedVersion: 2
113
+ m_Bits: 0
114
+ m_ExcludeLayers:
115
+ serializedVersion: 2
116
+ m_Bits: 0
117
+ m_LayerOverridePriority: 0
118
+ m_IsTrigger: 0
119
+ m_ProvidesContacts: 0
120
+ m_Enabled: 1
121
+ serializedVersion: 3
122
+ m_Size: {x: 5, y: 5, z: 5}
123
+ m_Center: {x: -2.5, y: 2.5, z: 2.5}
124
+ --- !u!114 &8802124777653500649
125
+ MonoBehaviour:
126
+ m_ObjectHideFlags: 0
127
+ m_CorrespondingSourceObject: {fileID: 0}
128
+ m_PrefabInstance: {fileID: 0}
129
+ m_PrefabAsset: {fileID: 0}
130
+ m_GameObject: {fileID: 1293605325447930491}
131
+ m_Enabled: 1
132
+ m_EditorHideFlags: 0
133
+ m_Script: {fileID: 11500000, guid: c3dd1468d9d8412e8b20d430ba60ccc1, type: 3}
134
+ m_Name:
135
+ m_EditorClassIdentifier:
136
+ Zone: {fileID: 11400000, guid: 31277bf1125592b41afff901df8ad815, type: 2}
137
+ --- !u!1 &2795268982672053366
138
+ GameObject:
139
+ m_ObjectHideFlags: 0
140
+ m_CorrespondingSourceObject: {fileID: 0}
141
+ m_PrefabInstance: {fileID: 0}
142
+ m_PrefabAsset: {fileID: 0}
143
+ serializedVersion: 6
144
+ m_Component:
145
+ - component: {fileID: 6314793345764810206}
146
+ m_Layer: 0
147
+ m_Name: Region_00_Colliders
148
+ m_TagString: Untagged
149
+ m_Icon: {fileID: 0}
150
+ m_NavMeshLayer: 0
151
+ m_StaticEditorFlags: 0
152
+ m_IsActive: 1
153
+ --- !u!4 &6314793345764810206
154
+ Transform:
155
+ m_ObjectHideFlags: 0
156
+ m_CorrespondingSourceObject: {fileID: 0}
157
+ m_PrefabInstance: {fileID: 0}
158
+ m_PrefabAsset: {fileID: 0}
159
+ m_GameObject: {fileID: 2795268982672053366}
160
+ serializedVersion: 2
161
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
162
+ m_LocalPosition: {x: 0, y: 0, z: 0}
163
+ m_LocalScale: {x: 1, y: 1, z: 1}
164
+ m_ConstrainProportionsScale: 0
165
+ m_Children:
166
+ - {fileID: 5461924914945536591}
167
+ - {fileID: 5669898147517753877}
168
+ - {fileID: 6851396448519349762}
169
+ - {fileID: 1027659769470368782}
170
+ m_Father: {fileID: 0}
171
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
172
+ --- !u!1 &5523427901729682415
173
+ GameObject:
174
+ m_ObjectHideFlags: 0
175
+ m_CorrespondingSourceObject: {fileID: 0}
176
+ m_PrefabInstance: {fileID: 0}
177
+ m_PrefabAsset: {fileID: 0}
178
+ serializedVersion: 6
179
+ m_Component:
180
+ - component: {fileID: 5461924914945536591}
181
+ - component: {fileID: 8988805953480390736}
182
+ - component: {fileID: 8809357090419959764}
183
+ m_Layer: 0
184
+ m_Name: Collider_Zone_1
185
+ m_TagString: Untagged
186
+ m_Icon: {fileID: 0}
187
+ m_NavMeshLayer: 0
188
+ m_StaticEditorFlags: 0
189
+ m_IsActive: 1
190
+ --- !u!4 &5461924914945536591
191
+ Transform:
192
+ m_ObjectHideFlags: 0
193
+ m_CorrespondingSourceObject: {fileID: 0}
194
+ m_PrefabInstance: {fileID: 0}
195
+ m_PrefabAsset: {fileID: 0}
196
+ m_GameObject: {fileID: 5523427901729682415}
197
+ serializedVersion: 2
198
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
199
+ m_LocalPosition: {x: 0, y: 0, z: 0}
200
+ m_LocalScale: {x: 1, y: 1, z: 1}
201
+ m_ConstrainProportionsScale: 0
202
+ m_Children: []
203
+ m_Father: {fileID: 6314793345764810206}
204
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
205
+ --- !u!65 &8988805953480390736
206
+ BoxCollider:
207
+ m_ObjectHideFlags: 0
208
+ m_CorrespondingSourceObject: {fileID: 0}
209
+ m_PrefabInstance: {fileID: 0}
210
+ m_PrefabAsset: {fileID: 0}
211
+ m_GameObject: {fileID: 5523427901729682415}
212
+ m_Material: {fileID: 0}
213
+ m_IncludeLayers:
214
+ serializedVersion: 2
215
+ m_Bits: 0
216
+ m_ExcludeLayers:
217
+ serializedVersion: 2
218
+ m_Bits: 0
219
+ m_LayerOverridePriority: 0
220
+ m_IsTrigger: 0
221
+ m_ProvidesContacts: 0
222
+ m_Enabled: 1
223
+ serializedVersion: 3
224
+ m_Size: {x: 5, y: 5, z: 5}
225
+ m_Center: {x: 2.5, y: 2.5, z: -2.5}
226
+ --- !u!114 &8809357090419959764
227
+ MonoBehaviour:
228
+ m_ObjectHideFlags: 0
229
+ m_CorrespondingSourceObject: {fileID: 0}
230
+ m_PrefabInstance: {fileID: 0}
231
+ m_PrefabAsset: {fileID: 0}
232
+ m_GameObject: {fileID: 5523427901729682415}
233
+ m_Enabled: 1
234
+ m_EditorHideFlags: 0
235
+ m_Script: {fileID: 11500000, guid: c3dd1468d9d8412e8b20d430ba60ccc1, type: 3}
236
+ m_Name:
237
+ m_EditorClassIdentifier:
238
+ Zone: {fileID: 11400000, guid: 2b0939a48ac9b554d9da18a49189cb9d, type: 2}
239
+ --- !u!1 &6602613211408240264
240
+ GameObject:
241
+ m_ObjectHideFlags: 0
242
+ m_CorrespondingSourceObject: {fileID: 0}
243
+ m_PrefabInstance: {fileID: 0}
244
+ m_PrefabAsset: {fileID: 0}
245
+ serializedVersion: 6
246
+ m_Component:
247
+ - component: {fileID: 1027659769470368782}
248
+ - component: {fileID: 5171095526562730949}
249
+ - component: {fileID: 4711189377873909801}
250
+ m_Layer: 0
251
+ m_Name: Collider_Zone_4
252
+ m_TagString: Untagged
253
+ m_Icon: {fileID: 0}
254
+ m_NavMeshLayer: 0
255
+ m_StaticEditorFlags: 0
256
+ m_IsActive: 1
257
+ --- !u!4 &1027659769470368782
258
+ Transform:
259
+ m_ObjectHideFlags: 0
260
+ m_CorrespondingSourceObject: {fileID: 0}
261
+ m_PrefabInstance: {fileID: 0}
262
+ m_PrefabAsset: {fileID: 0}
263
+ m_GameObject: {fileID: 6602613211408240264}
264
+ serializedVersion: 2
265
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
266
+ m_LocalPosition: {x: 0, y: 0, z: 0}
267
+ m_LocalScale: {x: 1, y: 1, z: 1}
268
+ m_ConstrainProportionsScale: 0
269
+ m_Children: []
270
+ m_Father: {fileID: 6314793345764810206}
271
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
272
+ --- !u!65 &5171095526562730949
273
+ BoxCollider:
274
+ m_ObjectHideFlags: 0
275
+ m_CorrespondingSourceObject: {fileID: 0}
276
+ m_PrefabInstance: {fileID: 0}
277
+ m_PrefabAsset: {fileID: 0}
278
+ m_GameObject: {fileID: 6602613211408240264}
279
+ m_Material: {fileID: 0}
280
+ m_IncludeLayers:
281
+ serializedVersion: 2
282
+ m_Bits: 0
283
+ m_ExcludeLayers:
284
+ serializedVersion: 2
285
+ m_Bits: 0
286
+ m_LayerOverridePriority: 0
287
+ m_IsTrigger: 0
288
+ m_ProvidesContacts: 0
289
+ m_Enabled: 1
290
+ serializedVersion: 3
291
+ m_Size: {x: 5, y: 5, z: 5}
292
+ m_Center: {x: 2.5, y: 2.5, z: 2.5}
293
+ --- !u!114 &4711189377873909801
294
+ MonoBehaviour:
295
+ m_ObjectHideFlags: 0
296
+ m_CorrespondingSourceObject: {fileID: 0}
297
+ m_PrefabInstance: {fileID: 0}
298
+ m_PrefabAsset: {fileID: 0}
299
+ m_GameObject: {fileID: 6602613211408240264}
300
+ m_Enabled: 1
301
+ m_EditorHideFlags: 0
302
+ m_Script: {fileID: 11500000, guid: c3dd1468d9d8412e8b20d430ba60ccc1, type: 3}
303
+ m_Name:
304
+ m_EditorClassIdentifier:
305
+ Zone: {fileID: 11400000, guid: 89857cc01bad650448624ec63199b051, type: 2}
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 323c402a3fa625d4f976955806f1ebc8
3
+ PrefabImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant: