浏览代码

Merge branch 'Scene-Loading' into main

/main
Unknown 4 年前
当前提交
af2ab922
共有 69 个文件被更改,包括 4783 次插入3 次删除
  1. 2
      UOP1_Project/Assets/Prefabs/Pig.prefab
  2. 13
      UOP1_Project/ProjectSettings/EditorBuildSettings.asset
  3. 5
      UOP1_Project/ProjectSettings/Packages/com.unity.probuilder/Settings.json
  4. 96
      UOP1_Project/Assets/Materials/Debug_Semitransparent.mat
  5. 8
      UOP1_Project/Assets/Materials/Debug_Semitransparent.mat.meta
  6. 90
      UOP1_Project/Assets/Materials/Obstacles_Blue.mat
  7. 8
      UOP1_Project/Assets/Materials/Obstacles_Blue.mat.meta
  8. 3
      UOP1_Project/Assets/Materials/Square.png
  9. 148
      UOP1_Project/Assets/Materials/Square.png.meta
  10. 8
      UOP1_Project/Assets/Scenes/LoadingTest.meta
  11. 1001
      UOP1_Project/Assets/Scenes/MainMenu.unity
  12. 7
      UOP1_Project/Assets/Scenes/MainMenu.unity.meta
  13. 559
      UOP1_Project/Assets/Scenes/ScenesLoader.unity
  14. 7
      UOP1_Project/Assets/Scenes/ScenesLoader.unity.meta
  15. 8
      UOP1_Project/Assets/ScriptableObjects/Events.meta
  16. 8
      UOP1_Project/Assets/ScriptableObjects/Locations.meta
  17. 8
      UOP1_Project/Assets/ScriptableObjects/Menus.meta
  18. 8
      UOP1_Project/Assets/Scripts/Editor.meta
  19. 8
      UOP1_Project/Assets/Scripts/Event Listeners.meta
  20. 19
      UOP1_Project/Assets/Scripts/LevelEnd.cs
  21. 11
      UOP1_Project/Assets/Scripts/LevelEnd.cs.meta
  22. 174
      UOP1_Project/Assets/Scripts/LocationLoader.cs
  23. 11
      UOP1_Project/Assets/Scripts/LocationLoader.cs.meta
  24. 8
      UOP1_Project/Assets/Scripts/Scriptable Objects.meta
  25. 17
      UOP1_Project/Assets/Scripts/StartGame.cs
  26. 11
      UOP1_Project/Assets/Scripts/StartGame.cs.meta
  27. 7
      UOP1_Project/Assets/Scenes/LoadingTest/Beach.unity.meta
  28. 7
      UOP1_Project/Assets/Scenes/LoadingTest/Forest.unity.meta
  29. 1001
      UOP1_Project/Assets/Scenes/LoadingTest/Beach.unity
  30. 1001
      UOP1_Project/Assets/Scenes/LoadingTest/Forest.unity
  31. 14
      UOP1_Project/Assets/ScriptableObjects/Events/GameEvent_Exit.asset
  32. 8
      UOP1_Project/Assets/ScriptableObjects/Events/GameEvent_Exit.asset.meta
  33. 14
      UOP1_Project/Assets/ScriptableObjects/Events/LoadLocationEvent.asset
  34. 8
      UOP1_Project/Assets/ScriptableObjects/Events/LoadLocationEvent.asset.meta
  35. 19
      UOP1_Project/Assets/ScriptableObjects/Locations/Beach.asset
  36. 19
      UOP1_Project/Assets/ScriptableObjects/Locations/Forest.asset
  37. 8
      UOP1_Project/Assets/ScriptableObjects/Locations/Beach.asset.meta
  38. 8
      UOP1_Project/Assets/ScriptableObjects/Locations/Forest.asset.meta
  39. 19
      UOP1_Project/Assets/ScriptableObjects/Menus/MainMenu.asset
  40. 8
      UOP1_Project/Assets/ScriptableObjects/Menus/MainMenu.asset.meta
  41. 11
      UOP1_Project/Assets/Scripts/Editor/GameSceneEditor.cs.meta
  42. 95
      UOP1_Project/Assets/Scripts/Editor/GameSceneEditor.cs
  43. 11
      UOP1_Project/Assets/Scripts/Event Listeners/VoidEventListener.cs.meta
  44. 11
      UOP1_Project/Assets/Scripts/Event Listeners/IntEventListener.cs.meta
  45. 47
      UOP1_Project/Assets/Scripts/Event Listeners/IntEventListener.cs
  46. 40
      UOP1_Project/Assets/Scripts/Event Listeners/VoidEventListener.cs
  47. 8
      UOP1_Project/Assets/Scripts/Scriptable Objects/Events.meta
  48. 8
      UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement.meta
  49. 16
      UOP1_Project/Assets/Scripts/Scriptable Objects/Events/IntGameEvent.cs
  50. 11
      UOP1_Project/Assets/Scripts/Scriptable Objects/Events/VoidGameEvent.cs.meta
  51. 11
      UOP1_Project/Assets/Scripts/Scriptable Objects/Events/IntGameEvent.cs.meta
  52. 11
      UOP1_Project/Assets/Scripts/Scriptable Objects/Events/LoadEvent.cs.meta
  53. 19
      UOP1_Project/Assets/Scripts/Scriptable Objects/Events/LoadEvent.cs
  54. 19
      UOP1_Project/Assets/Scripts/Scriptable Objects/Events/VoidGameEvent.cs
  55. 11
      UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/GameScene.cs.meta
  56. 11
      UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/Menu.cs.meta
  57. 11
      UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/Location.cs.meta
  58. 18
      UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/GameScene.cs
  59. 12
      UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/Location.cs
  60. 18
      UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/Menu.cs

2
UOP1_Project/Assets/Prefabs/Pig.prefab


- component: {fileID: 1044138830}
m_Layer: 0
m_Name: Pig
m_TagString: Untagged
m_TagString: Player
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0

13
UOP1_Project/ProjectSettings/EditorBuildSettings.asset


serializedVersion: 2
m_Scenes:
- enabled: 1
path: Assets/Scenes/SampleScene.unity
guid: d1c3109bdb54ad54c8a2b2838528e640
path: Assets/Scenes/ScenesLoader.unity
guid: e8df4c5a458acc5489b2865e6b789224
- enabled: 1
path: Assets/Scenes/MainMenu.unity
guid: df490f8a21305b549b67b8301af79724
- enabled: 1
path: Assets/Scenes/LoadingTest/Beach.unity
guid: 1f93ce2ec2bb43b4ab2a18ad18a50967
- enabled: 1
path: Assets/Scenes/LoadingTest/Forest.unity
guid: 3a816f06c17361b4398583570bcbf8eb
m_configObjects: {}

5
UOP1_Project/ProjectSettings/Packages/com.unity.probuilder/Settings.json


"type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
"key": "lightmapping.autoUnwrapLightmapUV",
"value": "{\"m_Value\":true}"
},
{
"type": "System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
"key": "editor.toolbarIconGUI",
"value": "{\"m_Value\":false}"
}
]
}

96
UOP1_Project/Assets/Materials/Debug_Semitransparent.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-3303094881859550400
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 1
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Debug_Semitransparent
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3}
m_ShaderKeywords: _RECEIVE_SHADOWS_OFF
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3050
stringTagMap:
RenderType: Transparent
disabledShaderPasses:
- SHADOWCASTER
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaClip: 0
- _Blend: 2
- _BumpScale: 1
- _Cull: 2
- _Cutoff: 0.5
- _DstBlend: 1
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossinessSource: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _QueueOffset: 0
- _ReceiveShadows: 0
- _SampleGI: 0
- _Shininess: 0
- _Smoothness: 0.5
- _SmoothnessSource: 0
- _SmoothnessTextureChannel: 0
- _SpecSource: 0
- _SpecularHighlights: 1
- _SrcBlend: 5
- _Surface: 1
- _WorkflowMode: 1
- _ZWrite: 0
m_Colors:
- _BaseColor: {r: 0.28568882, g: 0.5660378, b: 0.248309, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}

8
UOP1_Project/Assets/Materials/Debug_Semitransparent.mat.meta


fileFormatVersion: 2
guid: 43cc88de02783754fa81506bf52da0b2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

90
UOP1_Project/Assets/Materials/Obstacles_Blue.mat


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Obstacles_Blue
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 2050
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _AlphaClip: 0
- _Blend: 0
- _BumpScale: 1
- _Cull: 2
- _Cutoff: 0.5
- _DstBlend: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.013
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0.21960783, g: 0.42262313, b: 0.94509804, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
--- !u!114 &3533675928499643382
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 1

8
UOP1_Project/Assets/Materials/Obstacles_Blue.mat.meta


fileFormatVersion: 2
guid: 5f665101748a5d04ea5ff6d4258b9c28
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

3
UOP1_Project/Assets/Materials/Square.png

之前 之后
宽度: 4  |  高度: 4  |  大小: 78 B

148
UOP1_Project/Assets/Materials/Square.png.meta


fileFormatVersion: 2
guid: 6b74140a78e7b334e8dae0ca62472463
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 3
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 4
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: 4
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Windows Store Apps
maxTextureSize: 8192
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline:
- - {x: -2, y: -2}
- {x: -2, y: 2}
- {x: 2, y: 2}
- {x: 2, y: -2}
physicsShape:
- - {x: -2, y: -2}
- {x: -2, y: 2}
- {x: 2, y: 2}
- {x: 2, y: -2}
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

8
UOP1_Project/Assets/Scenes/LoadingTest.meta


fileFormatVersion: 2
guid: 8e3b2dfdce6fe764e97da48dca07c553
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1001
UOP1_Project/Assets/Scenes/MainMenu.unity
文件差异内容过多而无法显示
查看文件

7
UOP1_Project/Assets/Scenes/MainMenu.unity.meta


fileFormatVersion: 2
guid: df490f8a21305b549b67b8301af79724
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

559
UOP1_Project/Assets/Scenes/ScenesLoader.unity


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &264133876
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 264133879}
- component: {fileID: 264133878}
- component: {fileID: 264133877}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &264133877
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 264133876}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
m_Name:
m_EditorClassIdentifier:
m_MoveRepeatDelay: 0.5
m_MoveRepeatRate: 0.1
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_PointAction: {fileID: 1054132383583890850, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_MoveAction: {fileID: 3710738434707379630, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_SubmitAction: {fileID: 2064916234097673511, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_CancelAction: {fileID: -1967631576421560919, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_LeftClickAction: {fileID: 8056856818456041789, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_MiddleClickAction: {fileID: 3279352641294131588, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_RightClickAction: {fileID: 3837173908680883260, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_ScrollWheelAction: {fileID: 4502412055082496612, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_TrackedDevicePositionAction: {fileID: 4754684134866288074, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_TrackedDeviceOrientationAction: {fileID: 1025543830046995696, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_DeselectOnBackgroundClick: 1
m_PointerBehavior: 0
--- !u!114 &264133878
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 264133876}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!4 &264133879
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 264133876}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &363619424
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 363619425}
- component: {fileID: 363619427}
- component: {fileID: 363619426}
m_Layer: 5
m_Name: LoadingInterface
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &363619425
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 363619424}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 841012434}
m_Father: {fileID: 1387982343}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &363619426
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 363619424}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 0}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!222 &363619427
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 363619424}
m_CullTransparentMesh: 0
--- !u!1 &447650313
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 447650316}
- component: {fileID: 447650314}
m_Layer: 0
m_Name: GameExitListener
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &447650314
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 447650313}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0ba826e9d52310a43b98dffc289c71b2, type: 3}
m_Name:
m_EditorClassIdentifier:
voidGameEvent: {fileID: 11400000, guid: c499d87f35465124f8fb2751b150430d, type: 2}
OnEventRaised:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1242953036}
m_MethodName: ExitGame
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!4 &447650316
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 447650313}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &841012433
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 841012434}
- component: {fileID: 841012436}
- component: {fileID: 841012435}
m_Layer: 5
m_Name: ProgressBar
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &841012434
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 841012433}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 363619425}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 40}
m_Pivot: {x: 0.5, y: 0}
--- !u!114 &841012435
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 841012433}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.6193977, g: 0.8207547, b: 0, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 6b74140a78e7b334e8dae0ca62472463, type: 3}
m_Type: 3
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &841012436
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 841012433}
m_CullTransparentMesh: 0
--- !u!1 &1242953035
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1242953037}
- component: {fileID: 1242953036}
m_Layer: 0
m_Name: Location Loader
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1242953036
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1242953035}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b6b928d1d6f59854499ed82bdeef2305, type: 3}
m_Name:
m_EditorClassIdentifier:
mainMenuScenes:
- {fileID: 11400000, guid: 431ff81b74b48fb4d9301fb76ca633dd, type: 2}
loadingInterface: {fileID: 363619424}
loadingProgressBar: {fileID: 841012435}
_loadEvent: {fileID: 11400000, guid: 00e3063edc5902e40832ea618644c597, type: 2}
--- !u!4 &1242953037
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1242953035}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 10.11, y: 5.3500004, z: 29.12}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1387982339
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1387982343}
- component: {fileID: 1387982342}
- component: {fileID: 1387982341}
- component: {fileID: 1387982340}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1387982340
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387982339}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &1387982341
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387982339}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
--- !u!223 &1387982342
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387982339}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!224 &1387982343
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1387982339}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 363619425}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}

7
UOP1_Project/Assets/Scenes/ScenesLoader.unity.meta


fileFormatVersion: 2
guid: e8df4c5a458acc5489b2865e6b789224
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
UOP1_Project/Assets/ScriptableObjects/Events.meta


fileFormatVersion: 2
guid: ec166a47c510f59409ada531be5870e1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
UOP1_Project/Assets/ScriptableObjects/Locations.meta


fileFormatVersion: 2
guid: b502ac1c517c278438d9f1e588024581
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
UOP1_Project/Assets/ScriptableObjects/Menus.meta


fileFormatVersion: 2
guid: 5000cd25fc9cc2048b4432eaf33f0b88
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
UOP1_Project/Assets/Scripts/Editor.meta


fileFormatVersion: 2
guid: daf107c3391096e4e832d9da83346d30
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
UOP1_Project/Assets/Scripts/Event Listeners.meta


fileFormatVersion: 2
guid: 0e40ff7dabb309543830cc3ce88b7841
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

19
UOP1_Project/Assets/Scripts/LevelEnd.cs


using UnityEngine;
/// <summary>
/// This class detecs when the level(Location) ends
/// </summary>
public class LevelEnd : MonoBehaviour
{
public LoadEvent onLevelEnd;
public GameScene[] locationsToLoad;
public bool showLoadScreen;
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Player"))
{
onLevelEnd.Raise(locationsToLoad, showLoadScreen);
}
}
}

11
UOP1_Project/Assets/Scripts/LevelEnd.cs.meta


fileFormatVersion: 2
guid: 02e6b73898a4a52438d630a7ba29da77
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

174
UOP1_Project/Assets/Scripts/LocationLoader.cs


using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
/// <summary>
/// This class manages the scenes loading and unloading
/// </summary>
public class LocationLoader : MonoBehaviour
{
public GameScene[] mainMenuScenes;
[Header("Loading Screen")]
public GameObject loadingInterface;
public Image loadingProgressBar;
[Header("Load Event")]
//The load event we are listening to
[SerializeField] private LoadEvent _loadEvent = default;
//List of the scenes to load and track progress
private List<AsyncOperation> _scenesToLoadAsyncOperations = new List<AsyncOperation>();
//List of scenes to unload
private List<Scene> _ScenesToUnload = new List<Scene>();
//Keep track of the scene we want to set as active (for lighting/skybox)
private GameScene _activeScene;
private void OnEnable()
{
_loadEvent.loadEvent += LoadScenes;
}
private void OnDisable()
{
_loadEvent.loadEvent -= LoadScenes;
}
private void Start()
{
LoadMainMenu();
}
private void LoadMainMenu()
{
LoadScenes(mainMenuScenes, false);
}
/// <summary> This function loads the scenes passed as array parameter </summary>
public void LoadScenes(GameScene[] locationsToLoad, bool showLoadingScreen)
{
//Add all current open scenes to unload list
AddScenesToUnload();
_activeScene = locationsToLoad[0];
for (int i = 0; i < locationsToLoad.Length; ++i)
{
String currentSceneName = locationsToLoad[i].sceneName;
if (!CheckLoadState(currentSceneName))
{
//Add the scene to the list of scenes to load asynchronously in the background
_scenesToLoadAsyncOperations.Add(SceneManager.LoadSceneAsync(currentSceneName, LoadSceneMode.Additive));
}
}
_scenesToLoadAsyncOperations[0].completed += SetActiveScene;
if (showLoadingScreen)
{
//Show the progress bar and track progress if loadScreen is true
StartCoroutine(TrackLoadingProgress());
}
else
{
//Clear the scenes to load
_scenesToLoadAsyncOperations.Clear();
}
//Unload the scenes
UnloadScenes();
}
private void SetActiveScene(AsyncOperation asyncOp)
{
SceneManager.SetActiveScene(SceneManager.GetSceneByName(_activeScene.sceneName));
}
public void AddScenesToUnload()
{
if (SceneManager.sceneCount > 0)
{
for (int i = 0; i < SceneManager.sceneCount; ++i)
{
Scene scene = SceneManager.GetSceneAt(i);
if (scene.name != "ScenesLoader")
{
Debug.Log("Added scene to unload = " + scene.name);
//Add the scene to the list of the scenes to unload
_ScenesToUnload.Add(scene);
}
}
}
}
public void UnloadScenes()
{
if (_ScenesToUnload != null)
{
for (int i = 0; i < _ScenesToUnload.Count; ++i)
{
//Unload the scene asynchronously in the background
SceneManager.UnloadSceneAsync(_ScenesToUnload[i]);
}
}
_ScenesToUnload.Clear();
}
/// <summary> This function checks if a scene is already loaded </summary>
public bool CheckLoadState(String sceneName)
{
if (SceneManager.sceneCount > 0)
{
for (int i = 0; i < SceneManager.sceneCount; ++i)
{
Scene scene = SceneManager.GetSceneAt(i);
if (scene.name == sceneName)
{
return true;
}
}
}
return false;
}
/// <summary> This function update loading progress </summary>
IEnumerator TrackLoadingProgress()
{
float totalProgress = 0;
//When the scene reaches 0.9f, it means that it is loaded
//The remaining 0.1f are for the integration
while (totalProgress <= 0.9f)
{
//Reset the progress for the new values
totalProgress = 0;
//Iterate through all the scenes to load
for (int i = 0; i < _scenesToLoadAsyncOperations.Count; ++i)
{
Debug.Log("Scene" + i + " :" + _scenesToLoadAsyncOperations[i].isDone + "progress = " + _scenesToLoadAsyncOperations[i].progress);
//Adding the scene progress to the total progress
totalProgress += _scenesToLoadAsyncOperations[i].progress;
}
//the fillAmount for all scenes, so we devide the progress by the number of scenes to load
loadingProgressBar.fillAmount = totalProgress / _scenesToLoadAsyncOperations.Count;
Debug.Log("progress bar" + loadingProgressBar.fillAmount + "and value =" + totalProgress / _scenesToLoadAsyncOperations.Count);
yield return null;
}
//Clear the scenes to load
_scenesToLoadAsyncOperations.Clear();
//Hide progress bar when loading is done
loadingInterface.SetActive(false);
}
public void ExitGame()
{
Application.Quit();
Debug.Log("Exit!");
}
}

11
UOP1_Project/Assets/Scripts/LocationLoader.cs.meta


fileFormatVersion: 2
guid: b6b928d1d6f59854499ed82bdeef2305
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

8
UOP1_Project/Assets/Scripts/Scriptable Objects.meta


fileFormatVersion: 2
guid: b4f5547b1a196dc46a6947f2cf617e0b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

17
UOP1_Project/Assets/Scripts/StartGame.cs


using UnityEngine;
/// <summary>
/// This class contains the function to call when play button is pressed
/// </summary>
public class StartGame : MonoBehaviour
{
public LoadEvent onPlayButtonPress;
public GameScene[] locationsToLoad;
public bool showLoadScreen;
public void OnPlayButtonPress()
{
onPlayButtonPress.Raise(locationsToLoad, showLoadScreen);
}
}

11
UOP1_Project/Assets/Scripts/StartGame.cs.meta


fileFormatVersion: 2
guid: 45ecefb9fe27f1f4b8cf3ecc3fad707c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

7
UOP1_Project/Assets/Scenes/LoadingTest/Beach.unity.meta


fileFormatVersion: 2
guid: 1f93ce2ec2bb43b4ab2a18ad18a50967
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

7
UOP1_Project/Assets/Scenes/LoadingTest/Forest.unity.meta


fileFormatVersion: 2
guid: 3a816f06c17361b4398583570bcbf8eb
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1001
UOP1_Project/Assets/Scenes/LoadingTest/Beach.unity
文件差异内容过多而无法显示
查看文件

1001
UOP1_Project/Assets/Scenes/LoadingTest/Forest.unity
文件差异内容过多而无法显示
查看文件

14
UOP1_Project/Assets/ScriptableObjects/Events/GameEvent_Exit.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 04ea2f19feb15654cb31bb60f7f50855, type: 3}
m_Name: GameEvent_Exit
m_EditorClassIdentifier:

8
UOP1_Project/Assets/ScriptableObjects/Events/GameEvent_Exit.asset.meta


fileFormatVersion: 2
guid: c499d87f35465124f8fb2751b150430d
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

14
UOP1_Project/Assets/ScriptableObjects/Events/LoadLocationEvent.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 82df99cd4c7564d4ca44d50a1dce516b, type: 3}
m_Name: LoadLocationEvent
m_EditorClassIdentifier:

8
UOP1_Project/Assets/ScriptableObjects/Events/LoadLocationEvent.asset.meta


fileFormatVersion: 2
guid: 00e3063edc5902e40832ea618644c597
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

19
UOP1_Project/Assets/ScriptableObjects/Locations/Beach.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8db63739a6674d74e8e232347422172f, type: 3}
m_Name: Beach
m_EditorClassIdentifier:
sceneName: Beach
shortDescription: The level to find X
music: {fileID: 0}
musicVolume: 0
enemiesCount: 0

19
UOP1_Project/Assets/ScriptableObjects/Locations/Forest.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8db63739a6674d74e8e232347422172f, type: 3}
m_Name: Forest
m_EditorClassIdentifier:
sceneName: Forest
shortDescription: Find Y
music: {fileID: 0}
musicVolume: 0
enemiesCount: 0

8
UOP1_Project/Assets/ScriptableObjects/Locations/Beach.asset.meta


fileFormatVersion: 2
guid: 2f386bbc670c05145834a0f9c7d55798
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

8
UOP1_Project/Assets/ScriptableObjects/Locations/Forest.asset.meta


fileFormatVersion: 2
guid: d102ba8fe3b291249aeb9de4b95c1904
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

19
UOP1_Project/Assets/ScriptableObjects/Menus/MainMenu.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3546e1f9ebb6f054fb677b86f543542b, type: 3}
m_Name: MainMenu
m_EditorClassIdentifier:
sceneName: MainMenu
shortDescription: The main menu of the game
music: {fileID: 0}
musicVolume: 0
type: 0

8
UOP1_Project/Assets/ScriptableObjects/Menus/MainMenu.asset.meta


fileFormatVersion: 2
guid: 431ff81b74b48fb4d9301fb76ca633dd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

11
UOP1_Project/Assets/Scripts/Editor/GameSceneEditor.cs.meta


fileFormatVersion: 2
guid: a9133d1c8803ac04e8b40219b69b76b0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

95
UOP1_Project/Assets/Scripts/Editor/GameSceneEditor.cs


using System.IO;
using System.Linq;
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.SceneManagement;
[CustomEditor(typeof(GameScene), true)]
public class GameSceneEditor : Editor
{
#region UI_Warnings
private const string noScenesWarning = "There are no scenes set for this level yet! Add a new scene with the dropdown below";
#endregion
#region GUI_Styles
private GUIStyle headerLabelStyle;
#endregion
// it holds a list of properties to hide from basic inspector
private static readonly string[] ExcludedProperties = { "m_Script", "sceneName" };
private string[] sceneList;
private GameScene gameSceneTarget;
private void OnEnable()
{
gameSceneTarget = target as GameScene;
PopulateScenePicker();
InitializeGuiStyles();
}
public override void OnInspectorGUI()
{
EditorGUILayout.LabelField("Scene information", headerLabelStyle);
EditorGUILayout.Space();
DrawScenePicker();
DrawPropertiesExcluding(serializedObject, ExcludedProperties);
}
private void DrawScenePicker()
{
var sceneName = gameSceneTarget.sceneName;
EditorGUI.BeginChangeCheck();
var selectedScene = sceneList.ToList().IndexOf(sceneName);
if (selectedScene < 0)
{
EditorGUILayout.HelpBox(noScenesWarning, MessageType.Warning);
}
selectedScene = EditorGUILayout.Popup("Scene", selectedScene, sceneList);
if (EditorGUI.EndChangeCheck())
{
Undo.RecordObject(target, "Changed selected scene");
gameSceneTarget.sceneName = sceneList[selectedScene];
MarkAllDirty();
}
}
private void InitializeGuiStyles()
{
headerLabelStyle = new GUIStyle(EditorStyles.largeLabel)
{
fontStyle = FontStyle.Bold,
fontSize = 18,
fixedHeight = 70.0f
};
}
/// <summary>
/// Populates the scene picker with scenes included in the game's build index
/// </summary>
private void PopulateScenePicker()
{
var sceneCount = SceneManager.sceneCountInBuildSettings;
sceneList = new string[sceneCount];
for (int i = 0; i < sceneCount; i++)
{
sceneList[i] = Path.GetFileNameWithoutExtension(SceneUtility.GetScenePathByBuildIndex(i));
}
}
/// <summary>
/// Marks scenes as dirty so data can be saved
/// </summary>
private void MarkAllDirty()
{
EditorUtility.SetDirty(target);
EditorSceneManager.MarkAllScenesDirty();
}
}

11
UOP1_Project/Assets/Scripts/Event Listeners/VoidEventListener.cs.meta


fileFormatVersion: 2
guid: 0ba826e9d52310a43b98dffc289c71b2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

11
UOP1_Project/Assets/Scripts/Event Listeners/IntEventListener.cs.meta


fileFormatVersion: 2
guid: 8e135d888ad24024f90a15e07ae82bbc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

47
UOP1_Project/Assets/Scripts/Event Listeners/IntEventListener.cs


using UnityEngine;
using UnityEngine.Events;
/// <summary>
/// To use a generic UnityEvent type you must override the class type
/// </summary>
[System.Serializable]
public class IntEvent : UnityEvent<int>
{
}
/// <summary>
/// This class is listener for Int Events
/// </summary>
public class IntEventListener : MonoBehaviour
{
public IntGameEvent intGameEvent;
public IntEvent OnEventRaised;
private void OnEnable()
{
//Check if the event exists to avoid errors
if (intGameEvent == null)
{
return;
}
intGameEvent.eventRaised += Respond;
}
private void OnDisable()
{
if (intGameEvent == null)
{
return;
}
intGameEvent.eventRaised -= Respond;
}
public void Respond(int value)
{
if (OnEventRaised == null)
{
return;
}
OnEventRaised.Invoke(value);
}
}

40
UOP1_Project/Assets/Scripts/Event Listeners/VoidEventListener.cs


using UnityEngine;
using UnityEngine.Events;
/// <summary>
/// This class is listener for Void Events
/// </summary>
public class VoidEventListener : MonoBehaviour
{
public VoidGameEvent voidGameEvent;
public UnityEvent OnEventRaised;
private void OnEnable()
{
//Check if the event exists to avoid errors
if (voidGameEvent == null)
{
return;
}
voidGameEvent.eventRaised += Respond;
}
private void OnDisable()
{
if (voidGameEvent == null)
{
return;
}
voidGameEvent.eventRaised -= Respond;
}
public void Respond()
{
if (OnEventRaised == null)
{
return;
}
OnEventRaised.Invoke();
}
}

8
UOP1_Project/Assets/Scripts/Scriptable Objects/Events.meta


fileFormatVersion: 2
guid: 39e6bddc8d2c1a3488856d3243fc2eb4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement.meta


fileFormatVersion: 2
guid: 74ae68dae9a134b4b91341fc3bbaec01
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

16
UOP1_Project/Assets/Scripts/Scriptable Objects/Events/IntGameEvent.cs


using UnityEngine.Events;
using UnityEngine;
/// <summary>
/// This class is used for Events that have one Int argument (Example: Achievement Unlock Event)
/// </summary>
[CreateAssetMenu(fileName = "IntGameEvent", menuName = "Game Event/Int")]
public class IntGameEvent : ScriptableObject
{
public UnityAction<int> eventRaised;
public void Raise(int value)
{
eventRaised.Invoke(value);
}
}

11
UOP1_Project/Assets/Scripts/Scriptable Objects/Events/VoidGameEvent.cs.meta


fileFormatVersion: 2
guid: 04ea2f19feb15654cb31bb60f7f50855
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

11
UOP1_Project/Assets/Scripts/Scriptable Objects/Events/IntGameEvent.cs.meta


fileFormatVersion: 2
guid: 696142ab7e0adf0478f66a5c9e06a168
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

11
UOP1_Project/Assets/Scripts/Scriptable Objects/Events/LoadEvent.cs.meta


fileFormatVersion: 2
guid: 82df99cd4c7564d4ca44d50a1dce516b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

19
UOP1_Project/Assets/Scripts/Scriptable Objects/Events/LoadEvent.cs


using UnityEngine;
using UnityEngine.Events;
/// <summary>
/// This class is a used for scene loading Events
/// Takes an array of the scenes we want to load
/// and a bool to specify if we want to show a loading screen
/// </summary>
[CreateAssetMenu(fileName = "LoadGameEvent", menuName = "Game Event/Load")]
public class LoadEvent : ScriptableObject
{
public UnityAction<GameScene[], bool> loadEvent;
public void Raise(GameScene[] locationsToLoad, bool showLoadingScreen)
{
if (loadEvent != null)
loadEvent.Invoke(locationsToLoad, showLoadingScreen);
}
}

19
UOP1_Project/Assets/Scripts/Scriptable Objects/Events/VoidGameEvent.cs


using UnityEngine;
using UnityEngine.Events;
/// <summary>
/// This class is used for Events that have no arguments (Example: Exit game event)
/// </summary>
[CreateAssetMenu(fileName = "VoidGameEvent", menuName = "Game Event/Void")]
public class VoidGameEvent : ScriptableObject
{
public UnityAction eventRaised;
public void Raise()
{
if (eventRaised != null)
eventRaised.Invoke();
}
}

11
UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/GameScene.cs.meta


fileFormatVersion: 2
guid: 07a92b7477be8164091bdd3d81cec587
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

11
UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/Menu.cs.meta


fileFormatVersion: 2
guid: 3546e1f9ebb6f054fb677b86f543542b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

11
UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/Location.cs.meta


fileFormatVersion: 2
guid: 8db63739a6674d74e8e232347422172f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

18
UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/GameScene.cs


using UnityEngine;
/// <summary>
/// This class is a base class which contains what is commun for all game scenes (Locations or Menus)
/// </summary>
public class GameScene : ScriptableObject
{
[Header("Information")]
public string sceneName;
public string shortDescription;
[Header("Sounds")]
public AudioClip music;
[Range(0.0f, 1.0f)]
public float musicVolume;
}

12
UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/Location.cs


using UnityEngine;
/// <summary>
/// This class contains Settings specific to Locations only
/// </summary>
[CreateAssetMenu(fileName = "NewLocation", menuName = "Scene Data/Location")]
public class Location : GameScene
{
[Header("Location specific")]
public int enemiesCount;
}

18
UOP1_Project/Assets/Scripts/Scriptable Objects/SceneManagement/Menu.cs


using UnityEngine;
/// <summary>
/// This class contains Settings specific to Menus only
/// </summary>
public enum Type
{
Main_Menu,
Pause_Menu
}
[CreateAssetMenu(fileName = "NewMenu", menuName = "Scene Data/Menu")]
public class Menu : GameScene
{
[Header("Menu specific")]
public Type type;
}
正在加载...
取消
保存