diff --git a/Assets/Plugins.meta b/Assets/Plugins.meta new file mode 100644 index 0000000000000000000000000000000000000000..d1f382269181af29e6a487589fbd66ad5f3b2c15 --- /dev/null +++ b/Assets/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e9862bb85f7c83c40b21fed7c3b25b8b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/Newtonsoft.Json.dll b/Assets/Plugins/Newtonsoft.Json.dll new file mode 100644 index 0000000000000000000000000000000000000000..daf9dcd642654154161b2682672eabcec1f59482 Binary files /dev/null and b/Assets/Plugins/Newtonsoft.Json.dll differ diff --git a/Assets/Plugins/Newtonsoft.Json.dll.meta b/Assets/Plugins/Newtonsoft.Json.dll.meta new file mode 100644 index 0000000000000000000000000000000000000000..85c9f7e50ebf691f3a1f7410bff4ec670558a33d --- /dev/null +++ b/Assets/Plugins/Newtonsoft.Json.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: af697a4714685c94abab6b7116886ec3 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/PaintBall.meta b/Assets/Resources/Materials/PaintBall.meta new file mode 100644 index 0000000000000000000000000000000000000000..b0dc02038a6cd090ecaea395e4ff38ca321dc595 --- /dev/null +++ b/Assets/Resources/Materials/PaintBall.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4c181b5099414144db4bf93a11b4ff43 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/PaintBall/Terrain.mat b/Assets/Resources/Materials/PaintBall/Terrain.mat new file mode 100644 index 0000000000000000000000000000000000000000..cb1c01f4c4451356a2254839f50e7dcee55c618b --- /dev/null +++ b/Assets/Resources/Materials/PaintBall/Terrain.mat @@ -0,0 +1,125 @@ +%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: Terrain + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _NORMALMAP + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: aa1444def8812604397baec1a02ba5e8, type: 3} + m_Scale: {x: 50, y: 50} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + 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: 2800000, guid: aa1444def8812604397baec1a02ba5e8, type: 3} + m_Scale: {x: 50, y: 50} + 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} + - _ParallaxMap: + 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} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 100 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 1 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.1 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &5180938263402263829 +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: 5 diff --git a/Assets/Resources/Materials/PaintBall/Terrain.mat.meta b/Assets/Resources/Materials/PaintBall/Terrain.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..e534f779edd1dde12143b5accd8e7ae2c66b4bcf --- /dev/null +++ b/Assets/Resources/Materials/PaintBall/Terrain.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e275602c490d98540945536a133aa539 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/PaintBall/image.png b/Assets/Resources/Materials/PaintBall/image.png new file mode 100644 index 0000000000000000000000000000000000000000..a484d49af9e4ca16d08853a2dcf9be5b5caca972 Binary files /dev/null and b/Assets/Resources/Materials/PaintBall/image.png differ diff --git a/Assets/Resources/Materials/PaintBall/image.png.meta b/Assets/Resources/Materials/PaintBall/image.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..edc31a7c90badd3da8b945a069b83a587474f963 --- /dev/null +++ b/Assets/Resources/Materials/PaintBall/image.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 861bd763f169a30489691066f0a0abb0 +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 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + 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: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/PaintBall/player.mat b/Assets/Resources/Materials/PaintBall/player.mat new file mode 100644 index 0000000000000000000000000000000000000000..5dd4d35fb3c112de7e960987acf9af70ab869029 --- /dev/null +++ b/Assets/Resources/Materials/PaintBall/player.mat @@ -0,0 +1,125 @@ +%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: player + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 2 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + 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} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + 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} + - _ParallaxMap: + 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} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 8, g: 8, b: 8, a: 1} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &879184716729743911 +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: 5 diff --git a/Assets/Resources/Materials/PaintBall/player.mat.meta b/Assets/Resources/Materials/PaintBall/player.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..724a2c93cc5f3cd7897ca1ae4770dfa6646bbcbb --- /dev/null +++ b/Assets/Resources/Materials/PaintBall/player.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c1702426cc753d146bd7f6b67c07daa3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/PaintBall/point.mat b/Assets/Resources/Materials/PaintBall/point.mat new file mode 100644 index 0000000000000000000000000000000000000000..34a1dafbd3ac99eacdafa0c4ad0bbf28ddd61b49 --- /dev/null +++ b/Assets/Resources/Materials/PaintBall/point.mat @@ -0,0 +1,124 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6961888628319892129 +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: 5 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: point + m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + 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} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + 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} + - _ParallaxMap: + 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} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 0.9696857, b: 0, a: 1} + - _Color: {r: 0, g: 0.9500499, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Resources/Materials/PaintBall/point.mat.meta b/Assets/Resources/Materials/PaintBall/point.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..75ab86f8eaceb1458b8d88be777b2cd539a978d5 --- /dev/null +++ b/Assets/Resources/Materials/PaintBall/point.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7fb08e7744f609341999ba463fec7341 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/PaintBall/snow.mat b/Assets/Resources/Materials/PaintBall/snow.mat new file mode 100644 index 0000000000000000000000000000000000000000..b6657f82b1bda734b00d6effd99fc93f31e0f186 --- /dev/null +++ b/Assets/Resources/Materials/PaintBall/snow.mat @@ -0,0 +1,158 @@ +%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: snow + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: _SURFACE_TYPE_TRANSPARENT + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 2800000, guid: 861bd763f169a30489691066f0a0abb0, type: 3} + 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} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailTex: + 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} + - _ParallaxMap: + 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} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _ColorMask: 15 + - _ColorMode: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0.1 + - _DstBlend: 10 + - _EnvironmentReflections: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _Strength: 0.2 + - _Surface: 1 + - _UVSec: 0 + - _UseUIAlphaClip: 0 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &7669334060941986073 +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: 5 diff --git a/Assets/Resources/Materials/PaintBall/snow.mat.meta b/Assets/Resources/Materials/PaintBall/snow.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..27836c40f6cd77db1fd153748746109849898653 --- /dev/null +++ b/Assets/Resources/Materials/PaintBall/snow.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9063ba1a3bb1ded449da3b1e97ba6303 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/ak-Armed.prefab b/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/ak-Armed.prefab index a70d7ae33ff04a9fed14a43585180fd324cb8c4b..44c35c9ecead91b6dabc720c5f8b3c6f780db837 100644 --- a/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/ak-Armed.prefab +++ b/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/ak-Armed.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &2760893403006233311 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7759406008711778099} + m_Layer: 0 + m_Name: raypos + m_TagString: raypos + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7759406008711778099 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760893403006233311} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -0.002, z: -0.454} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2569206379503126172} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2803983642472965364 GameObject: m_ObjectHideFlags: 0 @@ -29,6 +60,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7097840042506843969} + - {fileID: 7759406008711778099} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/pistol-Armed.prefab b/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/pistol-Armed.prefab index 759fced2fb65780e4b884ac8f7963844e64bf418..c2f0ef910d30e6b16d76290998ff83e74905e0a7 100644 --- a/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/pistol-Armed.prefab +++ b/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/pistol-Armed.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &5707773516800020667 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1866593674888763546} + m_Layer: 0 + m_Name: raypos + m_TagString: raypos + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1866593674888763546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5707773516800020667} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.0261, z: -0.1505} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8397209958411005707} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7104207739489628120 GameObject: m_ObjectHideFlags: 0 @@ -29,6 +60,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 5715807170622082349} + - {fileID: 1866593674888763546} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/sniper-Armed.prefab b/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/sniper-Armed.prefab index c85430b7ec1ccf2e0a260cf9161dd9558ccad5ca..1250ce9b928cb72ff2730e120cc0571bc50d413e 100644 --- a/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/sniper-Armed.prefab +++ b/Assets/Resources/Models/Low Poly Weapons VOL.1/Prefabs/armes/sniper-Armed.prefab @@ -1,5 +1,36 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &604797763860051011 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8810187269295375614} + m_Layer: 0 + m_Name: raypos + m_TagString: raypos + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8810187269295375614 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 604797763860051011} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.0261, z: -0.706} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3900724223137115279} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &5955718864609359297 GameObject: m_ObjectHideFlags: 0 @@ -29,6 +60,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4465998683748754295} + - {fileID: 8810187269295375614} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Resources/Models/PaintBall.meta b/Assets/Resources/Models/PaintBall.meta new file mode 100644 index 0000000000000000000000000000000000000000..b68a0ee5008630af329b7d8a7448f29489a3022c --- /dev/null +++ b/Assets/Resources/Models/PaintBall.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d159b1d1389fb2e4281bb9b27f819734 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Models/PaintBall/bullet.prefab b/Assets/Resources/Models/PaintBall/bullet.prefab new file mode 100644 index 0000000000000000000000000000000000000000..9548da499c062d826f3a925fea56bc706a31d11c --- /dev/null +++ b/Assets/Resources/Models/PaintBall/bullet.prefab @@ -0,0 +1,99 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8148789982801293823 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5530785425934488641} + - component: {fileID: 7090018175730284109} + - component: {fileID: 1842184132909876826} + - component: {fileID: 2322507509234596626} + m_Layer: 0 + m_Name: bullet + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5530785425934488641 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8148789982801293823} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 20.7, z: 0} + m_LocalScale: {x: 0.1, y: 0.1, z: 0.1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7090018175730284109 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8148789982801293823} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1842184132909876826 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8148789982801293823} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 7fb08e7744f609341999ba463fec7341, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!135 &2322507509234596626 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8148789982801293823} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} diff --git a/Assets/Resources/Models/PaintBall/bullet.prefab.meta b/Assets/Resources/Models/PaintBall/bullet.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..f822c958ea0b407eef8f317af08b7671d8cb9e31 --- /dev/null +++ b/Assets/Resources/Models/PaintBall/bullet.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f3e11710fb1ea1a4aa950f4d8cc87f4e +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/paintball Audio.meta b/Assets/Resources/Sounds/paintball Audio.meta new file mode 100644 index 0000000000000000000000000000000000000000..e4e8b281783fe8e3dae1c17b9134cc49d69303ea --- /dev/null +++ b/Assets/Resources/Sounds/paintball Audio.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0be07fa05e053bb4ea51927e931b3f2b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/paintball Audio/day.mp3 b/Assets/Resources/Sounds/paintball Audio/day.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..9222d80ddcaf0a49c304583638d062bf6bb0d6d5 Binary files /dev/null and b/Assets/Resources/Sounds/paintball Audio/day.mp3 differ diff --git a/Assets/Resources/Sounds/paintball Audio/day.mp3.meta b/Assets/Resources/Sounds/paintball Audio/day.mp3.meta new file mode 100644 index 0000000000000000000000000000000000000000..11964add4831e7e9f2cd94ab4ae59ef7443a06d6 --- /dev/null +++ b/Assets/Resources/Sounds/paintball Audio/day.mp3.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 10a9c55d3ebbfc7439a4bd3d9a225341 +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/paintball Audio/night.mp3 b/Assets/Resources/Sounds/paintball Audio/night.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..eb5053d8d8b42d88bca78524d4a58f646337e6a7 Binary files /dev/null and b/Assets/Resources/Sounds/paintball Audio/night.mp3 differ diff --git a/Assets/Resources/Sounds/paintball Audio/night.mp3.meta b/Assets/Resources/Sounds/paintball Audio/night.mp3.meta new file mode 100644 index 0000000000000000000000000000000000000000..605f54492e184d20ea6bd7569af07426c1a5514f --- /dev/null +++ b/Assets/Resources/Sounds/paintball Audio/night.mp3.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 536bfa96bd9046948a91d7d19284866f +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/paintball Audio/rain.mp3 b/Assets/Resources/Sounds/paintball Audio/rain.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..92673da16709909a91bbe8a118755b425c6085a2 Binary files /dev/null and b/Assets/Resources/Sounds/paintball Audio/rain.mp3 differ diff --git a/Assets/Resources/Sounds/paintball Audio/rain.mp3.meta b/Assets/Resources/Sounds/paintball Audio/rain.mp3.meta new file mode 100644 index 0000000000000000000000000000000000000000..e3041cc67961ffcdd4b204b450b970ce882d7ad7 --- /dev/null +++ b/Assets/Resources/Sounds/paintball Audio/rain.mp3.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: b694cd83a4afedc4f8c43974779522a6 +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/paintball Audio/snowStorm.mp3 b/Assets/Resources/Sounds/paintball Audio/snowStorm.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..aaa1bdbc4d6256ff0b6883d8709440dd4f5bbeae Binary files /dev/null and b/Assets/Resources/Sounds/paintball Audio/snowStorm.mp3 differ diff --git a/Assets/Resources/Sounds/paintball Audio/snowStorm.mp3.meta b/Assets/Resources/Sounds/paintball Audio/snowStorm.mp3.meta new file mode 100644 index 0000000000000000000000000000000000000000..e6c5b068697a247bb2446c5700890e5c672bdb91 --- /dev/null +++ b/Assets/Resources/Sounds/paintball Audio/snowStorm.mp3.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: c141fb8a8b456c64d9e873cbe1a653a8 +AudioImporter: + externalObjects: {} + serializedVersion: 6 + defaultSettings: + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Textures/PaintBall.meta b/Assets/Resources/Textures/PaintBall.meta new file mode 100644 index 0000000000000000000000000000000000000000..264fd12cadc8312beb786750964f3fe1b950a03f --- /dev/null +++ b/Assets/Resources/Textures/PaintBall.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a0b792dd7f287424db265e50eaf7ad95 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Textures/PaintBall/Snow_002_OCC.jpg b/Assets/Resources/Textures/PaintBall/Snow_002_OCC.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c91b29ab73bef69a306a931268d8b5201fd7477 Binary files /dev/null and b/Assets/Resources/Textures/PaintBall/Snow_002_OCC.jpg differ diff --git a/Assets/Resources/Textures/PaintBall/Snow_002_OCC.jpg.meta b/Assets/Resources/Textures/PaintBall/Snow_002_OCC.jpg.meta new file mode 100644 index 0000000000000000000000000000000000000000..b11ec6eab435428ab40cdcaf2bd3a3fa81348da4 --- /dev/null +++ b/Assets/Resources/Textures/PaintBall/Snow_002_OCC.jpg.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: a4472ea654a7e9243a9f9be5e6a040f1 +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 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + 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: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Textures/PaintBall/mask.png b/Assets/Resources/Textures/PaintBall/mask.png new file mode 100644 index 0000000000000000000000000000000000000000..e3e6324761559d47bfd32ee5928edac3a4b10bf8 Binary files /dev/null and b/Assets/Resources/Textures/PaintBall/mask.png differ diff --git a/Assets/Resources/Textures/PaintBall/mask.png.meta b/Assets/Resources/Textures/PaintBall/mask.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..9ae476b24a69c9cd6d4406e7527babc9bd494ade --- /dev/null +++ b/Assets/Resources/Textures/PaintBall/mask.png.meta @@ -0,0 +1,122 @@ +fileFormatVersion: 2 +guid: f60c594e6413cf7488be4a9697f6ee77 +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: 1 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + 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: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Textures/Sand_Beach_vd3lecfs_2K_surface_ms/vd3lecfs_2K_Normal.jpg.meta b/Assets/Resources/Textures/Sand_Beach_vd3lecfs_2K_surface_ms/vd3lecfs_2K_Normal.jpg.meta index 86054c81a7d2405ca9c93d915819c74a2df2fd7a..fe4b1bda36f65af672c39f25ee7b69a661dd5298 100644 --- a/Assets/Resources/Textures/Sand_Beach_vd3lecfs_2K_surface_ms/vd3lecfs_2K_Normal.jpg.meta +++ b/Assets/Resources/Textures/Sand_Beach_vd3lecfs_2K_surface_ms/vd3lecfs_2K_Normal.jpg.meta @@ -7,7 +7,7 @@ TextureImporter: mipmaps: mipMapMode: 0 enableMipMap: 1 - sRGBTexture: 1 + sRGBTexture: 0 linearTexture: 0 fadeOut: 0 borderMipMap: 0 @@ -53,7 +53,7 @@ TextureImporter: alphaUsage: 1 alphaIsTransparency: 0 spriteTessellationDetail: -1 - textureType: 0 + textureType: 1 textureShape: 1 singleChannelComponent: 0 flipbookRows: 1 diff --git a/Assets/Resources/Textures/grass1-unity.meta b/Assets/Resources/Textures/grass1-unity.meta new file mode 100644 index 0000000000000000000000000000000000000000..7e5d3902b4900cae77e467e356bfa02bea4f2b13 --- /dev/null +++ b/Assets/Resources/Textures/grass1-unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ab6d7cd7a157c6a41bfb23c741f90efe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Textures/grass1-unity/grass1-albedo3.png b/Assets/Resources/Textures/grass1-unity/grass1-albedo3.png new file mode 100644 index 0000000000000000000000000000000000000000..0305255474d55bfda0601693a1a1ecde564a44d9 Binary files /dev/null and b/Assets/Resources/Textures/grass1-unity/grass1-albedo3.png differ diff --git a/Assets/Resources/Textures/grass1-unity/grass1-albedo3.png.meta b/Assets/Resources/Textures/grass1-unity/grass1-albedo3.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..835c7fdfc55b7e20c98b3fea96d97e1d4bcb60f9 --- /dev/null +++ b/Assets/Resources/Textures/grass1-unity/grass1-albedo3.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 3c256837f46b9e04e97a737f95d15216 +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 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + 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: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Textures/grass1-unity/grass1-normal1-ogl.png b/Assets/Resources/Textures/grass1-unity/grass1-normal1-ogl.png new file mode 100644 index 0000000000000000000000000000000000000000..220710a7feffbb4f86a4388e4ab08016f0488df6 Binary files /dev/null and b/Assets/Resources/Textures/grass1-unity/grass1-normal1-ogl.png differ diff --git a/Assets/Resources/Textures/grass1-unity/grass1-normal1-ogl.png.meta b/Assets/Resources/Textures/grass1-unity/grass1-normal1-ogl.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..c27347662eacbdd405a3d9e033ce2fa084f98e55 --- /dev/null +++ b/Assets/Resources/Textures/grass1-unity/grass1-normal1-ogl.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 0119921eec0916d4abf40c839bdb6d20 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + 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 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + 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: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Textures/strata-rock1-unity.meta b/Assets/Resources/Textures/strata-rock1-unity.meta new file mode 100644 index 0000000000000000000000000000000000000000..c5f771bd78f3d05317cca630c4520d05e1493206 --- /dev/null +++ b/Assets/Resources/Textures/strata-rock1-unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5c4eb882bb166814daa58d674a5d588f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_albedo.png b/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_albedo.png new file mode 100644 index 0000000000000000000000000000000000000000..85f88782393f7211bb8b42d5822adcb4c248f83e Binary files /dev/null and b/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_albedo.png differ diff --git a/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_albedo.png.meta b/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_albedo.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..7c1a731b71c47a66cdbdd1191bae733877ff98a8 --- /dev/null +++ b/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_albedo.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 4b9ecdd93650404488118b492219fbb6 +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 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + 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: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_normal-ogl.png b/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_normal-ogl.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a4554022d830b3967f22d5d53bc3595433280d Binary files /dev/null and b/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_normal-ogl.png differ diff --git a/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_normal-ogl.png.meta b/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_normal-ogl.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..33fdb71b7c749e056ee0b2d6bd12ec5019d263e5 --- /dev/null +++ b/Assets/Resources/Textures/strata-rock1-unity/strata-rock1_normal-ogl.png.meta @@ -0,0 +1,98 @@ +fileFormatVersion: 2 +guid: 1b3cb7bd3cf70524bb964d065228de1c +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 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + 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: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Paintball/final.meta b/Assets/Scenes/Paintball/final.meta new file mode 100644 index 0000000000000000000000000000000000000000..5b4621ce03afd29f4c7483b36d4186a515cb5cc6 --- /dev/null +++ b/Assets/Scenes/Paintball/final.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b84e6cc5cf1f3ec4982e2d0edd7f6403 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Paintball/final/visualEffects Profile.asset b/Assets/Scenes/Paintball/final/visualEffects Profile.asset new file mode 100644 index 0000000000000000000000000000000000000000..9563fdbca83cd9f239acd68b644df188aa5687fd --- /dev/null +++ b/Assets/Scenes/Paintball/final/visualEffects Profile.asset @@ -0,0 +1,210 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-5884365655479226711 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 81180773991d8724ab7f2d216912b564, type: 3} + m_Name: ChromaticAberration + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0.149 +--- !u!114 &-432017762007678750 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 899c54efeace73346a0a16faa3afe726, type: 3} + m_Name: Vignette + m_EditorClassIdentifier: + active: 1 + color: + m_OverrideState: 1 + m_Value: {r: 0, g: 0, b: 0, a: 1} + center: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + intensity: + m_OverrideState: 1 + m_Value: 0.451 + smoothness: + m_OverrideState: 1 + m_Value: 0.2 + rounded: + m_OverrideState: 1 + m_Value: 0 +--- !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: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: visualEffects Profile + m_EditorClassIdentifier: + components: + - {fileID: 894302111691290620} + - {fileID: 6677248730400538051} + - {fileID: -5884365655479226711} + - {fileID: 4525532622757164923} + - {fileID: -432017762007678750} + - {fileID: 708510467543391684} +--- !u!114 &708510467543391684 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 558a8e2b6826cf840aae193990ba9f2e, type: 3} + m_Name: ShadowsMidtonesHighlights + m_EditorClassIdentifier: + active: 1 + shadows: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: -0.1641791} + midtones: + m_OverrideState: 0 + m_Value: {x: 1, y: 1, z: 1, w: 0} + highlights: + m_OverrideState: 0 + m_Value: {x: 1, y: 1, z: 1, w: 0} + shadowsStart: + m_OverrideState: 0 + m_Value: 0 + shadowsEnd: + m_OverrideState: 0 + m_Value: 0.3 + highlightsStart: + m_OverrideState: 0 + m_Value: 0.55 + highlightsEnd: + m_OverrideState: 0 + m_Value: 1 +--- !u!114 &894302111691290620 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: c01700fd266d6914ababb731e09af2eb, type: 3} + m_Name: DepthOfField + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 2 + gaussianStart: + m_OverrideState: 1 + m_Value: 10 + gaussianEnd: + m_OverrideState: 1 + m_Value: 30 + gaussianMaxRadius: + m_OverrideState: 1 + m_Value: 1 + highQualitySampling: + m_OverrideState: 1 + m_Value: 0 + focusDistance: + m_OverrideState: 1 + m_Value: 2 + aperture: + m_OverrideState: 1 + m_Value: 5.6 + focalLength: + m_OverrideState: 1 + m_Value: 50 + bladeCount: + m_OverrideState: 1 + m_Value: 5 + bladeCurvature: + m_OverrideState: 1 + m_Value: 1 + bladeRotation: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &4525532622757164923 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 0 + m_Value: 0 + quality: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + clamp: + m_OverrideState: 1 + m_Value: 0.05 +--- !u!114 &6677248730400538051 +MonoBehaviour: + m_ObjectHideFlags: 3 + 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: 0b2db86121404754db890f4c8dfe81b2, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + threshold: + m_OverrideState: 1 + m_Value: 1 + intensity: + m_OverrideState: 1 + m_Value: 0.2 + scatter: + m_OverrideState: 1 + m_Value: 0.7 + clamp: + m_OverrideState: 1 + m_Value: 10 + tint: + m_OverrideState: 1 + m_Value: {r: 0.4669811, g: 0.91301024, b: 1, a: 1} + highQualityFiltering: + m_OverrideState: 1 + m_Value: 0 + skipIterations: + m_OverrideState: 1 + m_Value: 1 + dirtTexture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dirtIntensity: + m_OverrideState: 1 + m_Value: 0 diff --git a/Assets/Scenes/Paintball/final/visualEffects Profile.asset.meta b/Assets/Scenes/Paintball/final/visualEffects Profile.asset.meta new file mode 100644 index 0000000000000000000000000000000000000000..20c16e854f2f56a17b803734472324917133812d --- /dev/null +++ b/Assets/Scenes/Paintball/final/visualEffects Profile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2610a5cad27391642a28271ded477618 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Paintball/paintballFinal.unity b/Assets/Scenes/Paintball/paintballFinal.unity new file mode 100644 index 0000000000000000000000000000000000000000..2089b0cabae6f323ee77f4433d2fa6e1b5bb137d --- /dev/null +++ b/Assets/Scenes/Paintball/paintballFinal.unity @@ -0,0 +1,3793 @@ +%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: 2100000, guid: 71f14a2d79f732f4d9893ef1b911f4ff, type: 2} + 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.73024106, g: 0.78898257, b: 0.8498601, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + 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_LightingSettings: {fileID: 0} +--- !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 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &241800583 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 241800585} + - component: {fileID: 241800584} + m_Layer: 0 + m_Name: window system + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &241800584 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 241800583} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1877e22f040978e45a11d81a1433908c, type: 3} + m_Name: + m_EditorClassIdentifier: + keymap: {fileID: 11400000, guid: 8472c820901c58044a3d291c3c781938, type: 2} + Canvas: {fileID: 661245552} + menu: {fileID: 8334631406055393530} + gameUi: {fileID: 3178113492877850818} + gameManager: {fileID: 906003099} +--- !u!4 &241800585 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 241800583} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -27.85, y: -15.512, z: -33.81} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 884996278} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &259004887 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 259004888} + - component: {fileID: 259004891} + - component: {fileID: 259004890} + - component: {fileID: 259004889} + m_Layer: 0 + m_Name: wall (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &259004888 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 259004887} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: 257, y: 5, z: 128.5} + m_LocalScale: {x: 257, y: 10, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1758936852} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!65 &259004889 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 259004887} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &259004890 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 259004887} + m_Enabled: 0 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &259004891 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 259004887} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &575686658 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 8289360560222343242, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_Antialiasing + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343242, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_RenderPostProcessing + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343243, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343243, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_LocalPosition.x + value: 27.806196 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343243, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_LocalPosition.y + value: 19.55 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343243, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_LocalPosition.z + value: 25.811121 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343243, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_LocalRotation.w + value: 0.9808191 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343243, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_LocalRotation.x + value: 0.17851484 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343243, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_LocalRotation.y + value: 0.07700592 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343243, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_LocalRotation.z + value: -0.014015524 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343243, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343243, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343243, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8289360560222343246, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} + propertyPath: m_Name + value: Main Camera (1) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3d0d4ed8194bad146aa0309984a81624, type: 3} +--- !u!1 &661245551 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 661245552} + - component: {fileID: 661245555} + - component: {fileID: 661245554} + - component: {fileID: 661245553} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &661245552 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 661245551} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3178113492877850817} + - {fileID: 8334631406055393525} + m_Father: {fileID: 0} + m_RootOrder: 5 + 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} +--- !u!114 &661245553 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 661245551} + 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 &661245554 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 661245551} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &661245555 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 661245551} + 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: 25 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!1 &764889309 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 764889310} + - component: {fileID: 764889313} + - component: {fileID: 764889312} + - component: {fileID: 764889311} + m_Layer: 0 + m_Name: wall (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &764889310 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 764889309} + m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 5, z: 128.5} + m_LocalScale: {x: 257, y: 10, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1758936852} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} +--- !u!65 &764889311 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 764889309} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &764889312 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 764889309} + m_Enabled: 0 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &764889313 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 764889309} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &829193443 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 829193444} + - component: {fileID: 829193446} + - component: {fileID: 829193445} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &829193444 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 829193443} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.749764, y: 0.749764, z: 0.749764} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3178113492877850817} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 56.232292, y: -5.6232266} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &829193445 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 829193443} + 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, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 844916cda8bfbcd4b84d48c3cc095fd8, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &829193446 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 829193443} + m_CullTransparentMesh: 1 +--- !u!1 &884996277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 884996278} + m_Layer: 0 + m_Name: systems + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &884996278 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 884996277} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 27.85, y: 15.512, z: 33.81} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1085061537} + - {fileID: 906003100} + - {fileID: 1758936852} + - {fileID: 241800585} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &906003098 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 906003100} + - component: {fileID: 906003099} + m_Layer: 0 + m_Name: gameManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &906003099 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 906003098} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dd24a7339b095b948829fc9a37beb1ef, type: 3} + m_Name: + m_EditorClassIdentifier: + isPlaying: 0 + isAnyWindowActive: 0 +--- !u!4 &906003100 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 906003098} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 884996278} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1085061535 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1085061537} + - component: {fileID: 1085061536} + - component: {fileID: 1085061538} + m_Layer: 0 + m_Name: weather System + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!114 &1085061536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1085061535} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 56941ee72aad70246ac296168be124b7, type: 3} + m_Name: + m_EditorClassIdentifier: + weathers: + - timeOfDay: 1 + weathersType: + - cast: 2 + weathers: + lightIntensity: 0.5 + smootheness: 0 + skybox: {fileID: 2100000, guid: fe4e130f9947345a2b213cb5038851a2, type: 2} + particles: {fileID: 0} + Texture: {fileID: 0} + soundeffect: {fileID: 8300000, guid: 10a9c55d3ebbfc7439a4bd3d9a225341, type: 3} + isUsingParticles: 0 + isUsingTexture: 0 + isUsingAudio: 1 + - cast: 0 + weathers: + lightIntensity: 0.3 + smootheness: 0.2 + skybox: {fileID: 2100000, guid: 01f4eb1c73693428d923f1520032e7f9, type: 2} + particles: {fileID: 5995571621279174926, guid: 502af3364ee2f3146ab661097dfbae1f, type: 3} + Texture: {fileID: 2800000, guid: a4472ea654a7e9243a9f9be5e6a040f1, type: 3} + soundeffect: {fileID: 8300000, guid: c141fb8a8b456c64d9e873cbe1a653a8, type: 3} + isUsingParticles: 1 + isUsingTexture: 1 + isUsingAudio: 1 + - cast: 1 + weathers: + lightIntensity: 0.3 + smootheness: 0.4 + skybox: {fileID: 2100000, guid: 01f4eb1c73693428d923f1520032e7f9, type: 2} + particles: {fileID: 5995571621279174926, guid: c1ac47c9bdffa594d9a8316198af2c12, type: 3} + Texture: {fileID: 0} + soundeffect: {fileID: 8300000, guid: b694cd83a4afedc4f8c43974779522a6, type: 3} + isUsingParticles: 1 + isUsingTexture: 0 + isUsingAudio: 1 + - cast: 3 + weathers: + lightIntensity: 0.5 + smootheness: 0.1 + skybox: {fileID: 2100000, guid: 3a6db933fef1d4c759bf21220420505f, type: 2} + particles: {fileID: 0} + Texture: {fileID: 0} + soundeffect: {fileID: 8300000, guid: 10a9c55d3ebbfc7439a4bd3d9a225341, type: 3} + isUsingParticles: 0 + isUsingTexture: 0 + isUsingAudio: 1 + - timeOfDay: 0 + weathersType: + - cast: 2 + weathers: + lightIntensity: 0.6 + smootheness: 0 + skybox: {fileID: 2100000, guid: 71f14a2d79f732f4d9893ef1b911f4ff, type: 2} + particles: {fileID: 0} + Texture: {fileID: 0} + soundeffect: {fileID: 8300000, guid: 10a9c55d3ebbfc7439a4bd3d9a225341, type: 3} + isUsingParticles: 0 + isUsingTexture: 0 + isUsingAudio: 1 + - cast: 0 + weathers: + lightIntensity: 0.03 + smootheness: 0.3 + skybox: {fileID: 2100000, guid: 54fe2f000ad8f424fb63cc3ea0ae2bb2, type: 2} + particles: {fileID: 5995571621279174926, guid: 502af3364ee2f3146ab661097dfbae1f, type: 3} + Texture: {fileID: 2800000, guid: a4472ea654a7e9243a9f9be5e6a040f1, type: 3} + soundeffect: {fileID: 8300000, guid: c141fb8a8b456c64d9e873cbe1a653a8, type: 3} + isUsingParticles: 1 + isUsingTexture: 1 + isUsingAudio: 1 + - cast: 1 + weathers: + lightIntensity: 0.03 + smootheness: 0.4 + skybox: {fileID: 2100000, guid: 54fe2f000ad8f424fb63cc3ea0ae2bb2, type: 2} + particles: {fileID: 5995571621279174926, guid: c1ac47c9bdffa594d9a8316198af2c12, type: 3} + Texture: {fileID: 0} + soundeffect: {fileID: 8300000, guid: b694cd83a4afedc4f8c43974779522a6, type: 3} + isUsingParticles: 1 + isUsingTexture: 0 + isUsingAudio: 1 + - cast: 3 + weathers: + lightIntensity: 0.6 + smootheness: 0.1 + skybox: {fileID: 2100000, guid: 73324b55f67f54c7bbf43204788b8bbe, type: 2} + particles: {fileID: 0} + Texture: {fileID: 0} + soundeffect: {fileID: 8300000, guid: 10a9c55d3ebbfc7439a4bd3d9a225341, type: 3} + isUsingParticles: 0 + isUsingTexture: 0 + isUsingAudio: 1 + - timeOfDay: 2 + weathersType: + - cast: 2 + weathers: + lightIntensity: 0 + smootheness: 0 + skybox: {fileID: 2100000, guid: eac2ef371405749e0bd050b4c3272f16, type: 2} + particles: {fileID: 0} + Texture: {fileID: 0} + soundeffect: {fileID: 8300000, guid: 536bfa96bd9046948a91d7d19284866f, type: 3} + isUsingParticles: 0 + isUsingTexture: 0 + isUsingAudio: 1 + - cast: 0 + weathers: + lightIntensity: 0 + smootheness: 0.2 + skybox: {fileID: 2100000, guid: eac2ef371405749e0bd050b4c3272f16, type: 2} + particles: {fileID: 5995571621279174926, guid: 502af3364ee2f3146ab661097dfbae1f, type: 3} + Texture: {fileID: 2800000, guid: a4472ea654a7e9243a9f9be5e6a040f1, type: 3} + soundeffect: {fileID: 8300000, guid: c141fb8a8b456c64d9e873cbe1a653a8, type: 3} + isUsingParticles: 1 + isUsingTexture: 1 + isUsingAudio: 1 + - cast: 1 + weathers: + lightIntensity: 0 + smootheness: 0.3 + skybox: {fileID: 2100000, guid: 51b74d7bad397457d883c5940f7664d8, type: 2} + particles: {fileID: 5995571621279174926, guid: c1ac47c9bdffa594d9a8316198af2c12, type: 3} + Texture: {fileID: 0} + soundeffect: {fileID: 8300000, guid: b694cd83a4afedc4f8c43974779522a6, type: 3} + isUsingParticles: 1 + isUsingTexture: 0 + isUsingAudio: 1 + lightSource: {fileID: 1098560893} + mapHandler: {fileID: 1758936849} + audioSource: {fileID: 1085061538} + currentWeather: + lightIntensity: 1 + smootheness: 1 + skybox: {fileID: 0} + particles: {fileID: 0} + Texture: {fileID: 0} + soundeffect: {fileID: 0} + isUsingParticles: 0 + isUsingTexture: 0 + isUsingAudio: 0 +--- !u!4 &1085061537 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1085061535} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 101.836845, y: 9.575681, z: 77.8427} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 884996278} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!82 &1085061538 +AudioSource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1085061535} + m_Enabled: 1 + serializedVersion: 4 + OutputAudioMixerGroup: {fileID: 0} + m_audioClip: {fileID: 0} + m_PlayOnAwake: 1 + m_Volume: 1 + m_Pitch: 1 + Loop: 0 + Mute: 0 + Spatialize: 0 + SpatializePostEffects: 0 + Priority: 128 + DopplerLevel: 1 + MinDistance: 1 + MaxDistance: 500 + Pan2D: 0 + rolloffMode: 0 + BypassEffects: 0 + BypassListenerEffects: 0 + BypassReverbZones: 0 + rolloffCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + panLevelCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + spreadCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + reverbZoneMixCustomCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!1 &1089771874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1089771876} + - component: {fileID: 1089771875} + m_Layer: 0 + m_Name: visualEffects + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1089771875 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089771874} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: 2610a5cad27391642a28271ded477618, type: 2} +--- !u!4 &1089771876 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089771874} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 125.694534, y: 67.33374, z: 125.25146} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1098560892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1098560894} + - component: {fileID: 1098560893} + - component: {fileID: 1098560895} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1098560893 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1098560892} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1098560894 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1098560892} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &1098560895 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1098560892} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &1275552793 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1275552796} + - component: {fileID: 1275552795} + - component: {fileID: 1275552794} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1275552794 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1275552793} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &1275552795 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1275552793} + 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 &1275552796 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1275552793} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1514504576 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1514504577} + - component: {fileID: 1514504580} + - component: {fileID: 1514504579} + - component: {fileID: 1514504578} + m_Layer: 0 + m_Name: wall + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1514504577 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1514504576} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 128.5, y: 5, z: 0} + m_LocalScale: {x: 257, y: 10, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1758936852} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1514504578 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1514504576} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1514504579 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1514504576} + m_Enabled: 0 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1514504580 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1514504576} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1694453447 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1694453448} + - component: {fileID: 1694453451} + - component: {fileID: 1694453450} + - component: {fileID: 1694453449} + m_Layer: 0 + m_Name: wall (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1694453448 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1694453447} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 128.5, y: 5, z: 257} + m_LocalScale: {x: 257, y: 10, z: 0.5} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1758936852} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1694453449 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1694453447} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1694453450 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1694453447} + m_Enabled: 0 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1694453451 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1694453447} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &1717349751 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 3013973457403394832, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalPosition.x + value: -0.13380432 + objectReference: {fileID: 0} + - target: {fileID: 3013973457403394832, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalPosition.y + value: 3.999999 + objectReference: {fileID: 0} + - target: {fileID: 3013973457403394832, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalPosition.z + value: -7.9988804 + objectReference: {fileID: 0} + - target: {fileID: 3013973458107989876, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_Lens.m_SensorSize.x + value: 1.778004 + objectReference: {fileID: 0} + - target: {fileID: 3013973458107989877, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.w + value: 0.9475592 + objectReference: {fileID: 0} + - target: {fileID: 3013973458107989877, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.x + value: 0.30984733 + objectReference: {fileID: 0} + - target: {fileID: 3013973458107989877, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.y + value: 0.078018025 + objectReference: {fileID: 0} + - target: {fileID: 3013973458107989877, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.z + value: -0.0062874416 + objectReference: {fileID: 0} + - target: {fileID: 3013973458391752942, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_Lens.m_SensorSize.x + value: 1.778004 + objectReference: {fileID: 0} + - target: {fileID: 3013973458391752943, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.w + value: 0.95303833 + objectReference: {fileID: 0} + - target: {fileID: 3013973458391752943, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.x + value: 0.29256046 + objectReference: {fileID: 0} + - target: {fileID: 3013973458391752943, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.y + value: 0.07811948 + objectReference: {fileID: 0} + - target: {fileID: 3013973458391752943, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.z + value: -0.0048672967 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403716, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: keymap + value: + objectReference: {fileID: 11400000, guid: 8472c820901c58044a3d291c3c781938, type: 2} + - target: {fileID: 3013973458651403717, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403717, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalPosition.x + value: 27.94 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403717, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalPosition.y + value: 15.55 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403717, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalPosition.z + value: 33.81 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403717, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403717, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403717, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403717, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403717, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403717, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403717, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3013973458651403719, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: c1702426cc753d146bd7f6b67c07daa3, type: 2} + - target: {fileID: 3013973458651403722, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_Name + value: Capsule + objectReference: {fileID: 0} + - target: {fileID: 3013973458692919291, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalPosition.y + value: 0.61 + objectReference: {fileID: 0} + - target: {fileID: 3013973459046934707, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_Lens.m_SensorSize.x + value: 1.778004 + objectReference: {fileID: 0} + - target: {fileID: 3013973459046934708, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.w + value: 0.958189 + objectReference: {fileID: 0} + - target: {fileID: 3013973459046934708, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.x + value: 0.27522278 + objectReference: {fileID: 0} + - target: {fileID: 3013973459046934708, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.y + value: 0.07819492 + objectReference: {fileID: 0} + - target: {fileID: 3013973459046934708, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: m_LocalRotation.z + value: -0.0034492929 + objectReference: {fileID: 0} + - target: {fileID: 5024897611587778104, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: keymap + value: + objectReference: {fileID: 11400000, guid: 8472c820901c58044a3d291c3c781938, type: 2} + - target: {fileID: 5024897611587778104, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: paintBallManager + value: + objectReference: {fileID: 906003099} + - target: {fileID: 5024897611587778106, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: infoUI + value: + objectReference: {fileID: 3178113493767919794} + - target: {fileID: 5024897611587778106, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: slotList.Array.size + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 5024897611587778106, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: slotList.Array.data[0] + value: + objectReference: {fileID: 3178113493886682856} + - target: {fileID: 5024897611587778106, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: slotList.Array.data[1] + value: + objectReference: {fileID: 3178113493857986775} + - target: {fileID: 5024897611587778106, guid: ae35550aa2ee7004db6783f134886bed, type: 3} + propertyPath: slotList.Array.data[2] + value: + objectReference: {fileID: 3178113493831002902} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ae35550aa2ee7004db6783f134886bed, type: 3} +--- !u!1 &1758936848 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1758936852} + - component: {fileID: 1758936851} + - component: {fileID: 1758936850} + - component: {fileID: 1758936849} + m_Layer: 0 + m_Name: map system + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!114 &1758936849 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758936848} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 495e018bea939854188d7f65db2e016e, type: 3} + m_Name: + m_EditorClassIdentifier: + size: 257 + maxHeight: 30 + scale: 10 + depth: 0.6 + terrain: {fileID: 15600000, guid: eaa5eeae8e9a1b942a0e270d5b08f460, type: 2} + textures: + - texture: {fileID: 2800000, guid: ad5da944c9c30854daabd4212c18725e, type: 3} + normal: {fileID: 2800000, guid: 23659f58f3d8ca146b395a9307852f69, type: 3} + - texture: {fileID: 2800000, guid: aa1444def8812604397baec1a02ba5e8, type: 3} + normal: {fileID: 0} + - texture: {fileID: 2800000, guid: 3c256837f46b9e04e97a737f95d15216, type: 3} + normal: {fileID: 2800000, guid: 0119921eec0916d4abf40c839bdb6d20, type: 3} + - texture: {fileID: 2800000, guid: 4b9ecdd93650404488118b492219fbb6, type: 3} + normal: {fileID: 2800000, guid: 1b3cb7bd3cf70524bb964d065228de1c, type: 3} + walls: + - {fileID: 1514504576} + - {fileID: 764889309} + - {fileID: 259004887} + - {fileID: 1694453447} + terrainMap: {fileID: 2100000, guid: e275602c490d98540945536a133aa539, type: 2} + egyptMap: {fileID: 4748562581652460383, guid: 2598c3aef4da7c34bacce11a6f3da47d, type: 3} + mask: {fileID: 2800000, guid: f60c594e6413cf7488be4a9697f6ee77, type: 3} +--- !u!154 &1758936850 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758936848} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: eaa5eeae8e9a1b942a0e270d5b08f460, type: 2} + m_EnableTreeColliders: 1 +--- !u!218 &1758936851 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758936848} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: eaa5eeae8e9a1b942a0e270d5b08f460, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: e275602c490d98540945536a133aa539, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.0256 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!4 &1758936852 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758936848} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -27.85, y: -15.512, z: -33.81} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1514504577} + - {fileID: 764889310} + - {fileID: 259004888} + - {fileID: 1694453448} + m_Father: {fileID: 884996278} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!222 &3178113492546424482 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113492546424485} + m_CullTransparentMesh: 1 +--- !u!114 &3178113492546424483 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113492546424485} + 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: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3178113492546424484 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113492546424485} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3178113493886682839} + 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!1 &3178113492546424485 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113492546424484} + - component: {fileID: 3178113492546424482} + - component: {fileID: 3178113492546424483} + m_Layer: 5 + m_Name: img + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &3178113492877850816 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113492877850818} + 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: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3178113492877850817 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113492877850818} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.3337531, y: 1.3337531, z: 1.3337531} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 829193444} + - {fileID: 3178113493160151570} + - {fileID: 3178113493767919793} + m_Father: {fileID: 661245552} + 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: -75, y: 7.5} + m_SizeDelta: {x: -150, y: -145} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3178113492877850818 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113492877850817} + - component: {fileID: 3178113492877850831} + - component: {fileID: 3178113492877850816} + m_Layer: 5 + m_Name: weaponPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &3178113492877850831 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113492877850818} + m_CullTransparentMesh: 1 +--- !u!222 &3178113493160151568 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493160151571} + m_CullTransparentMesh: 1 +--- !u!114 &3178113493160151569 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493160151571} + 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, g: 0, b: 0, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3178113493160151570 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493160151571} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3178113493886682839} + - {fileID: 3178113493857986774} + - {fileID: 3178113493831002901} + m_Father: {fileID: 3178113492877850817} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -95, y: 31.3} + m_SizeDelta: {x: 340, y: 120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3178113493160151571 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113493160151570} + - component: {fileID: 3178113493160151568} + - component: {fileID: 3178113493160151569} + m_Layer: 5 + m_Name: slotbar + m_TagString: slotbar + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3178113493395293392 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493395293393} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3178113493767919793} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 160, y: -60} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3178113493395293393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113493395293392} + - component: {fileID: 3178113493395293406} + - component: {fileID: 3178113493395293407} + m_Layer: 5 + m_Name: Ammo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &3178113493395293406 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493395293393} + m_CullTransparentMesh: 1 +--- !u!114 &3178113493395293407 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493395293393} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Ammo:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 15 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &3178113493450356995 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493450356998} + m_CullTransparentMesh: 1 +--- !u!114 &3178113493450356996 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493450356998} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'Arme:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 15 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!224 &3178113493450356997 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493450356998} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3178113493767919793} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 160, y: -30} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3178113493450356998 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113493450356997} + - component: {fileID: 3178113493450356995} + - component: {fileID: 3178113493450356996} + m_Layer: 5 + m_Name: Arme + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &3178113493494581864 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493494581867} + m_CullTransparentMesh: 1 +--- !u!114 &3178113493494581865 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493494581867} + 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: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3178113493494581866 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493494581867} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3178113493831002901} + 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!1 &3178113493494581867 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113493494581866} + - component: {fileID: 3178113493494581864} + - component: {fileID: 3178113493494581865} + m_Layer: 5 + m_Name: img + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &3178113493526904330 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493526904333} + m_CullTransparentMesh: 1 +--- !u!114 &3178113493526904331 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493526904333} + 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: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3178113493526904332 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493526904333} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3178113493767919793} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 30, y: 0} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3178113493526904333 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113493526904332} + - component: {fileID: 3178113493526904330} + - component: {fileID: 3178113493526904331} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &3178113493533127107 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493533127110} + m_CullTransparentMesh: 1 +--- !u!114 &3178113493533127108 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493533127110} + 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: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3178113493533127109 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493533127110} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3178113493857986774} + 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!1 &3178113493533127110 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113493533127109} + - component: {fileID: 3178113493533127107} + - component: {fileID: 3178113493533127108} + m_Layer: 5 + m_Name: img + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &3178113493767919792 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493767919794} + 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.15686275, g: 0.15686275, b: 0.15686275, a: 0.83137256} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3178113493767919793 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493767919794} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3178113493450356997} + - {fileID: 3178113493526904332} + - {fileID: 3178113493395293392} + m_Father: {fileID: 3178113492877850817} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -110, y: -40} + m_SizeDelta: {x: 200, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3178113493767919794 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113493767919793} + - component: {fileID: 3178113493767919807} + - component: {fileID: 3178113493767919792} + m_Layer: 5 + m_Name: Info + m_TagString: infoBarUI + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &3178113493767919807 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493767919794} + m_CullTransparentMesh: 1 +--- !u!114 &3178113493831002898 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493831002902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eab685c4de4b3b343b6b413dd48c54fa, type: 3} + m_Name: + m_EditorClassIdentifier: + ArmeData: {fileID: 11400000, guid: 67a7262812f835948b7c15f4fcc3642a, type: 2} +--- !u!222 &3178113493831002899 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493831002902} + m_CullTransparentMesh: 1 +--- !u!114 &3178113493831002900 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493831002902} + 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: 1, g: 1, b: 1, a: 0.19607843} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3178113493831002901 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493831002902} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3178113493494581866} + m_Father: {fileID: 3178113493160151570} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 280, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3178113493831002902 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113493831002901} + - component: {fileID: 3178113493831002899} + - component: {fileID: 3178113493831002900} + - component: {fileID: 3178113493831002898} + m_Layer: 5 + m_Name: arme3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &3178113493857986771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493857986775} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eab685c4de4b3b343b6b413dd48c54fa, type: 3} + m_Name: + m_EditorClassIdentifier: + ArmeData: {fileID: 11400000, guid: 14ea8e4c026d3f84f9d1840515d1be3e, type: 2} +--- !u!222 &3178113493857986772 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493857986775} + m_CullTransparentMesh: 1 +--- !u!114 &3178113493857986773 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493857986775} + 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: 1, g: 1, b: 1, a: 0.19607843} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3178113493857986774 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493857986775} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3178113493533127109} + m_Father: {fileID: 3178113493160151570} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 170, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3178113493857986775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113493857986774} + - component: {fileID: 3178113493857986772} + - component: {fileID: 3178113493857986773} + - component: {fileID: 3178113493857986771} + m_Layer: 5 + m_Name: arme2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &3178113493886682836 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493886682856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: eab685c4de4b3b343b6b413dd48c54fa, type: 3} + m_Name: + m_EditorClassIdentifier: + ArmeData: {fileID: 11400000, guid: 09689ff0016c478428f0f3687fb27955, type: 2} +--- !u!222 &3178113493886682837 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493886682856} + m_CullTransparentMesh: 1 +--- !u!114 &3178113493886682838 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493886682856} + 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: 1, g: 1, b: 1, a: 0.19607843} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &3178113493886682839 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3178113493886682856} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3178113492546424484} + m_Father: {fileID: 3178113493160151570} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 60, y: 0} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3178113493886682856 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3178113493886682839} + - component: {fileID: 3178113493886682837} + - component: {fileID: 3178113493886682836} + - component: {fileID: 3178113493886682838} + m_Layer: 5 + m_Name: arme1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &8334631404999925581 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631404999925584} + m_CullTransparentMesh: 1 +--- !u!1 &8334631404999925584 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334631404999925587} + - component: {fileID: 8334631404999925581} + - component: {fileID: 8334631404999925586} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &8334631404999925586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631404999925584} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Play + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 40.7 + m_fontSizeBase: 40.7 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!224 &8334631404999925587 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631404999925584} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8334631406104995882} + 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!222 &8334631405017568772 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405017568779} + m_CullTransparentMesh: 1 +--- !u!114 &8334631405017568773 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405017568779} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Key Binding + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 40.7 + m_fontSizeBase: 40.7 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!224 &8334631405017568778 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405017568779} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8334631406009191286} + 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!1 &8334631405017568779 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334631405017568778} + - component: {fileID: 8334631405017568772} + - component: {fileID: 8334631405017568773} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &8334631405253774464 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405253774471} + m_CullTransparentMesh: 1 +--- !u!114 &8334631405253774465 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405253774471} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Hub + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 40.7 + m_fontSizeBase: 40.7 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!224 &8334631405253774470 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405253774471} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8334631405647097436} + 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!1 &8334631405253774471 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334631405253774470} + - component: {fileID: 8334631405253774464} + - component: {fileID: 8334631405253774465} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &8334631405413344804 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405413344811} + m_CullTransparentMesh: 1 +--- !u!114 &8334631405413344805 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405413344811} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: PaintBall + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 150 + m_fontSizeBase: 150 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!224 &8334631405413344810 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405413344811} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8334631406055393525} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -120} + m_SizeDelta: {x: 902.7, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &8334631405413344811 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334631405413344810} + - component: {fileID: 8334631405413344804} + - component: {fileID: 8334631405413344805} + m_Layer: 5 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!222 &8334631405647097433 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405647097437} + m_CullTransparentMesh: 1 +--- !u!224 &8334631405647097436 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405647097437} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8334631405253774470} + m_Father: {fileID: 8334631406055393525} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -80} + m_SizeDelta: {x: 500, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &8334631405647097437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334631405647097436} + - component: {fileID: 8334631405647097433} + - component: {fileID: 8334631405647097438} + - component: {fileID: 8334631405647097439} + m_Layer: 5 + m_Name: Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &8334631405647097438 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405647097437} + 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.15686275, g: 0.15686275, b: 0.15686275, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8334631405647097439 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631405647097437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8334631405647097438} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1299670216179739428, guid: 37c66eeab9fa6bf4abe482b94568e1d5, type: 3} + m_TargetAssemblyTypeName: windowManager, Assembly-CSharp + m_MethodName: goBackHub + 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!114 &8334631406009191280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631406009191287} + 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.15686275, g: 0.15686275, b: 0.15686275, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8334631406009191281 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631406009191287} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8334631406009191280} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 241800584} + m_TargetAssemblyTypeName: windowManager, Assembly-CSharp + m_MethodName: HandleWindow + 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!222 &8334631406009191283 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631406009191287} + m_CullTransparentMesh: 1 +--- !u!224 &8334631406009191286 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631406009191287} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8334631405017568778} + m_Father: {fileID: 8334631406055393525} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: -160} + m_SizeDelta: {x: 500, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &8334631406009191287 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334631406009191286} + - component: {fileID: 8334631406009191283} + - component: {fileID: 8334631406009191280} + - component: {fileID: 8334631406009191281} + m_Layer: 5 + m_Name: KeyBinding + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &8334631406055393524 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631406055393530} + 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.23529413, g: 0.23529413, b: 0.23529413, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!224 &8334631406055393525 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631406055393530} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8334631405413344810} + - {fileID: 8334631406104995882} + - {fileID: 8334631405647097436} + - {fileID: 8334631406009191286} + m_Father: {fileID: 661245552} + m_RootOrder: 1 + 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: 10, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8334631406055393527 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631406055393530} + m_CullTransparentMesh: 1 +--- !u!1 &8334631406055393530 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334631406055393525} + - component: {fileID: 8334631406055393527} + - component: {fileID: 8334631406055393524} + m_Layer: 5 + m_Name: Menu + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!114 &8334631406104995876 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631406104995883} + 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.15686275, g: 0.15686275, b: 0.15686275, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8334631406104995877 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631406104995883} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 8334631406104995876} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 241800584} + m_TargetAssemblyTypeName: windowManager, Assembly-CSharp + m_MethodName: hideMenu + 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!222 &8334631406104995879 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631406104995883} + m_CullTransparentMesh: 1 +--- !u!224 &8334631406104995882 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8334631406104995883} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8334631404999925587} + m_Father: {fileID: 8334631406055393525} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &8334631406104995883 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8334631406104995882} + - component: {fileID: 8334631406104995879} + - component: {fileID: 8334631406104995876} + - component: {fileID: 8334631406104995877} + m_Layer: 5 + m_Name: Play + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 diff --git a/Assets/Scenes/Paintball/paintballFinal.unity.meta b/Assets/Scenes/Paintball/paintballFinal.unity.meta new file mode 100644 index 0000000000000000000000000000000000000000..5b9d69c88be82696163a8dd850389b55dad941d5 --- /dev/null +++ b/Assets/Scenes/Paintball/paintballFinal.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f1def0858a7d92c4cb37fb2093f7c843 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Paintball/prefabs.meta b/Assets/Scenes/Paintball/prefabs.meta new file mode 100644 index 0000000000000000000000000000000000000000..68e0e7906642c8c9e7e725a1bbd6c884114fbb00 --- /dev/null +++ b/Assets/Scenes/Paintball/prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54c2fd4a47e63c842b6e59f671d3d158 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Paintball/prefabs/Capsule.prefab b/Assets/Scenes/Paintball/prefabs/Capsule.prefab new file mode 100644 index 0000000000000000000000000000000000000000..f5b0a73e2c54a39ee08d36d27409f8f04cf548e2 --- /dev/null +++ b/Assets/Scenes/Paintball/prefabs/Capsule.prefab @@ -0,0 +1,1061 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3013973457338376190 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3013973457338376189} + m_Layer: 0 + m_Name: looakAt + m_TagString: Untagged + m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3013973457338376189 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973457338376190} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.2330017, y: -2.5, z: 11.904411} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3013973457403394832} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3013973457371454010 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3013973457371454009} + - component: {fileID: 3013973457371454006} + - component: {fileID: 3013973457371454007} + - component: {fileID: 3013973457371454008} + m_Layer: 0 + m_Name: cm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3013973457371454009 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973457371454010} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3013973458391752943} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3013973457371454006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973457371454010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &3013973457371454007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973457371454010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9384ab8608cdc3d479fe89cd51eed48f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_BindingMode: 5 + m_FollowOffset: {x: 0, y: 4, z: -8} + m_XDamping: 1 + m_YDamping: 1 + m_ZDamping: 1 + m_AngularDampingMode: 0 + m_PitchDamping: 0 + m_YawDamping: 0 + m_RollDamping: 0 + m_AngularDamping: 0 + m_Heading: + m_Definition: 2 + m_VelocityFilterStrength: 4 + m_Bias: 0 + m_RecenterToTargetHeading: + m_enabled: 0 + m_WaitTime: 1 + m_RecenteringTime: 2 + m_LegacyHeadingDefinition: -1 + m_LegacyVelocityFilterStrength: -1 + m_XAxis: + Value: 0 + m_SpeedMode: 0 + m_MaxSpeed: 300 + m_AccelTime: 0.1 + m_DecelTime: 0.1 + m_InputAxisName: + m_InputAxisValue: 0 + m_InvertInput: 1 + m_MinValue: -180 + m_MaxValue: 180 + m_Wrap: 1 + m_Recentering: + m_enabled: 0 + m_WaitTime: 1 + m_RecenteringTime: 2 + m_LegacyHeadingDefinition: -1 + m_LegacyVelocityFilterStrength: -1 + m_LegacyRadius: 3.4028235e+38 + m_LegacyHeightOffset: 3.4028235e+38 + m_LegacyHeadingBias: 3.4028235e+38 + m_HeadingIsSlave: 1 +--- !u!114 &3013973457371454008 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973457371454010} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4044717213e31446939f7bd49c896ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackedObjectOffset: {x: 0, y: 0, z: 0} + m_LookaheadTime: 0 + m_LookaheadSmoothing: 0 + m_LookaheadIgnoreY: 0 + m_HorizontalDamping: 0 + m_VerticalDamping: 0 + m_ScreenX: 0.5 + m_ScreenY: 0.55 + m_DeadZoneWidth: 0 + m_DeadZoneHeight: 0 + m_SoftZoneWidth: 0.8 + m_SoftZoneHeight: 0.8 + m_BiasX: 0 + m_BiasY: 0 + m_CenterOnActivate: 1 +--- !u!1 &3013973457403394833 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3013973457403394832} + - component: {fileID: 3013973457403394863} + m_Layer: 0 + m_Name: Third Person Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3013973457403394832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973457403394833} + m_LocalRotation: {x: -0.11753747, y: 0, z: 0, w: 0.99306846} + m_LocalPosition: {x: -0.043821335, y: 4, z: -7.99988} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3013973458107989877} + - {fileID: 3013973458391752943} + - {fileID: 3013973459046934708} + - {fileID: 3013973457338376189} + m_Father: {fileID: 3013973458651403717} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: -13.5, y: 0, z: 0} +--- !u!114 &3013973457403394863 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973457403394833} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 319d2fe34a804e245819465c9505ea59, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ExcludedPropertiesInInspector: + - m_Script + m_LockStageInInspector: + m_StreamingVersion: 20170927 + m_Priority: 10 + m_StandbyUpdate: 2 + m_LookAt: {fileID: 3013973458692919291} + m_Follow: {fileID: 3013973458651403717} + m_CommonLens: 1 + m_Lens: + FieldOfView: 40 + OrthographicSize: 10 + NearClipPlane: 0.1 + FarClipPlane: 5000 + Dutch: 0 + ModeOverride: 0 + LensShift: {x: 0, y: 0} + GateFit: 2 + m_SensorSize: {x: 1.8629441, y: 1} + m_Transitions: + m_BlendHint: 0 + m_InheritPosition: 0 + m_OnCameraLive: + m_PersistentCalls: + m_Calls: [] + m_LegacyBlendHint: 0 + m_YAxis: + Value: 0.5 + m_SpeedMode: 0 + m_MaxSpeed: 2 + m_AccelTime: 0.2 + m_DecelTime: 0.1 + m_InputAxisName: Mouse Y + m_InputAxisValue: 0 + m_InvertInput: 0 + m_MinValue: 0 + m_MaxValue: 1 + m_Wrap: 0 + m_Recentering: + m_enabled: 0 + m_WaitTime: 1 + m_RecenteringTime: 2 + m_LegacyHeadingDefinition: -1 + m_LegacyVelocityFilterStrength: -1 + m_YAxisRecentering: + m_enabled: 0 + m_WaitTime: 1 + m_RecenteringTime: 2 + m_LegacyHeadingDefinition: -1 + m_LegacyVelocityFilterStrength: -1 + m_XAxis: + Value: 0 + m_SpeedMode: 0 + m_MaxSpeed: 300 + m_AccelTime: 0.1 + m_DecelTime: 0.1 + m_InputAxisName: Mouse X + m_InputAxisValue: 0 + m_InvertInput: 1 + m_MinValue: -180 + m_MaxValue: 180 + m_Wrap: 1 + m_Recentering: + m_enabled: 0 + m_WaitTime: 1 + m_RecenteringTime: 2 + m_LegacyHeadingDefinition: -1 + m_LegacyVelocityFilterStrength: -1 + m_Heading: + m_Definition: 2 + m_VelocityFilterStrength: 4 + m_Bias: 0 + m_RecenterToTargetHeading: + m_enabled: 0 + m_WaitTime: 1 + m_RecenteringTime: 2 + m_LegacyHeadingDefinition: -1 + m_LegacyVelocityFilterStrength: -1 + m_BindingMode: 5 + m_SplineCurvature: 1 + m_Orbits: + - m_Height: 5 + m_Radius: 2 + - m_Height: 4 + m_Radius: 8 + - m_Height: 0 + m_Radius: 4 + m_LegacyHeadingBias: 3.4028235e+38 + m_Rigs: + - {fileID: 3013973458107989876} + - {fileID: 3013973458391752942} + - {fileID: 3013973459046934707} +--- !u!1 &3013973458107989878 +GameObject: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3013973458107989877} + - component: {fileID: 3013973458107989876} + m_Layer: 0 + m_Name: TopRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3013973458107989877 +Transform: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458107989878} + m_LocalRotation: {x: 0.33965763, y: 0.07232555, z: -0.008126721, w: 0.937729} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3013973458768387743} + m_Father: {fileID: 3013973457403394832} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3013973458107989876 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458107989878} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ExcludedPropertiesInInspector: + - m_Script + - Header + - Extensions + - m_Priority + - m_Transitions + - m_Follow + - m_StandbyUpdate + - m_Lens + m_LockStageInInspector: 00000000 + m_StreamingVersion: 20170927 + m_Priority: 10 + m_StandbyUpdate: 2 + m_LookAt: {fileID: 0} + m_Follow: {fileID: 0} + m_Lens: + FieldOfView: 40 + OrthographicSize: 10 + NearClipPlane: 0.1 + FarClipPlane: 5000 + Dutch: 0 + ModeOverride: 0 + LensShift: {x: 0, y: 0} + GateFit: 2 + m_SensorSize: {x: 1.8629441, y: 1} + m_Transitions: + m_BlendHint: 0 + m_InheritPosition: 0 + m_OnCameraLive: + m_PersistentCalls: + m_Calls: [] + m_LegacyBlendHint: 0 + m_ComponentOwner: {fileID: 3013973458768387743} +--- !u!1 &3013973458192583639 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3013973458192583638} + - component: {fileID: 3013973458192583635} + - component: {fileID: 3013973458192583636} + - component: {fileID: 3013973458192583637} + m_Layer: 0 + m_Name: cm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3013973458192583638 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458192583639} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3013973459046934708} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3013973458192583635 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458192583639} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &3013973458192583636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458192583639} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9384ab8608cdc3d479fe89cd51eed48f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_BindingMode: 5 + m_FollowOffset: {x: 0, y: 4, z: -8} + m_XDamping: 1 + m_YDamping: 1 + m_ZDamping: 1 + m_AngularDampingMode: 0 + m_PitchDamping: 0 + m_YawDamping: 0 + m_RollDamping: 0 + m_AngularDamping: 0 + m_Heading: + m_Definition: 2 + m_VelocityFilterStrength: 4 + m_Bias: 0 + m_RecenterToTargetHeading: + m_enabled: 0 + m_WaitTime: 1 + m_RecenteringTime: 2 + m_LegacyHeadingDefinition: -1 + m_LegacyVelocityFilterStrength: -1 + m_XAxis: + Value: 0 + m_SpeedMode: 0 + m_MaxSpeed: 300 + m_AccelTime: 0.1 + m_DecelTime: 0.1 + m_InputAxisName: + m_InputAxisValue: 0 + m_InvertInput: 1 + m_MinValue: -180 + m_MaxValue: 180 + m_Wrap: 1 + m_Recentering: + m_enabled: 0 + m_WaitTime: 1 + m_RecenteringTime: 2 + m_LegacyHeadingDefinition: -1 + m_LegacyVelocityFilterStrength: -1 + m_LegacyRadius: 3.4028235e+38 + m_LegacyHeightOffset: 3.4028235e+38 + m_LegacyHeadingBias: 3.4028235e+38 + m_HeadingIsSlave: 1 +--- !u!114 &3013973458192583637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458192583639} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4044717213e31446939f7bd49c896ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackedObjectOffset: {x: 0, y: 0, z: 0} + m_LookaheadTime: 0 + m_LookaheadSmoothing: 0 + m_LookaheadIgnoreY: 0 + m_HorizontalDamping: 0 + m_VerticalDamping: 0 + m_ScreenX: 0.5 + m_ScreenY: 0.6 + m_DeadZoneWidth: 0 + m_DeadZoneHeight: 0 + m_SoftZoneWidth: 0.8 + m_SoftZoneHeight: 0.8 + m_BiasX: 0 + m_BiasY: 0 + m_CenterOnActivate: 1 +--- !u!1 &3013973458391752912 +GameObject: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3013973458391752943} + - component: {fileID: 3013973458391752942} + m_Layer: 0 + m_Name: MiddleRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3013973458391752943 +Transform: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458391752912} + m_LocalRotation: {x: 0.32254463, y: 0.07246136, z: -0.006809802, w: 0.9437521} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3013973457371454009} + m_Father: {fileID: 3013973457403394832} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3013973458391752942 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458391752912} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ExcludedPropertiesInInspector: + - m_Script + - Header + - Extensions + - m_Priority + - m_Transitions + - m_Follow + - m_StandbyUpdate + - m_Lens + m_LockStageInInspector: 00000000 + m_StreamingVersion: 20170927 + m_Priority: 10 + m_StandbyUpdate: 2 + m_LookAt: {fileID: 0} + m_Follow: {fileID: 0} + m_Lens: + FieldOfView: 40 + OrthographicSize: 10 + NearClipPlane: 0.1 + FarClipPlane: 5000 + Dutch: 0 + ModeOverride: 0 + LensShift: {x: 0, y: 0} + GateFit: 2 + m_SensorSize: {x: 1.8629441, y: 1} + m_Transitions: + m_BlendHint: 0 + m_InheritPosition: 0 + m_OnCameraLive: + m_PersistentCalls: + m_Calls: [] + m_LegacyBlendHint: 0 + m_ComponentOwner: {fileID: 3013973457371454009} +--- !u!1 &3013973458651403722 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3013973458651403717} + - component: {fileID: 3013973458651403718} + - component: {fileID: 3013973458651403719} + - component: {fileID: 3013973458651403720} + - component: {fileID: 3013973458651403715} + - component: {fileID: 3013973458651403716} + m_Layer: 0 + m_Name: Capsule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3013973458651403717 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458651403722} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 27.85, y: 15.52, z: 33.81} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3013973458692919291} + - {fileID: 5024897611587778107} + - {fileID: 3013973457403394832} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3013973458651403718 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458651403722} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3013973458651403719 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458651403722} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &3013973458651403720 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458651403722} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!143 &3013973458651403715 +CharacterController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458651403722} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Height: 2 + m_Radius: 0.5 + m_SlopeLimit: 45 + m_StepOffset: 0.3 + m_SkinWidth: 0.08 + m_MinMoveDistance: 0.001 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &3013973458651403716 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458651403722} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f3bba1a324ad5fa47af0e90dd540f1f4, type: 3} + m_Name: + m_EditorClassIdentifier: + controller: {fileID: 0} + speed: 10 + jumpSpeed: 10 + gravity: 20 + moveDirectionForward: {x: 0, y: 0, z: 0} + yBefore: 0 + yAfter: 0 + lookAt: {fileID: 3013973457338376189} +--- !u!1 &3013973458692919292 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3013973458692919291} + m_Layer: 0 + m_Name: cameraLookAt + m_TagString: Untagged + m_Icon: {fileID: 5721338939258241955, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3013973458692919291 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458692919292} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.13, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3013973458651403717} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3013973458768387712 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3013973458768387743} + - component: {fileID: 3013973458768387740} + - component: {fileID: 3013973458768387741} + - component: {fileID: 3013973458768387742} + m_Layer: 0 + m_Name: cm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3013973458768387743 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458768387712} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3013973458107989877} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3013973458768387740 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458768387712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &3013973458768387741 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458768387712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9384ab8608cdc3d479fe89cd51eed48f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_BindingMode: 5 + m_FollowOffset: {x: 0, y: 4, z: -8} + m_XDamping: 1 + m_YDamping: 1 + m_ZDamping: 1 + m_AngularDampingMode: 0 + m_PitchDamping: 0 + m_YawDamping: 0 + m_RollDamping: 0 + m_AngularDamping: 0 + m_Heading: + m_Definition: 2 + m_VelocityFilterStrength: 4 + m_Bias: 0 + m_RecenterToTargetHeading: + m_enabled: 0 + m_WaitTime: 1 + m_RecenteringTime: 2 + m_LegacyHeadingDefinition: -1 + m_LegacyVelocityFilterStrength: -1 + m_XAxis: + Value: 0 + m_SpeedMode: 0 + m_MaxSpeed: 300 + m_AccelTime: 0.1 + m_DecelTime: 0.1 + m_InputAxisName: + m_InputAxisValue: 0 + m_InvertInput: 1 + m_MinValue: -180 + m_MaxValue: 180 + m_Wrap: 1 + m_Recentering: + m_enabled: 0 + m_WaitTime: 1 + m_RecenteringTime: 2 + m_LegacyHeadingDefinition: -1 + m_LegacyVelocityFilterStrength: -1 + m_LegacyRadius: 3.4028235e+38 + m_LegacyHeightOffset: 3.4028235e+38 + m_LegacyHeadingBias: 3.4028235e+38 + m_HeadingIsSlave: 1 +--- !u!114 &3013973458768387742 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973458768387712} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4044717213e31446939f7bd49c896ea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_TrackedObjectOffset: {x: 0, y: 0, z: 0} + m_LookaheadTime: 0 + m_LookaheadSmoothing: 0 + m_LookaheadIgnoreY: 0 + m_HorizontalDamping: 0 + m_VerticalDamping: 0 + m_ScreenX: 0.5 + m_ScreenY: 0.5 + m_DeadZoneWidth: 0 + m_DeadZoneHeight: 0 + m_SoftZoneWidth: 0.8 + m_SoftZoneHeight: 0.8 + m_BiasX: 0 + m_BiasY: 0 + m_CenterOnActivate: 1 +--- !u!1 &3013973459046934709 +GameObject: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3013973459046934708} + - component: {fileID: 3013973459046934707} + m_Layer: 0 + m_Name: BottomRig + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3013973459046934708 +Transform: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973459046934709} + m_LocalRotation: {x: 0.3053705, y: 0.072573, z: -0.005494128, w: 0.9494482} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3013973458192583638} + m_Father: {fileID: 3013973457403394832} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3013973459046934707 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3013973459046934709} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ExcludedPropertiesInInspector: + - m_Script + - Header + - Extensions + - m_Priority + - m_Transitions + - m_Follow + - m_StandbyUpdate + - m_Lens + m_LockStageInInspector: 00000000 + m_StreamingVersion: 20170927 + m_Priority: 10 + m_StandbyUpdate: 2 + m_LookAt: {fileID: 0} + m_Follow: {fileID: 0} + m_Lens: + FieldOfView: 40 + OrthographicSize: 10 + NearClipPlane: 0.1 + FarClipPlane: 5000 + Dutch: 0 + ModeOverride: 0 + LensShift: {x: 0, y: 0} + GateFit: 2 + m_SensorSize: {x: 1.8629441, y: 1} + m_Transitions: + m_BlendHint: 0 + m_InheritPosition: 0 + m_OnCameraLive: + m_PersistentCalls: + m_Calls: [] + m_LegacyBlendHint: 0 + m_ComponentOwner: {fileID: 3013973458192583638} +--- !u!1 &5024897611587778105 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5024897611587778107} + - component: {fileID: 5024897611587778106} + - component: {fileID: 5024897611587778104} + m_Layer: 0 + m_Name: weaponHandler + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5024897611587778107 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5024897611587778105} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5024897612864495247} + m_Father: {fileID: 3013973458651403717} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5024897611587778106 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5024897611587778105} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 253919fdcc042a849b6f84f5d877bd4a, type: 3} + m_Name: + m_EditorClassIdentifier: + slotList: [] + armePosInstatiator: {fileID: 5024897612864495246} + currentSlot: {fileID: 0} + currentArmeObj: {fileID: 0} + ArmePos: {fileID: 5024897612864495247} + lookAt: {fileID: 3013973457338376189} +--- !u!114 &5024897611587778104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5024897611587778105} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 348e7b4a8651bc64fba31b6b5fed58cb, type: 3} + m_Name: + m_EditorClassIdentifier: + layerMask: + serializedVersion: 2 + m_Bits: 1 + bullet: {fileID: 8148789982801293823, guid: f3e11710fb1ea1a4aa950f4d8cc87f4e, type: 3} + raypos: {fileID: 0} + bullets: [] +--- !u!1 &5024897612864495246 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5024897612864495247} + m_Layer: 0 + m_Name: posArme + m_TagString: Untagged + m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5024897612864495247 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5024897612864495246} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.60300064, y: 0, z: 0.6100006} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5024897611587778107} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/Scenes/Paintball/prefabs/Capsule.prefab.meta b/Assets/Scenes/Paintball/prefabs/Capsule.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..011ea179e9c9e50a7fdd89dfaf89725b2b093c89 --- /dev/null +++ b/Assets/Scenes/Paintball/prefabs/Capsule.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ae35550aa2ee7004db6783f134886bed +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Paintball/prefabs/Main Camera.prefab b/Assets/Scenes/Paintball/prefabs/Main Camera.prefab new file mode 100644 index 0000000000000000000000000000000000000000..194e40bf05d91b50b94a9634e3a028f4a9386a49 --- /dev/null +++ b/Assets/Scenes/Paintball/prefabs/Main Camera.prefab @@ -0,0 +1,155 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8289360560222343246 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8289360560222343243} + - component: {fileID: 8289360560222343240} + - component: {fileID: 8289360560222343241} + - component: {fileID: 8289360560222343242} + - component: {fileID: 8289360560222343253} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8289360560222343243 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8289360560222343246} + m_LocalRotation: {x: 0.20938268, y: 0.071158685, z: -0.015279524, w: 0.9751215} + m_LocalPosition: {x: 27.80618, y: 19.52, z: 25.810122} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!20 &8289360560222343240 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8289360560222343246} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.1 + far clip plane: 5000 + field of view: 40 + orthographic: 0 + orthographic size: 10 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!81 &8289360560222343241 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8289360560222343246} + m_Enabled: 1 +--- !u!114 &8289360560222343242 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8289360560222343246} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 +--- !u!114 &8289360560222343253 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8289360560222343246} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowDebugText: 0 + m_ShowCameraFrustum: 1 + m_IgnoreTimeScale: 0 + m_WorldUpOverride: {fileID: 0} + m_UpdateMethod: 2 + m_BlendUpdateMethod: 1 + m_DefaultBlend: + m_Style: 1 + m_Time: 2 + m_CustomCurve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_CustomBlends: {fileID: 0} + m_CameraCutEvent: + m_PersistentCalls: + m_Calls: [] + m_CameraActivatedEvent: + m_PersistentCalls: + m_Calls: [] diff --git a/Assets/Scenes/Paintball/prefabs/Main Camera.prefab.meta b/Assets/Scenes/Paintball/prefabs/Main Camera.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..5074099fc69b0b40b5c039ddd4b06515709d74d7 --- /dev/null +++ b/Assets/Scenes/Paintball/prefabs/Main Camera.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3d0d4ed8194bad146aa0309984a81624 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Paintball/prefabs/egypt.prefab b/Assets/Scenes/Paintball/prefabs/egypt.prefab new file mode 100644 index 0000000000000000000000000000000000000000..f9cd58c3c155f1f8bf20ce9e810a4bd8d44db610 --- /dev/null +++ b/Assets/Scenes/Paintball/prefabs/egypt.prefab @@ -0,0 +1,5212 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3443707835959720555 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707835959720558} + - component: {fileID: 3443707835959720557} + - component: {fileID: 3443707835959720556} + m_Layer: 0 + m_Name: Terrain_(300.00, 0.00, -150.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707835959720558 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707835959720555} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 300, y: 0, z: -150} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 58 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707835959720557 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707835959720555} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 7edba858ad05e764bb86cbf0ba959a00, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707835959720556 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707835959720555} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 7edba858ad05e764bb86cbf0ba959a00, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707835979053530 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707835979053533} + - component: {fileID: 3443707835979053532} + - component: {fileID: 3443707835979053531} + m_Layer: 0 + m_Name: Terrain_(-150.00, 0.00, -600.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707835979053533 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707835979053530} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -150, y: 0, z: -600} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 52 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707835979053532 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707835979053530} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: c4ffcd9cad5c2d4408cefcb4573e2e62, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707835979053531 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707835979053530} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: c4ffcd9cad5c2d4408cefcb4573e2e62, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836042185396 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836042185399} + - component: {fileID: 3443707836042185398} + - component: {fileID: 3443707836042185397} + m_Layer: 0 + m_Name: Terrain_(-150.00, 0.00, 150.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836042185399 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836042185396} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -150, y: 0, z: 150} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 37 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836042185398 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836042185396} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 5f059ebd68220c24ba5676609182f1cf, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836042185397 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836042185396} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 5f059ebd68220c24ba5676609182f1cf, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836151610869 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836151610870} + - component: {fileID: 3443707836151610825} + - component: {fileID: 3443707836151610824} + - component: {fileID: 3443707836151610871} + m_Layer: 0 + m_Name: walls + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3443707836151610870 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836151610869} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 52.4, y: 2.5, z: 76.9} + m_LocalScale: {x: 0.5, y: 5, z: 25} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3443707837456471656} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3443707836151610825 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836151610869} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3443707836151610824 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836151610869} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08491e02f6b1fad48beca6240a493f68, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &3443707836151610871 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836151610869} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &3443707836170868778 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836170868781} + - component: {fileID: 3443707836170868780} + - component: {fileID: 3443707836170868779} + m_Layer: 0 + m_Name: Terrain_(300.00, 0.00, -450.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836170868781 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836170868778} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 300, y: 0, z: -450} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 55 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836170868780 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836170868778} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 3039aa49c48d2b741b7e0c615e621015, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836170868779 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836170868778} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 3039aa49c48d2b741b7e0c615e621015, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836358475126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836358475082} + - component: {fileID: 3443707836358475081} + - component: {fileID: 3443707836358475080} + - component: {fileID: 3443707836358475127} + m_Layer: 0 + m_Name: Tower_A (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3443707836358475082 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836358475126} + m_LocalRotation: {x: -0, y: 1, z: -0, w: 0} + m_LocalPosition: {x: 136.57, y: 6.4, z: 140.3} + m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 32 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!33 &3443707836358475081 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836358475126} + m_Mesh: {fileID: 4300000, guid: 790f1bc6cf425f844aee696850aa6c2b, type: 3} +--- !u!23 &3443707836358475080 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836358475126} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0e3d0a26e38a9544093c6ac18f02ef62, type: 2} + - {fileID: 2100000, guid: 38b60ec8af61f8a49b382c0304fb8fa4, type: 2} + - {fileID: 2100000, guid: 4d7e761f8090cc94ba4619dd862644f2, type: 2} + - {fileID: 2100000, guid: 49cda30c92a3ebf4888b0ab7d48e15df, type: 2} + - {fileID: 2100000, guid: c3e3a9c3207613f4a8a1f55d43e8662e, type: 2} + - {fileID: 2100000, guid: 05b2ed8eba6729c46b44c7bd1d01985a, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &3443707836358475127 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836358475126} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 4300000, guid: 790f1bc6cf425f844aee696850aa6c2b, type: 3} +--- !u!1 &3443707836409730899 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836409730902} + - component: {fileID: 3443707836409730901} + - component: {fileID: 3443707836409730900} + m_Layer: 0 + m_Name: Terrain_(0.00, 0.00, 150.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836409730902 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836409730899} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 150} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 38 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836409730901 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836409730899} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 462e728bffbb070499f6db8857c1affc, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836409730900 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836409730899} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 462e728bffbb070499f6db8857c1affc, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836488718371 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836488718374} + - component: {fileID: 3443707836488718373} + - component: {fileID: 3443707836488718372} + m_Layer: 0 + m_Name: Terrain_(150.00, 0.00, -450.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836488718374 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836488718371} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 150, y: 0, z: -450} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 54 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836488718373 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836488718371} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 20de942ea3703e34885548642387bbdd, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836488718372 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836488718371} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 20de942ea3703e34885548642387bbdd, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836511646833 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836511646836} + - component: {fileID: 3443707836511646835} + - component: {fileID: 3443707836511646834} + m_Layer: 0 + m_Name: Terrain_(300.00, 0.00, 150.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836511646836 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836511646833} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 300, y: 0, z: 150} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 60 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836511646835 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836511646833} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 7eb00ee27598c1a4d87f8cf050fe8d4b, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836511646834 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836511646833} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 7eb00ee27598c1a4d87f8cf050fe8d4b, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836651495521 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836651495524} + - component: {fileID: 3443707836651495523} + - component: {fileID: 3443707836651495522} + m_Layer: 0 + m_Name: Terrain_(0.00, 0.00, -600.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836651495524 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836651495521} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -600} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 62 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836651495523 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836651495521} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 3f8aaf233f1c3734fbd5784622121009, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836651495522 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836651495521} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 3f8aaf233f1c3734fbd5784622121009, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836798252825 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836798252828} + - component: {fileID: 3443707836798252827} + - component: {fileID: 3443707836798252826} + m_Layer: 0 + m_Name: Terrain_(-150.00, 0.00, -150.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836798252828 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836798252825} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -150, y: 0, z: -150} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 39 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836798252827 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836798252825} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 737a11674c1a17f47a40a5a0c70d776b, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836798252826 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836798252825} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 737a11674c1a17f47a40a5a0c70d776b, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836839490731 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836839490734} + - component: {fileID: 3443707836839490733} + - component: {fileID: 3443707836839490732} + m_Layer: 0 + m_Name: Terrain_(150.00, 0.00, -300.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836839490734 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836839490731} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 150, y: 0, z: -300} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 49 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836839490733 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836839490731} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 79126b4d3ac0f6b4896b4c930ba90a05, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836839490732 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836839490731} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 79126b4d3ac0f6b4896b4c930ba90a05, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836903048359 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836903048378} + - component: {fileID: 3443707836903048377} + - component: {fileID: 3443707836903048376} + m_Layer: 0 + m_Name: Terrain_(300.00, 0.00, -600.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836903048378 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836903048359} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 300, y: 0, z: -600} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 56 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836903048377 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836903048359} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: f880d0b396701ed4f894c8449b8fb869, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836903048376 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836903048359} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: f880d0b396701ed4f894c8449b8fb869, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836908976869 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836908976870} + - component: {fileID: 3443707836908976889} + - component: {fileID: 3443707836908976888} + - component: {fileID: 3443707836908976871} + m_Layer: 0 + m_Name: walls (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3443707836908976870 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836908976869} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 98.9, y: 2.5, z: 77} + m_LocalScale: {x: 0.5, y: 5, z: 25} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3443707837456471656} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3443707836908976889 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836908976869} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3443707836908976888 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836908976869} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08491e02f6b1fad48beca6240a493f68, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &3443707836908976871 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836908976869} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &3443707836951712581 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836951712600} + - component: {fileID: 3443707836951712583} + - component: {fileID: 3443707836951712582} + m_Layer: 0 + m_Name: Terrain_(150.00, 0.00, 0.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836951712600 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836951712581} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 150, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 42 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836951712583 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836951712581} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 7f02b2584594d034197992def229d690, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836951712582 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836951712581} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 7f02b2584594d034197992def229d690, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836961414505 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836961414508} + - component: {fileID: 3443707836961414507} + - component: {fileID: 3443707836961414506} + m_Layer: 0 + m_Name: Terrain_(0.00, 0.00, -150.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836961414508 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836961414505} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -150} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 40 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836961414507 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836961414505} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: cba3b53cfc30e6146af996d6a0cb2420, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836961414506 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836961414505} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: cba3b53cfc30e6146af996d6a0cb2420, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707836963356085 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707836963356040} + - component: {fileID: 3443707836963356087} + - component: {fileID: 3443707836963356086} + m_Layer: 0 + m_Name: Terrain_(0.00, 0.00, -450.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707836963356040 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836963356085} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -450} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 50 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707836963356087 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836963356085} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 779859c5c0db1ec4fb69b4cf1d486ae2, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707836963356086 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707836963356085} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 779859c5c0db1ec4fb69b4cf1d486ae2, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707837002740909 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837002740897} + - component: {fileID: 3443707837002740896} + - component: {fileID: 3443707837002740911} + - component: {fileID: 3443707837002740910} + m_Layer: 0 + m_Name: Tower_A (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3443707837002740897 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837002740909} + m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068} + m_LocalPosition: {x: 10.1, y: 0.97, z: 138.6} + m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 34 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!33 &3443707837002740896 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837002740909} + m_Mesh: {fileID: 4300000, guid: 790f1bc6cf425f844aee696850aa6c2b, type: 3} +--- !u!23 &3443707837002740911 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837002740909} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0e3d0a26e38a9544093c6ac18f02ef62, type: 2} + - {fileID: 2100000, guid: 38b60ec8af61f8a49b382c0304fb8fa4, type: 2} + - {fileID: 2100000, guid: 4d7e761f8090cc94ba4619dd862644f2, type: 2} + - {fileID: 2100000, guid: 49cda30c92a3ebf4888b0ab7d48e15df, type: 2} + - {fileID: 2100000, guid: c3e3a9c3207613f4a8a1f55d43e8662e, type: 2} + - {fileID: 2100000, guid: 05b2ed8eba6729c46b44c7bd1d01985a, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &3443707837002740910 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837002740909} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 4300000, guid: 790f1bc6cf425f844aee696850aa6c2b, type: 3} +--- !u!1 &3443707837015877539 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837015877542} + - component: {fileID: 3443707837015877541} + - component: {fileID: 3443707837015877540} + m_Layer: 0 + m_Name: map1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &3443707837015877542 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837015877539} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 35 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707837015877541 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837015877539} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 87a02eadc57db594698a94a0b693131b, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.0256 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707837015877540 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837015877539} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 87a02eadc57db594698a94a0b693131b, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707837096205658 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837096205659} + - component: {fileID: 3443707837096205662} + - component: {fileID: 3443707837096205661} + - component: {fileID: 3443707837096205660} + m_Layer: 0 + m_Name: walls (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3443707837096205659 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837096205658} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: 74.99999, y: 2.5, z: 53.2} + m_LocalScale: {x: 0.5, y: 5, z: 25} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3443707837456471656} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!33 &3443707837096205662 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837096205658} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3443707837096205661 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837096205658} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08491e02f6b1fad48beca6240a493f68, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &3443707837096205660 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837096205658} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &3443707837130349627 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837130349628} + - component: {fileID: 3443707837130349631} + - component: {fileID: 3443707837130349630} + - component: {fileID: 3443707837130349629} + m_Layer: 0 + m_Name: walls (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3443707837130349628 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837130349627} + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: 74.99999, y: 2.5, z: 99.4} + m_LocalScale: {x: 0.5, y: 5, z: 25} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3443707837456471656} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!33 &3443707837130349631 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837130349627} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3443707837130349630 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837130349627} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 08491e02f6b1fad48beca6240a493f68, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &3443707837130349629 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837130349627} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &3443707837208076126 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837208076113} + - component: {fileID: 3443707837208076112} + - component: {fileID: 3443707837208076127} + m_Layer: 0 + m_Name: Terrain_(-150.00, 0.00, 0.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707837208076113 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837208076126} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -150, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 36 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707837208076112 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837208076126} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: b83a39e1cbee6e147b2f6078d157c44d, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707837208076127 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837208076126} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: b83a39e1cbee6e147b2f6078d157c44d, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707837236527413 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837236527368} + - component: {fileID: 3443707837236527415} + - component: {fileID: 3443707837236527414} + m_Layer: 0 + m_Name: Terrain_(150.00, 0.00, 150.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707837236527368 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837236527413} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 150, y: 0, z: 150} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 43 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707837236527415 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837236527413} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 4039df1e4706e014eaa4696a7f76c1bf, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707837236527414 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837236527413} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 4039df1e4706e014eaa4696a7f76c1bf, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707837271863015 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837271863034} + - component: {fileID: 3443707837271863033} + - component: {fileID: 3443707837271863032} + m_Layer: 0 + m_Name: Terrain_(300.00, 0.00, 0.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707837271863034 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837271863015} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 300, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 59 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707837271863033 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837271863015} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: a019c8e3187b6924098417debb3cef78, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707837271863032 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837271863015} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: a019c8e3187b6924098417debb3cef78, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707837456460183 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837456471656} + m_Layer: 0 + m_Name: WALLS + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3443707837456471656 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837456460183} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3443707836151610870} + - {fileID: 3443707836908976870} + - {fileID: 3443707837130349628} + - {fileID: 3443707837096205659} + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 28 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3443707837531122980 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837531123000} + - component: {fileID: 3443707837531122983} + - component: {fileID: 3443707837531122982} + - component: {fileID: 3443707837531122981} + m_Layer: 0 + m_Name: Tower_A (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3443707837531123000 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837531122980} + m_LocalRotation: {x: -0, y: -0.7071068, z: -0, w: 0.7071068} + m_LocalPosition: {x: 139.4, y: 0.97, z: 11.9} + m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 30 + m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} +--- !u!33 &3443707837531122983 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837531122980} + m_Mesh: {fileID: 4300000, guid: 790f1bc6cf425f844aee696850aa6c2b, type: 3} +--- !u!23 &3443707837531122982 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837531122980} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0e3d0a26e38a9544093c6ac18f02ef62, type: 2} + - {fileID: 2100000, guid: 38b60ec8af61f8a49b382c0304fb8fa4, type: 2} + - {fileID: 2100000, guid: 4d7e761f8090cc94ba4619dd862644f2, type: 2} + - {fileID: 2100000, guid: 49cda30c92a3ebf4888b0ab7d48e15df, type: 2} + - {fileID: 2100000, guid: c3e3a9c3207613f4a8a1f55d43e8662e, type: 2} + - {fileID: 2100000, guid: ff188f58422043f489060e28a5e4e0c0, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &3443707837531122981 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837531122980} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 4300000, guid: 790f1bc6cf425f844aee696850aa6c2b, type: 3} +--- !u!1 &3443707837608017239 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837608017194} + - component: {fileID: 3443707837608017193} + - component: {fileID: 3443707837608017192} + m_Layer: 0 + m_Name: Terrain_(300.00, 0.00, -300.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707837608017194 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837608017239} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 300, y: 0, z: -300} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 57 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707837608017193 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837608017239} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: b75b091a59765be4d910ac7c2b3dd887, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707837608017192 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837608017239} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: b75b091a59765be4d910ac7c2b3dd887, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707837688250963 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837688250966} + - component: {fileID: 3443707837688250965} + - component: {fileID: 3443707837688250964} + m_Layer: 0 + m_Name: Terrain_(-150.00, 0.00, -300.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707837688250966 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837688250963} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -150, y: 0, z: -300} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 53 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707837688250965 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837688250963} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: b07abe19f8c6dd64f9a0227248e32730, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707837688250964 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837688250963} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: b07abe19f8c6dd64f9a0227248e32730, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707837697876582 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837697876601} + - component: {fileID: 3443707837697876600} + - component: {fileID: 3443707837697876583} + m_Layer: 0 + m_Name: Terrain_(0.00, 0.00, -300.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707837697876601 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837697876582} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -300} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 44 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707837697876600 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837697876582} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 11d656dad66273b40a91a9d0ec065b6e, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707837697876583 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837697876582} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 11d656dad66273b40a91a9d0ec065b6e, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707837840370214 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837840370233} + - component: {fileID: 3443707837840370232} + - component: {fileID: 3443707837840370215} + m_Layer: 0 + m_Name: Terrain_(-150.00, 0.00, -450.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707837840370233 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837840370214} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -150, y: 0, z: -450} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 51 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707837840370232 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837840370214} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 184ac39d40489fc40881b13fe9518a8e, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707837840370215 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837840370214} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 184ac39d40489fc40881b13fe9518a8e, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707837910772964 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837910772984} + - component: {fileID: 3443707837910772967} + - component: {fileID: 3443707837910772966} + - component: {fileID: 3443707837910772965} + m_Layer: 0 + m_Name: Tower_A (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3443707837910772984 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837910772964} + m_LocalRotation: {x: -0, y: -0.7071068, z: -0, w: 0.7071068} + m_LocalPosition: {x: 139.4, y: 0.97, z: 11.9} + m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 29 + m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} +--- !u!33 &3443707837910772967 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837910772964} + m_Mesh: {fileID: 4300000, guid: 790f1bc6cf425f844aee696850aa6c2b, type: 3} +--- !u!23 &3443707837910772966 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837910772964} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0e3d0a26e38a9544093c6ac18f02ef62, type: 2} + - {fileID: 2100000, guid: 38b60ec8af61f8a49b382c0304fb8fa4, type: 2} + - {fileID: 2100000, guid: 4d7e761f8090cc94ba4619dd862644f2, type: 2} + - {fileID: 2100000, guid: 49cda30c92a3ebf4888b0ab7d48e15df, type: 2} + - {fileID: 2100000, guid: c3e3a9c3207613f4a8a1f55d43e8662e, type: 2} + - {fileID: 2100000, guid: 05b2ed8eba6729c46b44c7bd1d01985a, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &3443707837910772965 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837910772964} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 4300000, guid: 790f1bc6cf425f844aee696850aa6c2b, type: 3} +--- !u!1 &3443707837956699224 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707837956699227} + - component: {fileID: 3443707837956699226} + - component: {fileID: 3443707837956699225} + m_Layer: 0 + m_Name: Terrain_(150.00, 0.00, -150.00) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3443707837956699227 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837956699224} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 150, y: 0, z: -150} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 41 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!218 &3443707837956699226 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837956699224} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 74392e0cbd9b9884ab08359fdae3b257, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.17066666 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!154 &3443707837956699225 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707837956699224} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: 74392e0cbd9b9884ab08359fdae3b257, type: 2} + m_EnableTreeColliders: 1 +--- !u!1 &3443707838076658929 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3443707838076658931} + - component: {fileID: 3443707838076658930} + - component: {fileID: 2969788375975792640} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3443707838076658931 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707838076658929} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 31 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!108 &3443707838076658930 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707838076658929} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!114 &2969788375975792640 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3443707838076658929} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 1 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &3444349976972004543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3442276140842786143} + - component: {fileID: 3437061564973668215} + - component: {fileID: 3431431503765916803} + - component: {fileID: 3399661317112615423} + m_Layer: 0 + m_Name: Tower_A + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3442276140842786143 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3444349976972004543} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 12.309959, y: 0.97, z: 11.5} + m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5338759391028074855} + m_RootOrder: 33 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3437061564973668215 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3444349976972004543} + m_Mesh: {fileID: 4300000, guid: 790f1bc6cf425f844aee696850aa6c2b, type: 3} +--- !u!23 &3431431503765916803 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3444349976972004543} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 0e3d0a26e38a9544093c6ac18f02ef62, type: 2} + - {fileID: 2100000, guid: 38b60ec8af61f8a49b382c0304fb8fa4, type: 2} + - {fileID: 2100000, guid: 4d7e761f8090cc94ba4619dd862644f2, type: 2} + - {fileID: 2100000, guid: 49cda30c92a3ebf4888b0ab7d48e15df, type: 2} + - {fileID: 2100000, guid: c3e3a9c3207613f4a8a1f55d43e8662e, type: 2} + - {fileID: 2100000, guid: 05b2ed8eba6729c46b44c7bd1d01985a, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!64 &3399661317112615423 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3444349976972004543} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 4300000, guid: 790f1bc6cf425f844aee696850aa6c2b, type: 3} +--- !u!1 &4748562581652460383 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5338759391028074855} + m_Layer: 0 + m_Name: egypt + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5338759391028074855 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4748562581652460383} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2900383533743037070} + - {fileID: 3442355878948064300} + - {fileID: 3441886505955355954} + - {fileID: 3442355877811801173} + - {fileID: 3442355876978736481} + - {fileID: 2900383534576513555} + - {fileID: 2900383534815697084} + - {fileID: 3443707837772847702} + - {fileID: 3443707837933993630} + - {fileID: 3443707838061953070} + - {fileID: 3443707836610804365} + - {fileID: 3443707836727308953} + - {fileID: 3443707836799706216} + - {fileID: 3443707836327175381} + - {fileID: 3443707837885709234} + - {fileID: 3443707837709479049} + - {fileID: 3443707838057373052} + - {fileID: 3443707837245293204} + - {fileID: 3443707837541307024} + - {fileID: 3443707836605852014} + - {fileID: 3443707837435739574} + - {fileID: 3443707837777689023} + - {fileID: 3443707837822988561} + - {fileID: 3443707837924634556} + - {fileID: 3443707836161320140} + - {fileID: 3443707836625794617} + - {fileID: 3443707836483766926} + - {fileID: 8564858325787351279} + - {fileID: 3443707837456471656} + - {fileID: 3443707837910772984} + - {fileID: 3443707837531123000} + - {fileID: 3443707838076658931} + - {fileID: 3443707836358475082} + - {fileID: 3442276140842786143} + - {fileID: 3443707837002740897} + - {fileID: 3443707837015877542} + - {fileID: 3443707837208076113} + - {fileID: 3443707836042185399} + - {fileID: 3443707836409730902} + - {fileID: 3443707836798252828} + - {fileID: 3443707836961414508} + - {fileID: 3443707837956699227} + - {fileID: 3443707836951712600} + - {fileID: 3443707837236527368} + - {fileID: 3443707837697876601} + - {fileID: 2900383533847155872} + - {fileID: 2900383533725472601} + - {fileID: 2900383534723476114} + - {fileID: 3443707836662882561} + - {fileID: 3443707836839490734} + - {fileID: 3443707836963356040} + - {fileID: 3443707837840370233} + - {fileID: 3443707835979053533} + - {fileID: 3443707837688250966} + - {fileID: 3443707836488718374} + - {fileID: 3443707836170868781} + - {fileID: 3443707836903048378} + - {fileID: 3443707837608017194} + - {fileID: 3443707835959720558} + - {fileID: 3443707837271863034} + - {fileID: 3443707836511646836} + - {fileID: 2900383535298441750} + - {fileID: 3443707836651495524} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &3443707836160870174 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 151538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_Name + value: PalmTreeSingleBendedOneSided + objectReference: {fileID: 0} + - target: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_RootOrder + value: 24 + objectReference: {fileID: 0} + - target: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_LocalPosition.x + value: 26.006268 + objectReference: {fileID: 0} + - target: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_LocalPosition.y + value: 2.819046 + objectReference: {fileID: 0} + - target: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_LocalPosition.z + value: 60.665222 + objectReference: {fileID: 0} + - target: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} +--- !u!4 &3443707836161320140 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 451538, guid: b22d7dcea44833b4ab41d64beb6e42c8, type: 3} + m_PrefabInstance: {fileID: 3443707836160870174} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707836327374823 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 161618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_Name + value: PalmTreeSingleStraightTwoSided (2) + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_RootOrder + value: 13 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.x + value: 40.0959 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.y + value: 1.4359131 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.z + value: 103.247215 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} +--- !u!4 &3443707836327175381 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + m_PrefabInstance: {fileID: 3443707836327374823} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707836443498252 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 1382285362375992, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_Name + value: vase_A_S4 (2) + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalScale.x + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalScale.y + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalScale.z + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalPosition.x + value: 142.82268 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalPosition.y + value: 13.686249 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalPosition.z + value: 144.49481 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} +--- !u!4 &3442355878948064300 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + m_PrefabInstance: {fileID: 3443707836443498252} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707836484199438 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 137888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_Name + value: PalmTreeTrioTwoSided + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_RootOrder + value: 26 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.x + value: 115.08106 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.y + value: 4.024666 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.z + value: 131.68814 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} +--- !u!4 &3443707836483766926 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + m_PrefabInstance: {fileID: 3443707836484199438} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707836543505917 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_RootOrder + value: 61 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalScale.x + value: 150 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalScale.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalScale.z + value: 150 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalPosition.x + value: 70 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalPosition.y + value: -8 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalPosition.z + value: -1016 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -755009964982586462, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 66c06e4f431d97d47b658ce522e4dcd0, type: 2} + - target: {fileID: 919132149155446097, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_Name + value: pyramid (1) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} +--- !u!4 &2900383535298441750 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + m_PrefabInstance: {fileID: 3443707836543505917} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707836605417454 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 137888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_Name + value: PalmTreeTrioTwoSided (1) + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_RootOrder + value: 19 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.x + value: 119.90339 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.y + value: 3.3 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.z + value: 66.95 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} +--- !u!4 &3443707836605852014 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + m_PrefabInstance: {fileID: 3443707836605417454} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707836610905055 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 124274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_Name + value: PalmTreeSingleStraightOneSided + objectReference: {fileID: 0} + - target: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_RootOrder + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_LocalPosition.x + value: 139.03642 + objectReference: {fileID: 0} + - target: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_LocalPosition.y + value: 4.1998596 + objectReference: {fileID: 0} + - target: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_LocalPosition.z + value: 41.56594 + objectReference: {fileID: 0} + - target: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 20ddc844cd25b244f8005cba06955856, type: 3} +--- !u!4 &3443707836610804365 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 424274, guid: 20ddc844cd25b244f8005cba06955856, type: 3} + m_PrefabInstance: {fileID: 3443707836610905055} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707836625337611 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 161618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_Name + value: PalmTreeSingleStraightTwoSided + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_RootOrder + value: 25 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.x + value: 130.20618 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.y + value: 2.7763991 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.z + value: 101.55482 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} +--- !u!4 &3443707836625794617 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + m_PrefabInstance: {fileID: 3443707836625337611} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707836662779777 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 137888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_Name + value: PalmTreeTrioTwoSided (3) + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_RootOrder + value: 48 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.x + value: 119.90339 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.y + value: 2.19 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.z + value: 88.63 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} +--- !u!4 &3443707836662882561 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + m_PrefabInstance: {fileID: 3443707836662779777} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707836727206085 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 130684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_Name + value: PalmTreeDualStraightOneSided + objectReference: {fileID: 0} + - target: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_RootOrder + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_LocalPosition.x + value: 26.945576 + objectReference: {fileID: 0} + - target: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_LocalPosition.y + value: 10.006348 + objectReference: {fileID: 0} + - target: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_LocalPosition.z + value: 7.4377236 + objectReference: {fileID: 0} + - target: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} +--- !u!4 &3443707836727308953 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 430684, guid: b9a200fc20bd2b54392b467e9411a431, type: 3} + m_PrefabInstance: {fileID: 3443707836727206085} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707836799545660 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 131444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_Name + value: PalmTreeDualStraightTwoSided + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_RootOrder + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalPosition.x + value: 87.687546 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalPosition.y + value: 6.265747 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalPosition.z + value: 9.316347 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} +--- !u!4 &3443707836799706216 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + m_PrefabInstance: {fileID: 3443707836799545660} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837017603927 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalScale.x + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalScale.y + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalScale.z + value: 10 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalPosition.x + value: 85.22774 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalPosition.y + value: 77.8 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalPosition.z + value: -206.5 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -90 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7635826562936255635, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: f37f317b39db86e4cbaccbfa9058ab4f, type: 2} + - target: {fileID: 919132149155446097, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_Name + value: HatshepsutSphinx + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalPosition.y + value: -3.5 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + propertyPath: m_LocalPosition.z + value: 0.69 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} +--- !u!4 &2900383534815697084 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 3badab043fe1d394a9a7ce9d7cfc894f, type: 3} + m_PrefabInstance: {fileID: 3443707837017603927} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837109816697 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_RootOrder + value: 47 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.x + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.y + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.z + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.x + value: 131 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.y + value: 0.18 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.z + value: 74.6 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7635826562936255635, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: e489d9ba99e57cc4e83282ca0132c0bf, type: 2} + - target: {fileID: 919132149155446097, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_Name + value: "W\xFCrfelhocker_Scan_lp (3)" + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.y + value: 0.018 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.z + value: -0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} +--- !u!4 &2900383534723476114 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + m_PrefabInstance: {fileID: 3443707837109816697} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837231814136 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.x + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.y + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.z + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.x + value: 76.009026 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.y + value: 2.44 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.z + value: 130.91086 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.w + value: -0.00045601997 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.x + value: -0.019715738 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.y + value: 0.99953824 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.z + value: -0.023119064 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 2.65 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 180 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -2.26 + objectReference: {fileID: 0} + - target: {fileID: -7635826562936255635, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: e489d9ba99e57cc4e83282ca0132c0bf, type: 2} + - target: {fileID: 919132149155446097, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_Name + value: "W\xFCrfelhocker_Scan_lp" + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} +--- !u!4 &2900383534576513555 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + m_PrefabInstance: {fileID: 3443707837231814136} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837245229478 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 161618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_Name + value: PalmTreeSingleStraightTwoSided (1) + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_RootOrder + value: 17 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.x + value: 28.19799 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.y + value: 3.0294647 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.z + value: 82.26932 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} +--- !u!4 &3443707837245293204 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + m_PrefabInstance: {fileID: 3443707837245229478} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837311588213 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 1382285362375992, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_Name + value: vase_A_S4 (1) + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalScale.x + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalScale.y + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalScale.z + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalPosition.x + value: 75.25 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalPosition.y + value: 11.081642 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalPosition.z + value: 75.79 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} +--- !u!4 &3442355877811801173 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + m_PrefabInstance: {fileID: 3443707837311588213} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837319301892 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 519356578063339005, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_Name + value: Tower_C + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_RootOrder + value: 27 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalScale.x + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalScale.y + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalScale.z + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalPosition.x + value: 76.01 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalPosition.y + value: 10.91 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalPosition.z + value: 80.81 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} +--- !u!1 &2954258027410032377 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 519356578063339005, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + m_PrefabInstance: {fileID: 3443707837319301892} + m_PrefabAsset: {fileID: 0} +--- !u!64 &3443707836072119194 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2954258027410032377} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: -8089699231438940418, guid: 28fdc4adbfe97e54c8e2796643234834, type: 3} +--- !u!4 &8564858325787351279 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6419599023392379883, guid: d8fc3afbc6730a84681acf4eb4d0ddd0, type: 3} + m_PrefabInstance: {fileID: 3443707837319301892} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837342642726 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 1892006026768312, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_Name + value: vase_A_S1 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalScale.x + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalScale.y + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalScale.z + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalPosition.x + value: 142.81982 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalPosition.y + value: 13.686251 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalPosition.z + value: 143.5066 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} +--- !u!4 &3441886505955355954 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4094043418304276, guid: 5ddde51d280d4754494611bdcd869b3a, type: 3} + m_PrefabInstance: {fileID: 3443707837342642726} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837435545928 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 155934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_Name + value: PalmTreeTrioOneSided (1) + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_RootOrder + value: 20 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalPosition.x + value: 110.85716 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalPosition.y + value: 3.8285522 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalPosition.z + value: 32.799057 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} +--- !u!4 &3443707837435739574 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + m_PrefabInstance: {fileID: 3443707837435545928} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837541691764 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 118788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_Name + value: PalmTreeSingleBendedTwoSided + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_RootOrder + value: 18 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalPosition.x + value: 69.840675 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalPosition.y + value: 3.26828 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalPosition.z + value: 29.041826 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8d67c8074b567ec459905d65232f7154, type: 3} +--- !u!4 &3443707837541307024 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + m_PrefabInstance: {fileID: 3443707837541691764} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837620381249 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 1382285362375992, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_Name + value: vase_A_S4 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalScale.x + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalScale.y + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalScale.z + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalPosition.x + value: 64.791916 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalPosition.y + value: 2.72 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalPosition.z + value: 54.22 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.w + value: 0.9926733 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.x + value: -0.12082991 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -13.88 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} +--- !u!4 &3442355876978736481 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4281940230069024, guid: f8400ec78fc39344aa18803fd392e38a, type: 3} + m_PrefabInstance: {fileID: 3443707837620381249} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837709061997 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 118788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_Name + value: PalmTreeSingleBendedTwoSided (1) + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_RootOrder + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalPosition.x + value: 38.84349 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalPosition.y + value: 3.1727448 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalPosition.z + value: 46.57559 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalRotation.w + value: -0.10730516 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalRotation.y + value: 0.9942262 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 192.32 + objectReference: {fileID: 0} + - target: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8d67c8074b567ec459905d65232f7154, type: 3} +--- !u!4 &3443707837709479049 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 418788, guid: 8d67c8074b567ec459905d65232f7154, type: 3} + m_PrefabInstance: {fileID: 3443707837709061997} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837772648804 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 161618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_Name + value: PalmTreeSingleStraightTwoSided (3) + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_RootOrder + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.x + value: 113.361984 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.y + value: 3.9062042 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.z + value: 55.655575 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} +--- !u!4 &3443707837772847702 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + m_PrefabInstance: {fileID: 3443707837772648804} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837777312025 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 109766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_Name + value: PalmTreeDualBendedOneSided + objectReference: {fileID: 0} + - target: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_RootOrder + value: 21 + objectReference: {fileID: 0} + - target: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_LocalPosition.x + value: 63.891724 + objectReference: {fileID: 0} + - target: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_LocalPosition.y + value: 1.5975494 + objectReference: {fileID: 0} + - target: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_LocalPosition.z + value: 122.972694 + objectReference: {fileID: 0} + - target: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_LocalRotation.w + value: 0.50105774 + objectReference: {fileID: 0} + - target: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_LocalRotation.y + value: 0.86541384 + objectReference: {fileID: 0} + - target: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 119.86 + objectReference: {fileID: 0} + - target: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} +--- !u!4 &3443707837777689023 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 409766, guid: 38291ecd3571d294ead9e9d15c345a6d, type: 3} + m_PrefabInstance: {fileID: 3443707837777312025} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837823059439 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 155934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_Name + value: PalmTreeTrioOneSided + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_RootOrder + value: 22 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalPosition.x + value: 39.469696 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalPosition.y + value: 3.792282 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalPosition.z + value: 25.597696 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} +--- !u!4 &3443707837822988561 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 455934, guid: 2ed7cc7e3c944414d8f3fabb4d533018, type: 3} + m_PrefabInstance: {fileID: 3443707837823059439} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837885273394 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 137888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_Name + value: PalmTreeTrioTwoSided (2) + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.x + value: 86.435135 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.y + value: 1.6977965 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalPosition.z + value: 113.579605 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.w + value: 0.8699257 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.y + value: 0.49318287 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 59.1 + objectReference: {fileID: 0} + - target: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} +--- !u!4 &3443707837885709234 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 437888, guid: ecc2762d91d3584429565bde5fbede9e, type: 3} + m_PrefabInstance: {fileID: 3443707837885273394} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837925001702 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 119418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_Name + value: PalmTreeDualBendedTwoSided + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_RootOrder + value: 23 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalPosition.x + value: 24.856457 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalPosition.y + value: 2.08 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalPosition.z + value: 118.40034 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} +--- !u!4 &3443707837924634556 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + m_PrefabInstance: {fileID: 3443707837925001702} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837934450092 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 161618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_Name + value: PalmTreeSingleStraightTwoSided (4) + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_RootOrder + value: 8 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.x + value: 124.007484 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.y + value: 1.9449921 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalPosition.z + value: 14.32599 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} +--- !u!4 &3443707837933993630 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 461618, guid: 03566e50eb2d319468a8720030b6bcf6, type: 3} + m_PrefabInstance: {fileID: 3443707837934450092} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707837994726219 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_RootOrder + value: 45 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.x + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.y + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.z + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.x + value: 76.32 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.y + value: 4.11 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.z + value: 13.62 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.w + value: 0.99953824 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.x + value: 0.023119064 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.y + value: 0.00045601997 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.z + value: -0.019715738 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 2.65 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: -2.26 + objectReference: {fileID: 0} + - target: {fileID: -7635826562936255635, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: e489d9ba99e57cc4e83282ca0132c0bf, type: 2} + - target: {fileID: 919132149155446097, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_Name + value: "W\xFCrfelhocker_Scan_lp (1)" + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.y + value: 0.018 + objectReference: {fileID: 0} + - target: {fileID: 1151388028547126963, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.z + value: -0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} +--- !u!4 &2900383533847155872 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + m_PrefabInstance: {fileID: 3443707837994726219} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707838057495334 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 119418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_Name + value: PalmTreeDualBendedTwoSided (1) + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_RootOrder + value: 16 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalPosition.x + value: 21.309727 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalPosition.y + value: 5.2886963 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalPosition.z + value: 47.514896 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} +--- !u!4 &3443707838057373052 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 419418, guid: 785bfd81c9fb838469851c06eb415f7a, type: 3} + m_PrefabInstance: {fileID: 3443707838057495334} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707838062384506 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: 131444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_Name + value: PalmTreeDualStraightTwoSided (1) + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_RootOrder + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalPosition.x + value: 90.50547 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalPosition.y + value: 0.4577942 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalPosition.z + value: 85.71345 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} +--- !u!4 &3443707838061953070 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 431444, guid: 5e617e90ac28ce7488be6a63235b1f32, type: 3} + m_PrefabInstance: {fileID: 3443707838062384506} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707838074204338 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_RootOrder + value: 46 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.x + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.y + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalScale.z + value: 25 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.x + value: 19.6 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.y + value: 0.63 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalPosition.z + value: 76.4 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.y + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7635826562936255635, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: e489d9ba99e57cc4e83282ca0132c0bf, type: 2} + - target: {fileID: 919132149155446097, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + propertyPath: m_Name + value: "W\xFCrfelhocker_Scan_lp (2)" + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} +--- !u!4 &2900383533725472601 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 584fa66ddf3192c499b1b2dcf248d8b4, type: 3} + m_PrefabInstance: {fileID: 3443707838074204338} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &3443707838090198373 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5338759391028074855} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalScale.x + value: 100 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalScale.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalScale.z + value: 100 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalPosition.x + value: 167.42398 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalPosition.y + value: -8 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalPosition.z + value: -590 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -755009964982586462, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 66c06e4f431d97d47b658ce522e4dcd0, type: 2} + - target: {fileID: 919132149155446097, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + propertyPath: m_Name + value: pyramid + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} +--- !u!4 &2900383533743037070 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 307d134670d8f9c438d8db2e40b5c2ee, type: 3} + m_PrefabInstance: {fileID: 3443707838090198373} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/Scenes/Paintball/prefabs/egypt.prefab.meta b/Assets/Scenes/Paintball/prefabs/egypt.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..e5def4c6cad12068e6932233e6b644efeed5340d --- /dev/null +++ b/Assets/Scenes/Paintball/prefabs/egypt.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2598c3aef4da7c34bacce11a6f3da47d +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/CourseAPieds/V7.cs b/Assets/Scripts/CourseAPieds/V7.cs index e2e072cd6979bf5f304c0dfda882876b44e3329c..61393d7f88b2a954659f79073403e51e11049c70 100644 --- a/Assets/Scripts/CourseAPieds/V7.cs +++ b/Assets/Scripts/CourseAPieds/V7.cs @@ -1,259 +1,93 @@ - -/** - * Fichier : V7.cs - * - * Auteur : Clément GERAUDIE - * Date : Avril 2022 - * Groupe : TP 4C - * - * Résumé du fichier : - * - * Cette classe permet de générer un terrain aléatoire et d'y ajouter un chemin aléatoire. - * - */ - - using UnityEngine; public class V7 : MonoBehaviour { - [Header("Debug Mode")] - public bool debugMode = false; - - [Header("Initialisation")] - public int nombreDePointsAGenerer = 5; - public int largeurDuChemin = 5; - public float offsetDeLaHauteur = -0.1f; - - [Header("Terrain")] - [SerializeField] private Terrain terrain; - public int pronfondeurDuTerrain = 20; - - // Constantes pour la heightmap - [SerializeField] private int heightmapWidth = 256; - [SerializeField] private int heightmapHeight = 256; - [SerializeField] private int terrainWidth = 256; - [SerializeField] private int terrainHeight = 256; + public int depth = 20; + public int width = 256; + public int height = 256; public float scale = 2f; - public int[,] pointsDuChemin; - public int[] ptProches; - int ptsChemAbscisse; - int ptsChemIndex; - public Rigidbody Cube; - int cmptCubes = 0; + public int[,] values; + int dim1; + int dim2; + //public float offsetX = 100f; //public float offsetY = 100f; void Start() { - - // Création du tableau des points aléatoires (chemin) - pointsDuChemin = new int[2, nombreDePointsAGenerer]; - // Récupère les dimensions du tableau de manière optimisée - ptsChemAbscisse = pointsDuChemin.GetLength(0); - ptsChemIndex = pointsDuChemin.GetLength(1); - - // On va générer les points de sorte à ce qu'il ne puissent pas se croiser - // On va découper le terrain en N partie, n étant le nombre de pts à générer - int lastBorder = 0; - int newBorder; - for (int abscisse = 0; abscisse < ptsChemAbscisse; abscisse++) + values = new int[2,5]; + dim1 = values.GetLength(0); + dim2 = values.GetLength(1); + for (int i = 0; i <dim1; i++) { - for (int indexPt = 0; indexPt < ptsChemIndex; indexPt++) + for (int j = 0; j < dim2; j++) { - if(abscisse==1){ - // Si abscisse = 1, ça veut dire qu'on est sur l'axe Y du terrain - newBorder = (heightmapWidth / nombreDePointsAGenerer) + lastBorder; // On calcule dynamiquement la taille de la zone de terrain où l'on va générer le pt - pointsDuChemin[abscisse, indexPt] = Random.Range(lastBorder, newBorder); // On génère un pt aléatoire dans la zone définie - // Debug.Log("Point Y=" + pointsDuChemin[x, y]); - lastBorder = newBorder; // On met à jour la zone de terrain où l'on va générer le pt - }else{ - // Normalement, on est sur 0 (c'set un tableau de taille 2) - pointsDuChemin[abscisse, indexPt] = Random.Range(0, heightmapWidth); - // Debug.Log("Point X=" + pointsDuChemin[x, y]); - } + values[i, j] = Random.Range(0, width); } } + + } - // On va récupérer le terrain et on va générer sa forme - terrain = GetComponent<Terrain>(); + void Update() + { + Terrain terrain = GetComponent<Terrain>(); terrain.terrainData = GenerateTerrain(terrain.terrainData); - - // On va faire quelques vérifications - if(terrain == null) - { - Debug.LogError("Terrain non trouvé"); - return; - } - if(terrain.terrainData == null) - { - Debug.LogError("TerrainData non trouvé"); - return; - } - - // On va tracer le chemin - tracerChemin(); } TerrainData GenerateTerrain(TerrainData terrainData) { - terrainData.heightmapResolution = heightmapWidth + 1; + terrainData.heightmapResolution = width + 1; - terrainData.size = new Vector3(terrainWidth, pronfondeurDuTerrain, terrainHeight); + terrainData.size = new Vector3(width, depth, height); terrainData.SetHeights(0, 0, GenerateHeights()); + // offsetX += Time.deltaTime * 5f; + return terrainData; } - /*void ptLePlusProche() + bool PisteTest(int x, int y) { - int ptProche = -1; - double resultPtProche = 256; - double resultPtActuel = 256; - ptProches = new int[ptsCheminY]; - for (int i = 0; i < ptsCheminY; i++) + for (int i = 0; i < dim2; i++) { - for (int j = 0; j < ptsCheminY; j++) + if (x == values[0,i] && y == values[1,i]) { - if (pointsDuChemin[0, j] != pointsDuChemin[0, i] || pointsDuChemin[1, j] != pointsDuChemin[1, i]) - { - int x1 = pointsDuChemin[0, i]; - int y1 = pointsDuChemin[1, i]; - int x2 = pointsDuChemin[0, j]; - int y2 = pointsDuChemin[1, j]; - resultPtActuel = Mathf.Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2); - if (resultPtActuel < resultPtProche) - { - resultPtProche = resultPtActuel; - ptProche = j; - } - } + return true; } - ptProches[i] = ptProche; - } - // Debug liste de ptProches - for (int i = 0; i < ptsCheminY; i++) - { - Debug.Log("ptProches[" + i + "] = " + ptProches[i]); } - }*/ - // Tracer chemin va se charger de dessinner le chemin au sol - private void tracerChemin() - { - // On va parcourir les pointsDuChemin et tracer le chemin entre ces points - for(int i=0; i<nombreDePointsAGenerer-1; i++) - { - // Debug.Log("Point 1 : " + pointsDuChemin[0, i] + " " + pointsDuChemin[1, i]); - // Debug.Log("Point 2 : " + pointsDuChemin[0, i+1] + " " + pointsDuChemin[1, i+1]); - tracerChemin(pointsDuChemin[0, i], pointsDuChemin[1, i], pointsDuChemin[0, i+1], pointsDuChemin[1, i+1]); - } + return false; } - private void tracerChemin(int x1, int y1, int x2, int y2) + float[,] GenerateHeights() { - int x = x1; - int y = y1; - float xPositionMultiplier = terrain.terrainData.size.x / heightmapWidth; - float yPositionMultiplier = terrain.terrainData.size.z / heightmapHeight; - // On va faire un lerp entre les points - float lerp = 0f; - while(lerp < 1f) + float[,] heights = new float[width, height]; + for (int x = 0; x < width; x++) { - lerp += 0.01f; - x = Mathf.RoundToInt(Mathf.Lerp(x1, x2, lerp)); - y = Mathf.RoundToInt(Mathf.Lerp(y1, y2, lerp)); - //Debug.Log("x = " + x + " y = " + y); - float hauteur, hauteurAvant, hauteurApres; - - // On va tracer le chemin en largeur - for(int indexLargeur=0; indexLargeur<largeurDuChemin; indexLargeur++) + for (int y = 0; y < height; y++) { - if(x+indexLargeur < heightmapWidth && y+indexLargeur < heightmapHeight) + if (PisteTest(x, y)) { - // On va calculer la hauteur du point par rapport aux coordonées d'avant, et d'après - if(x+indexLargeur-1 < 0 || y+indexLargeur-1 < 0){ - hauteurAvant = 0; - } - else{ - hauteurAvant = terrain.terrainData.GetHeight(x+indexLargeur-1, y+indexLargeur-1); - } - if(x+indexLargeur+1 >= heightmapWidth || y+indexLargeur+1 >= heightmapHeight){ - hauteurApres = 0; - } - else - { - hauteurApres = terrain.terrainData.GetHeight(x+indexLargeur+1, y+indexLargeur+1); - } - // On va faire la moyenne des deux hauteurs si elles sont != 0 - if(hauteurAvant != 0 && hauteurApres != 0){ - hauteur = (hauteurAvant + hauteurApres) / 2; - }else if(hauteurAvant != 0){ - hauteur = hauteurAvant; - }else if(hauteurApres != 0){ - hauteur = hauteurApres; - }else{ - hauteur = 0; - } - - hauteur += offsetDeLaHauteur; - // On va changer l'échelle de la hauteur sur 1 - hauteur = hauteur / terrain.terrainData.size.y; - - Debug.Log("hauteur = " + hauteur); - terrain.terrainData.SetHeights(x+indexLargeur, y+indexLargeur, new float[,] { { hauteur, hauteur }}); - int obstacle = Random.Range(0, largeurDuChemin); - if (indexLargeur == obstacle) - { - cmptCubes++; - if (cmptCubes == 5) - { - Rigidbody instance; - instance = Instantiate(Cube, new Vector3((x + indexLargeur) * xPositionMultiplier, hauteur * terrain.terrainData.size.y, (y + indexLargeur) * yPositionMultiplier), Quaternion.identity); - instance.GetComponent<Renderer>().material.color = Random.ColorHSV(0f, 1f, 1f, 1f, 0.5f, 1f); - cmptCubes = 0; - } - } - + heights[x, y] = 0; + } + else + { + heights[x, y] = CalculateHeight(x, y); } } } - } - - - float[,] GenerateHeights() - { - // On initialise le tableau - float[,] terrainHeightsList = new float[heightmapWidth, heightmapHeight]; - - // On remplit le tableau - for (int x = 0; x < heightmapWidth; x++) - { - for (int y = 0; y < heightmapHeight; y++) - { - // On calcule hauteur - terrainHeightsList[x, y] = CalculateHeight(x, y); - } - } - - // Pour chaque point à générer, on va définir la hauteur à 0 - for (int i = 0; i < nombreDePointsAGenerer; i++) - { - terrainHeightsList[pointsDuChemin[1, i], pointsDuChemin[0, i]] = 0; // terrainHeightsList[ ptPosX, ptPosY ] = 0; - } - return terrainHeightsList; + return heights; } - // Renvoie une valeur semi-aléaoite (perlin noise) entre un point x et y float CalculateHeight(int x, int y) { - float xCoord = (float)x / heightmapWidth * scale;//+ offsetX; - float yCoord = (float)y / heightmapHeight * scale;//+ offsetY; + float xCoord = (float)x / width * scale;//+ offsetX; + float yCoord = (float)y / height * scale;//+ offsetY; return Mathf.PerlinNoise(xCoord, yCoord); } diff --git a/Assets/Scripts/Paintball/MapHandler.cs b/Assets/Scripts/Paintball/MapHandler.cs new file mode 100644 index 0000000000000000000000000000000000000000..a705258a334afcf4b51fd76459bfcb50eb83665d --- /dev/null +++ b/Assets/Scripts/Paintball/MapHandler.cs @@ -0,0 +1,167 @@ +/** + * Fichier : MapHandler.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re la g�n�ration al�atoire du terrain et aussi le changement de la map + * + */ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + + +[System.Serializable] +public class mapTextures +{ + public Texture2D texture; + public Texture2D normal; +} + +public class MapHandler : MonoBehaviour +{ + // des variable qui d�finisse un terrain + public int size = 256; + public int maxHeight = 30; + public float scale = 2; + [Range(0f, 1.5f)] + public float depth = 1; + public TerrainData terrain; + public List<mapTextures> textures; + public List<GameObject> walls; + public Material terrainMap; + public GameObject egyptMap; + public Texture2D mask; + int offsetX, offsetY; + int textureId = 0; + Texture2D normal; + Terrain terrainInstance; + + private void Awake() + { + // initialiser la briallance a 0 + setSmootheness(0); + // chosir une texture random + setRandomTexture(); + } + + void Start() + { + // intialiser les variable + terrainInstance = GetComponent<Terrain>(); + offsetX = Random.Range(0, 1000); + offsetY = Random.Range(0, 1000); + terrainMap.EnableKeyword("_NORMALMAP"); + //generer un terrain aleatoire + genTerrainRandom(); + chooseMap(); + + } + + // Update is called once per frame + void Update() + { + + } + + // coisir une map aleatoire + void chooseMap() + { + int index = Random.Range(0, 2); + index = index == 2 ? index - 1 : index; + if(index == 1) + { + Instantiate(egyptMap,transform); + terrainInstance.enabled = false; + terrainInstance.transform.GetComponent<TerrainCollider>().enabled = false; + foreach(GameObject wall in walls) + { + + wall.SetActive(false); + } + } + + } + + // g�nerer le terrain aleatoirement + Terrain genTerrainRandom() + { + Terrain terrain = transform.GetComponent<Terrain>(); + if (terrain == null) + { + terrain = new Terrain(); + } + terrain.terrainData = GenerateTerrain(terrain.terrainData); + return terrain; + } + + + // changer les valeur dans le fichier terrain data du terrain + TerrainData GenerateTerrain(TerrainData terrainData) + { + terrainData.heightmapResolution = size + 1; + + terrainData.size = new Vector3(size, maxHeight, size); + + terrainData.SetHeights(0, 0, GenerateHeights()); + + return terrainData; + } + + // generer un array double de hauteur (2D) + float[,] GenerateHeights() + { + float[,] heights = new float[size, size]; + for (int x = 0; x < size; x++) + { + for (int y = 0; y < size; y++) + { + heights[x, y] = useMask(CalculateHeight(x, y),x,y); + } + } + return heights; + } + + // claculer les hauteurs des points x, y du terrain + float CalculateHeight(int x, int y) + { + float xCoord = (float)x / size * scale; + float yCoord = (float)y / size * scale; + + return Mathf.PerlinNoise(xCoord + offsetX, yCoord + offsetY) * depth; + } + + // changer la texture a une texture choisi par le systeme meteo + public void changeTexture(Texture2D texture) + { + terrainMap.mainTexture = texture; + } + + // choisir une texture aleatoire de la liste + private void setRandomTexture() + { + textureId = Random.Range(0, textures.Count); + terrainMap.mainTexture = textures[textureId].texture; + normal = textures[textureId].normal; + terrainMap.SetTexture("_BumpMap", normal != null ? normal : new Texture2D(size, size)); + } + + // changer la briallance du terrain: le systeme meteo + public void setSmootheness(float smoothness) + { + terrainMap.SetFloat("_Smoothness", smoothness); + } + + //utiliser un mask pixel par pixel + float useMask(float height,int x, int y) + { + float grayimage = mask.GetPixel(x, y).grayscale; + return height * grayimage; + } + +} diff --git a/Assets/Scripts/Paintball/MapHandler.cs.meta b/Assets/Scripts/Paintball/MapHandler.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b89ff3ccf2382e0c93ef6dc13f0f4a5e623d062e --- /dev/null +++ b/Assets/Scripts/Paintball/MapHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 495e018bea939854188d7f65db2e016e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/Player/Personal/Mouvements.cs b/Assets/Scripts/Paintball/Player/Personal/Mouvements.cs index 706725e78868b9f610489035c5cb4b8885a36a2c..4e0186bc2d77b1326ad806cd30c427f4810feac2 100644 --- a/Assets/Scripts/Paintball/Player/Personal/Mouvements.cs +++ b/Assets/Scripts/Paintball/Player/Personal/Mouvements.cs @@ -1,86 +1,93 @@ +/** + * Fichier : SelectWeapon.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re les mouvements + * + */ using System.Collections; using System.Collections.Generic; using UnityEngine; -using UnityEngine.InputSystem; -[RequireComponent(typeof(Rigidbody))] +[RequireComponent(typeof(CharacterController))] public class Mouvements : MonoBehaviour { - // variable that will be displayed on the inspector - [Header("Camera Settings")] - [SerializeField] private Camera mainCam; - [SerializeField] [Range(0f, 3f)] private float zOffset; - [SerializeField] [Range(0f, 3f)] private float yOffset; - [SerializeField] [Range(0f, 3f)] private float xOffset; - - - [Header("Player Settings")] - [SerializeField] [Range(0f, 10f)] private float speed; - [SerializeField] [Range(0f, 10f)] private float jumpForce; - [SerializeField] [Range(0f, 10f)] private float sprintSpeed; // variable that will not be displayed on the inspector - - [SerializeField] private Rigidbody rb; + [Header("Player Settings")] [SerializeField] private CharacterController controller; - - + [SerializeField] private float speed = 10f; + [SerializeField] private float jumpSpeed = 10f; + [SerializeField] private float gravity = 20f; + [SerializeField] private Vector3 moveDirectionForward = Vector3.zero; + [SerializeField] private float yBefore = 0.0f, yAfter = 0.0f; + [SerializeField] private Transform lookAt; + [SerializeField] private keymap keymap; + CharacterController charcterController; + Camera mainCam; void Start() { - rb = transform.GetComponent<Rigidbody>(); - controller = GetComponent<CharacterController>(); - } - void Update() - { - updateCameraPosition(); - } - - - void updateCameraPosition() - { - mainCam.transform.position = new Vector3 (transform.position.x + xOffset, transform.position.y + yOffset, transform.position.z + zOffset); + //on a definie un CharacterController pour controller le perso + charcterController = GetComponent<CharacterController>(); + mainCam = Camera.main; + } - public void OnMove(InputValue value) + // Update is called once per frame + void Update() { - Vector2 Direction = value.Get<Vector2>(); - float horizontal = Direction.x * Time.deltaTime * speed; ; - float vertical = Direction.y * Time.deltaTime * speed; ; - if (Direction != Vector2.zero) + /*if (Input.GetKey(KeyCode.Escape)) + { + Cursor.visible = true; + Cursor.lockState = CursorLockMode.None; + }*/ + //Permet de faire tourner le joueur sur lui meme (avec les touches q/d) + moveDirectionForward.y -= gravity * Time.deltaTime; + //transform.Rotate(Vector3.up * Input.GetAxis("Horizontal") * Time.deltaTime * speed * 10); + charcterController.Move(moveDirectionForward * Time.deltaTime); + + //camera + Vector3 forwardDirectionCamera = mainCam.transform.forward; + forwardDirectionCamera.y = 0; + if (forwardDirectionCamera.sqrMagnitude != 0.0f) { - transform.Translate(vertical, 0, horizontal ); - Debug.Log("move: " + Direction); + forwardDirectionCamera.Normalize(); + transform.LookAt(transform.position + forwardDirectionCamera); + } + if (charcterController.isGrounded) + {//Si on touche le sol on peut avancer + moveDirectionForward = new Vector3(keymap.getHorizontalAxis(), 0, keymap.getVerticalAxis()); + moveDirectionForward = transform.TransformDirection(moveDirectionForward); + moveDirectionForward *= speed; + //faire que le peronnage saut quand il appuis sur espace + if (keymap.isPressed("jump")) + { + moveDirectionForward.y = jumpSpeed; + } + } + //le joueur vas voir sa speed augmenter ou baisser suivant son haltitude + //on met la valeur y du joeur dans le yAfter en premier pour pouvoir le comparer avec l'ancien + yAfter = transform.position.y; + if (yAfter > yBefore) + {//si on est en monter + if (speed > 1) speed -= 0.01f;//la speed baisse + } + if (yAfter < yBefore) + {//si on est en decente + if (speed > 1) speed += 0.01f;//la speed augmente + } + if (yAfter == yBefore) + {//si on est sur du plat + speed = 10f;//la speed revient � la normal } - } - - - - public void OnLook(InputValue value) - { - //transform.rotation = Quaternion.LookRotation(Camera.main.transform.forward, Camera.main.transform.up); - //Debug.Log("look: " + value.Get<Vector2>()); - } - - public void OnJump(InputValue value) - { - //Debug.Log("jump: " + value.isPressed); - } - - public void OnSprint(InputValue value) - { - //Debug.Log("sprint: " + value.isPressed); - } - public void OnAim(InputValue value) - { - //Debug.Log("aim: " + value.isPressed); - } + yBefore = yAfter;//le yBefore devient celui d'apr�s pour la prochaine frame - public void OnShoot(InputValue value) - { - //Debug.Log("shoot: " + value.isPressed); } - - } diff --git a/Assets/Scripts/Paintball/Weather.meta b/Assets/Scripts/Paintball/Weather.meta new file mode 100644 index 0000000000000000000000000000000000000000..b32bcf93938ceb0b81e6d1d1e12a09490948e6ad --- /dev/null +++ b/Assets/Scripts/Paintball/Weather.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ffac03b16f673434c9daa8431f651710 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/Weather/prefabs.meta b/Assets/Scripts/Paintball/Weather/prefabs.meta new file mode 100644 index 0000000000000000000000000000000000000000..25a0ab1b8244015e3edb52d41c65ec3b929286c3 --- /dev/null +++ b/Assets/Scripts/Paintball/Weather/prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dd95e7251b4ae584493e82d6b80e08de +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/Weather/prefabs/New Material.mat b/Assets/Scripts/Paintball/Weather/prefabs/New Material.mat new file mode 100644 index 0000000000000000000000000000000000000000..30bb5d5b47ad6a3bc4a28c93b98a804768ed0bcc --- /dev/null +++ b/Assets/Scripts/Paintball/Weather/prefabs/New Material.mat @@ -0,0 +1,148 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-2400996352365121714 +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: 5 +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: New Material + m_Shader: {fileID: 4800000, guid: 0406db5a14f94604a8c57ccfbc9f3b46, type: 3} + m_ShaderKeywords: _EMISSION _SURFACE_TYPE_TRANSPARENT + m_LightmapFlags: 0 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 10912, guid: 0000000000000000f000000000000000, type: 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} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + 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} + - _ParallaxMap: + 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} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _Blend: 0 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _ColorMode: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 + - _DstBlend: 10 + - _EmissionEnabled: 0 + - _EnvironmentReflections: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _LightingEnabled: 0 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 5 + - _Surface: 1 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _BaseColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Scripts/Paintball/Weather/prefabs/New Material.mat.meta b/Assets/Scripts/Paintball/Weather/prefabs/New Material.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..3824b0876636e00dc88b99ae0122d54cbc73e2c6 --- /dev/null +++ b/Assets/Scripts/Paintball/Weather/prefabs/New Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c93c80cc606250e45b6b8af2dfa0b6e7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/Weather/prefabs/rain.prefab b/Assets/Scripts/Paintball/Weather/prefabs/rain.prefab new file mode 100644 index 0000000000000000000000000000000000000000..6a1365656c13bca0df7589a12972c97738b6d5aa --- /dev/null +++ b/Assets/Scripts/Paintball/Weather/prefabs/rain.prefab @@ -0,0 +1,4814 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5995571621279174926 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5995571621279174929} + - component: {fileID: 5995571621279174928} + - component: {fileID: 5995571621279174927} + m_Layer: 0 + m_Name: rain + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5995571621279174929 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995571621279174926} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 128, y: 50, z: 128} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &5995571621279174928 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995571621279174926} + serializedVersion: 8 + lengthInSec: 10 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + emitterVelocityMode: 1 + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 0.5058824, g: 0.57223576, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 100000 + customEmitterVelocity: {x: 0, y: 0, z: 0} + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 5 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 265, y: 60, z: 265} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 20000 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 3 + scalar: -0.5 + minScalar: 0.5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 3 + scalar: -8 + minScalar: -12 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 3 + scalar: -0.5 + minScalar: 0.5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 1 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 0 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 1 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &5995571621279174927 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995571621279174926} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: c93c80cc606250e45b6b8af2dfa0b6e7, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_MeshDistribution: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MeshWeighting: 1 + m_MeshWeighting1: 1 + m_MeshWeighting2: 1 + m_MeshWeighting3: 1 + m_MaskInteraction: 0 diff --git a/Assets/Scripts/Paintball/Weather/prefabs/rain.prefab.meta b/Assets/Scripts/Paintball/Weather/prefabs/rain.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..93e0f51bbfc3465b42e687ac90aa8640f547023c --- /dev/null +++ b/Assets/Scripts/Paintball/Weather/prefabs/rain.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c1ac47c9bdffa594d9a8316198af2c12 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/Weather/prefabs/snow.prefab b/Assets/Scripts/Paintball/Weather/prefabs/snow.prefab new file mode 100644 index 0000000000000000000000000000000000000000..448925654fdbe4575916e4e62456f9c0fef0363f --- /dev/null +++ b/Assets/Scripts/Paintball/Weather/prefabs/snow.prefab @@ -0,0 +1,4814 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5995571621279174926 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5995571621279174929} + - component: {fileID: 5995571621279174928} + - component: {fileID: 5995571621279174927} + m_Layer: 0 + m_Name: snow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5995571621279174929 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995571621279174926} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 128, y: 50, z: 128} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &5995571621279174928 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995571621279174926} + serializedVersion: 8 + lengthInSec: 10 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + emitterVelocityMode: 1 + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.3 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 100000 + customEmitterVelocity: {x: 0, y: 0, z: 0} + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 1 + type: 5 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 265, y: 60, z: 265} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 20000 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 3 + scalar: -2 + minScalar: 2 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 3 + scalar: -2 + minScalar: -4 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 3 + scalar: -2 + minScalar: 2 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 1 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 0 + m_Planes: [] + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 1 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &5995571621279174927 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5995571621279174926} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9063ba1a3bb1ded449da3b1e97ba6303, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_MeshDistribution: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 0 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MeshWeighting: 1 + m_MeshWeighting1: 1 + m_MeshWeighting2: 1 + m_MeshWeighting3: 1 + m_MaskInteraction: 0 diff --git a/Assets/Scripts/Paintball/Weather/prefabs/snow.prefab.meta b/Assets/Scripts/Paintball/Weather/prefabs/snow.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..5506771ba24659e65b6713e078e55878ed6f4525 --- /dev/null +++ b/Assets/Scripts/Paintball/Weather/prefabs/snow.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 502af3364ee2f3146ab661097dfbae1f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/Weather/weatherHandler.cs b/Assets/Scripts/Paintball/Weather/weatherHandler.cs new file mode 100644 index 0000000000000000000000000000000000000000..1974a9f5e0685c8bebc6816b87a59437876ab49d --- /dev/null +++ b/Assets/Scripts/Paintball/Weather/weatherHandler.cs @@ -0,0 +1,98 @@ +/** + * Fichier : weatherHandler.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re le systeme meteo + * + */ + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[RequireComponent(typeof(AudioSource))] +public class weatherHandler : MonoBehaviour +{ + public List<weathersByDay> weathers; // liste meteo pr�d�finis + public Light lightSource; // source de lumiere + public MapHandler mapHandler; // referance au maphandlers + public AudioSource audioSource; + public weathersRaw currentWeather; + void Start() + { + audioSource = GetComponent<AudioSource>(); + setWeatherRandom(); + //setWeather(0, 0); + } + + // Update is called once per frame + void Update() + { + + } + + // choisir aleatoirement un temps + public void setWeatherRandom() + { + // choisir entre ["noon","morning","night"] aleatoirement + int indexDay = Random.Range(0, weathers.Count); + int indexWeather = Random.Range(0, weathers[indexDay].weathersType.Count); + currentWeather = weathers[indexDay].weathersType[indexWeather].weathers; + Debug.Log(currentWeather.isUsingParticles); + // changer l'intensit� de la lumiere + lightSource.intensity = currentWeather.lightIntensity; + // changer le skybox par defaut + RenderSettings.skybox = currentWeather.skybox; + // chnager la brillance du terrain + mapHandler.setSmootheness(currentWeather.smootheness); + + //check si l'instance meteo utilise de sparticule comme de la neige + if (currentWeather.isUsingParticles) + { + Instantiate(currentWeather.particles); + } + // check si l'instance utilise un texture comme la texture de la neige + if (currentWeather.isUsingTexture) + { + mapHandler.changeTexture(currentWeather.Texture); + } + // check si l'instance utilise un audio + if (currentWeather.isUsingAudio) + { + audioSource.clip = currentWeather.soundeffect; + audioSource.loop = true; + audioSource.Play(); + } + } + + // choisir un temps en donnat un index + public void setWeather(int dayTime,int cast) + { + // la meme chose que dans la methode aleatoire + currentWeather = weathers[dayTime].weathersType[cast].weathers; + Debug.Log(currentWeather.isUsingParticles); + lightSource.intensity = currentWeather.lightIntensity; + RenderSettings.skybox = currentWeather.skybox; + mapHandler.setSmootheness(currentWeather.smootheness); + if (currentWeather.isUsingParticles) + { + Instantiate(currentWeather.particles); + } + if (currentWeather.isUsingTexture) + { + mapHandler.changeTexture(currentWeather.Texture); + } + if (currentWeather.isUsingAudio) + { + audioSource.clip = currentWeather.soundeffect; + audioSource.loop = true; + audioSource.Play(); + } + } + +} diff --git a/Assets/Scripts/Paintball/Weather/weatherHandler.cs.meta b/Assets/Scripts/Paintball/Weather/weatherHandler.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..1bac8354107bcbe09d08a86f0f35163cac234029 --- /dev/null +++ b/Assets/Scripts/Paintball/Weather/weatherHandler.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 56941ee72aad70246ac296168be124b7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/Weather/weathers.cs b/Assets/Scripts/Paintball/Weather/weathers.cs new file mode 100644 index 0000000000000000000000000000000000000000..af8051f4d992cdc879774e53806093f1db726c91 --- /dev/null +++ b/Assets/Scripts/Paintball/Weather/weathers.cs @@ -0,0 +1,65 @@ +/** + * Fichier : weather.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re les classes qui definisse des weathers + * + */ + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + + +// des classes qui d�finisse le weather + +[System.Serializable] +public class weathersRaw +{ + public float lightIntensity = 1; + [Range(0f,1f)] + public float smootheness = 1; + public Material skybox; + public GameObject particles; + public Texture2D Texture; + public AudioClip soundeffect; + public bool isUsingParticles; + public bool isUsingTexture; + public bool isUsingAudio; +} + +[System.Serializable] +public class weathersByDay +{ + public timeDay timeOfDay; + public List<weathersByType> weathersType; + +} + +[System.Serializable] +public class weathersByType +{ + public weather cast; + public weathersRaw weathers; +} + +public enum weather +{ + snow, + rain, + normal, + toon +} + +public enum timeDay +{ + noon, + morning, + night +} \ No newline at end of file diff --git a/Assets/Scripts/Paintball/Weather/weathers.cs.meta b/Assets/Scripts/Paintball/Weather/weathers.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a8492d0a78edca43200ad188590ad74355471456 --- /dev/null +++ b/Assets/Scripts/Paintball/Weather/weathers.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 64fc75739b7174e4f9b7ce241a8cf727 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/armeSelection/SelectWeapon.cs b/Assets/Scripts/Paintball/armeSelection/SelectWeapon.cs index ab623e19152fb63e02c86c370d54a4b641cc34ad..b3a80149106057ba492cd5db319a2d7d5d4f6b07 100644 --- a/Assets/Scripts/Paintball/armeSelection/SelectWeapon.cs +++ b/Assets/Scripts/Paintball/armeSelection/SelectWeapon.cs @@ -1,3 +1,17 @@ +/** + * Fichier : SelectWeapon.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re le changement d'arme dans le ui et la scene + * + */ + + using System.Collections; using System.Collections.Generic; using TMPro; @@ -13,20 +27,22 @@ public class SelectWeapon : MonoBehaviour public GameObject currentSlot; public GameObject currentArmeObj; public Transform ArmePos; - GameObject infoUI; + public GameObject infoUI; + public Arme arme; + [SerializeField] private Transform lookAt; int id; + int oldId = -1; // Start is called before the first frame update void Start() { - slotList = getSlots(); - infoUI = GameObject.FindGameObjectWithTag("infoBarUI"); - if (infoUI != null) - infoUI.SetActive(false); + infoUI.SetActive(false); } // Update is called once per frame void Update() { + + // check si on a fait un scroll if (Input.GetAxisRaw("Mouse ScrollWheel") > 0) { id += 1; @@ -36,6 +52,9 @@ public class SelectWeapon : MonoBehaviour { id -= 1; } + + + // check si la valeur a chang� pour ne pas faire la meme chose chaque frame if (id > (slotList.Count - 1)) { id = 0; @@ -44,10 +63,15 @@ public class SelectWeapon : MonoBehaviour { id = slotList.Count - 1; } - updateSlots(); - } + if (id != oldId) + { + oldId = id; + updateSlots(); + } + } + // on update l'interface void updateSlots() { currentSlot = slotList[id]; @@ -69,10 +93,10 @@ public class SelectWeapon : MonoBehaviour } - + // on change d'arme en fonction du id de l'arme choisis void choseWeapon(GameObject currentSlot) { - Arme arme = currentSlot.transform.GetComponent<weaponData>().ArmeData; + arme = currentSlot.transform.GetComponent<weaponData>().ArmeData; if (arme != null) { if(arme.Prefab != null) @@ -82,13 +106,18 @@ public class SelectWeapon : MonoBehaviour Arme objArme = obj.transform.GetComponent<weaponData>().ArmeData; if (objArme == arme) { + //on d�truit l'ancienne arme if (currentArmeObj != arme.Prefab) { Destroy(currentArmeObj); } if (arme.Prefab != null) - currentArmeObj = Instantiate(arme.Prefab, ArmePos.position, Quaternion.identity); + { + currentArmeObj = Instantiate(arme.Prefab, ArmePos.position, Quaternion.identity, armePosInstatiator.transform); + currentArmeObj.transform.rotation = Quaternion.Euler(0, -180, 0); + + } } @@ -98,6 +127,7 @@ public class SelectWeapon : MonoBehaviour } else { + //on d�truit l'ancienne arme if(currentArmeObj != null) { Destroy(currentArmeObj); @@ -106,22 +136,7 @@ public class SelectWeapon : MonoBehaviour } - List<GameObject> getSlots() - { - GameObject slotbar = GameObject.FindGameObjectWithTag("slotbar"); - List<GameObject> slots = new List<GameObject>(); - for (int i = 0; i < slotbar.transform.childCount; i++) - { - GameObject child = slotbar.transform.GetChild(i).gameObject; - if (child.name.Contains("arme")) - { - slots.Add(child); - } - } - return slots; - } - - + // update ui void updateInfoUI(GameObject currentSlot) { Arme arme = currentSlot.transform.GetComponent<weaponData>().ArmeData; @@ -155,8 +170,8 @@ public class SelectWeapon : MonoBehaviour } } - - void updateDataInfoUI(Arme arme) + // update les affichage + public void updateDataInfoUI(Arme arme) { if (infoUI == null) { diff --git a/Assets/Scripts/Paintball/armeSelection/Shooting.cs b/Assets/Scripts/Paintball/armeSelection/Shooting.cs new file mode 100644 index 0000000000000000000000000000000000000000..305102ade7e3d5b3d0620f02768f611905b1f2c7 --- /dev/null +++ b/Assets/Scripts/Paintball/armeSelection/Shooting.cs @@ -0,0 +1,81 @@ +/** + * Fichier : Shooting.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re la fonctionalit� du tire + * + */ + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Shooting : MonoBehaviour +{ + // pour check si on a touch� un objet dans la layermask default + public LayerMask layerMask = new LayerMask(); + // l'objet qu'on va instancier + public GameObject bullet; + //la position d'ou on va tirer + public GameObject raypos; + public List<GameObject> bullets = new List<GameObject>(); + public keymap keymap; + public SelectWeapon weapon; + public paintBallManager paintBallManager; + + // Start is called before the first frame update + void Start() + { + weapon = GetComponent<SelectWeapon>(); + } + + // Update is called once per frame + void Update() + { + if (paintBallManager.isActiveAndEnabled) + { + raycasting(); + } + + //tryToGetRayPoint(); + } + + void raycasting() + { + // utiliser raycast pour avoir un point ou la balle vas toucher + Vector2 screenPoint = new Vector2(Screen.width / 2f, Screen.height / 2f); + Ray ray = Camera.main.ScreenPointToRay(screenPoint); + if (Physics.Raycast(ray, out RaycastHit raycastHit, 999f, layerMask)) + { + if (keymap.isPressed("Fire1")) + { + if(weapon.arme != null) + { + if (weapon.arme.ammoCapacity > 0) + { + weapon.arme.ammoCapacity += -1; + bullets.Add(Instantiate(bullet, raycastHit.point, Quaternion.identity)); + checkBullets(); + weapon.updateDataInfoUI(weapon.arme); + } + } + } + + } + } + // detruire les objets qui depasse les 20 + void checkBullets() + { + if(bullets.Count > 20) + { + Destroy(bullets[0]); + bullets.RemoveAt(0); + } + } + +} diff --git a/Assets/Scripts/Paintball/armeSelection/Shooting.cs.meta b/Assets/Scripts/Paintball/armeSelection/Shooting.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..64edccaf37ef40a8720f81914c1a345fdf6eca2f --- /dev/null +++ b/Assets/Scripts/Paintball/armeSelection/Shooting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 348e7b4a8651bc64fba31b6b5fed58cb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/armeSelection/WeaponData/Arme1.asset b/Assets/Scripts/Paintball/armeSelection/WeaponData/Arme1.asset index 0ed9a7daa0f04b108544393c74e135afbc790800..bedb2bdeed51f9b295a2740694320da8150e3cda 100644 --- a/Assets/Scripts/Paintball/armeSelection/WeaponData/Arme1.asset +++ b/Assets/Scripts/Paintball/armeSelection/WeaponData/Arme1.asset @@ -17,5 +17,10 @@ MonoBehaviour: ID: 0 Prefab: {fileID: 5955718864609359297, guid: ac98c0911802090489c4181ee2a64665, type: 3} weaponRange: 10 + ammoCapacity: 1224 + relodingCapacity: 36 + ammoInShoot: 0 + reloadingTime: 0 + weaponDisable: 0 isGrenade: 0 exploationForce: 0 diff --git a/Assets/Scripts/Paintball/armeSelection/WeaponData/Arme2.asset b/Assets/Scripts/Paintball/armeSelection/WeaponData/Arme2.asset index f33c8ca7cade5238e01a338f97a895f2c6e528a6..540902fea6eb2bd9249afdb3c11eecae5c525a9a 100644 --- a/Assets/Scripts/Paintball/armeSelection/WeaponData/Arme2.asset +++ b/Assets/Scripts/Paintball/armeSelection/WeaponData/Arme2.asset @@ -17,5 +17,10 @@ MonoBehaviour: ID: 0 Prefab: {fileID: 7104207739489628120, guid: 9ac6a8629fcfa7e4e8963b8a887f57fc, type: 3} weaponRange: 3 + ammoCapacity: 25 + relodingCapacity: 50 + ammoInShoot: 25 + reloadingTime: 0.6 + weaponDisable: 0 isGrenade: 0 exploationForce: 0 diff --git a/Assets/Scripts/Paintball/armeSelection/weaponData.cs b/Assets/Scripts/Paintball/armeSelection/weaponData.cs index 5ef0e446d6c10a44111abfc872467020385856f0..3a15ad25670a93426b5248182694039afc945746 100644 --- a/Assets/Scripts/Paintball/armeSelection/weaponData.cs +++ b/Assets/Scripts/Paintball/armeSelection/weaponData.cs @@ -1,3 +1,18 @@ +/** + * Fichier : weaponData.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re les donn�es des armes + * + */ + + + using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -10,12 +25,15 @@ public class weaponData : MonoBehaviour private Image img; public void Start() { + // recup�rer l'image de l'arme img = transform.GetChild(0).GetComponent<Image>(); + ArmeData.ammoCapacity = 100; } public void Update() { + // update image if(ArmeData == null || ArmeData.Image == null) { img.sprite = Sprite.Create(new Texture2D(100, 100), new Rect(0.0f, 0.0f, 100, 100),new Vector2(0f,0f)); diff --git a/Assets/Scripts/Paintball/maps.meta b/Assets/Scripts/Paintball/maps.meta new file mode 100644 index 0000000000000000000000000000000000000000..71c603fe8f0a41d43cf48c3ac16d6475dee7aa98 --- /dev/null +++ b/Assets/Scripts/Paintball/maps.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c2d8af2b2b9dd7241a2d9c30a9847fc7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap.meta b/Assets/Scripts/Paintball/maps/keymap.meta new file mode 100644 index 0000000000000000000000000000000000000000..53825c89d09b6f2f6ccd31028674ca272ce75c36 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ee34b34d73fb8284881c0e11d2bd20e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/Keymap data.meta b/Assets/Scripts/Paintball/maps/keymap/Keymap data.meta new file mode 100644 index 0000000000000000000000000000000000000000..04bd9121a5f59f728f0df9f54d0639df9ea1254f --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/Keymap data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9deb4b82b269fd14686cafca6f7dedd9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/Keymap data/KeyMap.asset b/Assets/Scripts/Paintball/maps/keymap/Keymap data/KeyMap.asset new file mode 100644 index 0000000000000000000000000000000000000000..4c9abdf78b92ff7a651c354c8537ffe1617c3aef --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/Keymap data/KeyMap.asset @@ -0,0 +1,43 @@ +%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: f848cb244def43f44a33e3a451befc58, type: 3} + m_Name: KeyMap + m_EditorClassIdentifier: + window: {fileID: 8692151545541859546, guid: fa73d031387e1bf479ad214b987f158b, type: 3} + keys: + - Id: 0 + KeyName: up + KeyCode: 122 + - Id: 1 + KeyName: down + KeyCode: 115 + - Id: 2 + KeyName: left + KeyCode: 113 + - Id: 3 + KeyName: right + KeyCode: 100 + - Id: 4 + KeyName: jump + KeyCode: 32 + - Id: 5 + KeyName: Fire2 + KeyCode: 32 + - Id: 6 + KeyName: Fire1 + KeyCode: 32 + - Id: 7 + KeyName: keys + KeyCode: 97 + - Id: 8 + KeyName: escape + KeyCode: 97 diff --git a/Assets/Scripts/Paintball/maps/keymap/Keymap data/KeyMap.asset.meta b/Assets/Scripts/Paintball/maps/keymap/Keymap data/KeyMap.asset.meta new file mode 100644 index 0000000000000000000000000000000000000000..554c7bbae6a1e1559c6aa25507e167ef1cfdef36 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/Keymap data/KeyMap.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8472c820901c58044a3d291c3c781938 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/Tests.meta b/Assets/Scripts/Paintball/maps/keymap/Tests.meta new file mode 100644 index 0000000000000000000000000000000000000000..9e957025028fd848e8135ac73a41b449f8803a48 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f871cc0fdc10aa742a3876e0c00cab10 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/Tests/testKeymap.cs b/Assets/Scripts/Paintball/maps/keymap/Tests/testKeymap.cs new file mode 100644 index 0000000000000000000000000000000000000000..89b078ca62c0534e57334ffc827655804dd28f27 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/Tests/testKeymap.cs @@ -0,0 +1,36 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class testKeymap : MonoBehaviour +{ + public keymap keymap; + float oldv = 0, oldh = 0; + float oldv1 = 0, oldh1 = 0; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + float v = Input.GetAxisRaw("Vertical"); + float h = Input.GetAxisRaw("Horizontal"); + if(v != oldv || h != oldh) + { + oldv = v; oldh = h; + Debug.Log("Vertical: " + v + " Horizontal: " + h); + } + + float v1 = keymap.getVerticalAxis(); + float h1 = keymap.getHorizontalAxis(); + if (v1 != oldv1 || h1 != oldh1) + { + oldv1 = v1; oldh1 = h1; + Debug.Log("v: " + v1 + " h: " + h1); + } + + } +} diff --git a/Assets/Scripts/Paintball/maps/keymap/Tests/testKeymap.cs.meta b/Assets/Scripts/Paintball/maps/keymap/Tests/testKeymap.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..635e56ca0ca4029ea8ba2e2ac104d80820491bd1 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/Tests/testKeymap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4016fa84345559b48ac0413e3ff6823a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/UI.meta b/Assets/Scripts/Paintball/maps/keymap/UI.meta new file mode 100644 index 0000000000000000000000000000000000000000..391a6110fd62270732c35a38377ca20ff31ba1a7 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 96bddb7263de2054382f0b58e611a8e3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/UI/draggableWindow.cs b/Assets/Scripts/Paintball/maps/keymap/UI/draggableWindow.cs new file mode 100644 index 0000000000000000000000000000000000000000..a3fc24218528f9563522ee7f4bbd9282e3b84b71 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/UI/draggableWindow.cs @@ -0,0 +1,41 @@ +/** + * Fichier : draggableWindow.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re la fonctionalit� du drag + * + */ + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +public class draggableWindow : MonoBehaviour, IDragHandler +{ + + public RectTransform window; + + // drag la fenetre qui g�re les keys + public void OnDrag(PointerEventData eventData) + { + window.anchoredPosition += eventData.delta; + } + + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Paintball/maps/keymap/UI/draggableWindow.cs.meta b/Assets/Scripts/Paintball/maps/keymap/UI/draggableWindow.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0ae9ad91077e75220c4feedd097d6c6136e50f47 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/UI/draggableWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d31f68f754cbd124e8ab6e4cf8de7c5d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/UI/windowManager.cs b/Assets/Scripts/Paintball/maps/keymap/UI/windowManager.cs new file mode 100644 index 0000000000000000000000000000000000000000..762a86623c9eb81b38b4a07b27c77e274d7e9268 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/UI/windowManager.cs @@ -0,0 +1,113 @@ +/** + * Fichier : WindowManager.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re les fenetre qui s'affiche en gameplay(key binding, menu) + * + */ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.SceneManagement; + +public class windowManager : MonoBehaviour +{ + // variables + public keymap keymap; + public Transform Canvas; + public GameObject menu; + public GameObject gameUi; + public paintBallManager gameManager; + GameObject window; + // Start is called before the first frame update + void Start() + { + //on recupere la keymap si on la sauvgard� + keymap.loadKeymap(); + // on initialise la fenetre + window = keymap.initWindow(Canvas); + //on cache la fenetre "keybinding" + keymap.hideWindow(window); + // on affiche le menu + keymap.showWindow(menu); + // on gere le ui + handleUiState(); + + } + + // Update is called once per frame + void Update() + { + //si on appuit sur "keys" dans la keymap + if (keymap.isPressed("keys")) + { + keymap.saveKeymap(); + // on affche la fenetre si elle est cach� et inversement + keymap.toggoleWindow(window); + handleUiState(); + } + //si on appuit sur "escape" dans la keymap + if (keymap.isPressed("escape")) + { + // on affiche le menu + keymap.showWindow(menu); + handleUiState(); + } + } + + // gere la fenetre key binding directement en utilisant cette methode + public void HandleWindow() + { + keymap.toggoleWindow(window); + keymap.saveKeymap(); + gameManager.isAnyWindowActive = menu.activeInHierarchy || window.activeInHierarchy; + handleUiState(); + } + + // on cache le menu + public void hideMenu() + { + keymap.hideWindow(menu); + gameManager.isPlaying = true; + gameManager.isAnyWindowActive = menu.activeInHierarchy || window.activeInHierarchy; + handleUiState(); + + } + //retour au hub + public void goBackHub() + { + SceneManager.LoadSceneAsync("Hub"); + } + + // on gere le ui des fenetre et du jeux + private void handleUiState() + { + // on check si tous les fenetres sont active + gameManager.isAnyWindowActive = menu.activeInHierarchy || window.activeInHierarchy; + // si non on on initialise les variable et cache le curseur + if (!gameManager.isAnyWindowActive) + { + Time.timeScale = 1; + Cursor.visible = false; + Cursor.lockState = CursorLockMode.Locked; + gameManager.isPlaying = true; + gameUi.SetActive(true); + } + else + // on fait le contraire + { + Time.timeScale = 0; + Cursor.visible = true; + Cursor.lockState = CursorLockMode.None; + gameManager.isPlaying = false; + gameUi.SetActive(false); + } + + } + +} diff --git a/Assets/Scripts/Paintball/maps/keymap/UI/windowManager.cs.meta b/Assets/Scripts/Paintball/maps/keymap/UI/windowManager.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..96c70ef0ddfa6f92297a1ae1e1a0f4bfe48caea4 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/UI/windowManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1877e22f040978e45a11d81a1433908c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/key.cs b/Assets/Scripts/Paintball/maps/keymap/key.cs new file mode 100644 index 0000000000000000000000000000000000000000..eb697059a36107c7fd740399249449933173efe0 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/key.cs @@ -0,0 +1,83 @@ +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.InputSystem; +using UnityEngine.InputSystem.Utilities; +using UnityEngine.UI; + +public class key : MonoBehaviour +{ + + public keymap keymap; + public TextMeshProUGUI textName; + public TextMeshProUGUI textKey; + public TextMeshProUGUI textButton; + public Button updateKey; + private int id; + keys keyInstance; + bool pressed = false; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + + public void init(int _id) + { + id = _id; + keyInstance = keymap.getKeyById(id); + if (keyInstance == null) + return; + textName.text = keyInstance.KeyName; + textKey.text = keyInstance.KeyCode.ToString(); + } + + public void delete() + { + Destroy(gameObject); + } + + public void SetBinding() + { + pressed = false; + updateKey.interactable = false; + textButton.text = "Press on any key"; + StartCoroutine(WaitForKey()); + + + + } + + IEnumerator WaitForKey() + { + while (!pressed) + { + yield return new WaitForEndOfFrame(); + foreach (KeyCode vKey in System.Enum.GetValues(typeof(KeyCode))) + { + if (Input.GetKey(vKey)) + { + handleKey(vKey); + updateKey.interactable = true; + textButton.text = "Change Key"; + } + } + } + } + + private void handleKey(KeyCode key) + { + keyInstance.KeyCode = key; + /*keymap.setKeyById(id, key);*/ + pressed = true; + init(id); + + } +} diff --git a/Assets/Scripts/Paintball/maps/keymap/key.cs.meta b/Assets/Scripts/Paintball/maps/keymap/key.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e03007f48b4f1e9c2ce4e8f2179cfd9bb5ba85bb --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/key.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dcf865d44ac27a54d953804ef2e909ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/keyController.cs b/Assets/Scripts/Paintball/maps/keymap/keyController.cs new file mode 100644 index 0000000000000000000000000000000000000000..4506325c9be6243f497301df11750952ac1478cc --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keyController.cs @@ -0,0 +1,41 @@ +/** + * Fichier : KeymapController.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier intialise le ui + * + */ + + +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.UI; +public class keyController : MonoBehaviour +{ + public keymap keymap; + public GameObject keyPrefab; + public Transform keyList; + + void Start() + { + // instancier tous les keys dans la fenetre + foreach(keys key in keymap.keys) + { + GameObject keyBind = Instantiate(keyPrefab, keyList); + keyBind.transform.GetComponent<key>().init(key.Id); + } + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Paintball/maps/keymap/keyController.cs.meta b/Assets/Scripts/Paintball/maps/keymap/keyController.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..746e7142ac21b59f30c19a913d05c1faf3af6caa --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keyController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2c51578b9f6c3e648b435d690904b5a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab.meta b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..045ae17013ca704392ddc3a3de41dc053b7f291e --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e604a419d2392fb448649c537d2eb360 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/key.prefab b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/key.prefab new file mode 100644 index 0000000000000000000000000000000000000000..d26b736894575ccc39d0988ddee1d3b6a2a0493b --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/key.prefab @@ -0,0 +1,715 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &994080475859670755 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 994080475859670756} + - component: {fileID: 994080475859670758} + - component: {fileID: 994080475859670757} + m_Layer: 5 + m_Name: CapTextIndecator + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &994080475859670756 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080475859670755} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 994080476373295214} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &994080475859670758 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080475859670755} + m_CullTransparentMesh: 1 +--- !u!114 &994080475859670757 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080475859670755} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Default + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 15 + m_fontSizeBase: 15 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 0 + m_fontSizeMax: 0 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &994080475961886758 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 994080475961886759} + - component: {fileID: 994080475961886809} + - component: {fileID: 994080475961886808} + - component: {fileID: 994080475961886810} + m_Layer: 5 + m_Name: key + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &994080475961886759 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080475961886758} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 994080476373295214} + - {fileID: 994080476879628319} + - {fileID: 994080476769518677} + 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: 80} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &994080475961886809 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080475961886758} + m_CullTransparentMesh: 1 +--- !u!114 &994080475961886808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080475961886758} + 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.16470589, g: 0.16470589, b: 0.16470589, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &994080475961886810 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080475961886758} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dcf865d44ac27a54d953804ef2e909ee, type: 3} + m_Name: + m_EditorClassIdentifier: + keymap: {fileID: 11400000, guid: 8472c820901c58044a3d291c3c781938, type: 2} + textName: {fileID: 994080476769518678} + textKey: {fileID: 994080475859670757} + textButton: {fileID: 994080477439270042} + updateKey: {fileID: 994080476879628304} +--- !u!1 &994080476373295213 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 994080476373295214} + - component: {fileID: 994080476373295200} + - component: {fileID: 994080476373295215} + m_Layer: 5 + m_Name: cap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &994080476373295214 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080476373295213} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 994080475859670756} + m_Father: {fileID: 994080475961886759} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 40, y: 0} + m_SizeDelta: {x: 60, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &994080476373295200 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080476373295213} + m_CullTransparentMesh: 1 +--- !u!114 &994080476373295215 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080476373295213} + 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.5921569, g: 0.5921569, b: 0.5921569, a: 0.9372549} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &994080476769518676 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 994080476769518677} + - component: {fileID: 994080476769518679} + - component: {fileID: 994080476769518678} + m_Layer: 5 + m_Name: name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &994080476769518677 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080476769518676} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 994080475961886759} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 190, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &994080476769518679 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080476769518676} + m_CullTransparentMesh: 1 +--- !u!114 &994080476769518678 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080476769518676} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: name + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292138196 + m_fontColor: {r: 0.8301887, g: 0.8301887, b: 0.8301887, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 25 + m_fontSizeBase: 25 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &994080476879628318 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 994080476879628319} + - component: {fileID: 994080476879628306} + - component: {fileID: 994080476879628305} + - component: {fileID: 994080476879628304} + m_Layer: 5 + m_Name: change button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &994080476879628319 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080476879628318} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 994080477439270041} + m_Father: {fileID: 994080475961886759} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -100, y: 0} + m_SizeDelta: {x: 180, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &994080476879628306 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080476879628318} + m_CullTransparentMesh: 1 +--- !u!114 &994080476879628305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080476879628318} + 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: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &994080476879628304 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080476879628318} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 0.24528301, g: 0.24528301, b: 0.24528301, a: 1} + m_HighlightedColor: {r: 0.33962262, g: 0.33802062, b: 0.33802062, a: 1} + m_PressedColor: {r: 0.16981131, g: 0.16981131, b: 0.16981131, a: 1} + m_SelectedColor: {r: 0.2264151, g: 0.2264151, b: 0.2264151, a: 1} + m_DisabledColor: {r: 0.11320752, g: 0.11320752, b: 0.11320752, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 994080476879628305} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 994080475961886810} + m_TargetAssemblyTypeName: key, Assembly-CSharp + m_MethodName: SetBinding + 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!1 &994080477439270040 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 994080477439270041} + - component: {fileID: 994080477439270043} + - component: {fileID: 994080477439270042} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &994080477439270041 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080477439270040} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 994080476879628319} + 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!222 &994080477439270043 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080477439270040} + m_CullTransparentMesh: 1 +--- !u!114 &994080477439270042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 994080477439270040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Change Key + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4290690750 + m_fontColor: {r: 0.74509805, g: 0.74509805, b: 0.74509805, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} diff --git a/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/key.prefab.meta b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/key.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..4727dcbfc9ce1d3145d768339819141ee29b9604 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/key.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4b895c18a0001214c98fa981a04b3fba +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window system.prefab b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window system.prefab new file mode 100644 index 0000000000000000000000000000000000000000..40b2a19c6eb26530ffb4673604811823cb6352ff --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window system.prefab @@ -0,0 +1,51 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1299670216179739435 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1299670216179739429} + - component: {fileID: 1299670216179739428} + m_Layer: 0 + m_Name: window system + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1299670216179739429 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1299670216179739435} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -27.85, y: -15.512, z: -33.81} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1299670216179739428 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1299670216179739435} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1877e22f040978e45a11d81a1433908c, type: 3} + m_Name: + m_EditorClassIdentifier: + keymap: {fileID: 11400000, guid: 8472c820901c58044a3d291c3c781938, type: 2} + Canvas: {fileID: 0} + menu: {fileID: 0} + gameUi: {fileID: 0} + gameManager: {fileID: 0} diff --git a/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window system.prefab.meta b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window system.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..0f2febe4500f7f8b0f3d8c949df6e47745eac2c6 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window system.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 37c66eeab9fa6bf4abe482b94568e1d5 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window.prefab b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window.prefab new file mode 100644 index 0000000000000000000000000000000000000000..61c4a22e768130fbef4070901953edf13c3efce1 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window.prefab @@ -0,0 +1,744 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8692151545541859546 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8692151545541859493} + - component: {fileID: 8692151545541859495} + - component: {fileID: 8692151545541859492} + m_Layer: 5 + m_Name: window + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8692151545541859493 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151545541859546} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8692151546322154436} + - {fileID: 8692151546540926697} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 900, y: 580} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8692151545541859495 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151545541859546} + m_CullTransparentMesh: 1 +--- !u!114 &8692151545541859492 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151545541859546} + 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.21960786, g: 0.21960786, b: 0.21960786, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &8692151545853750384 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8692151545853750387} + - component: {fileID: 8692151545853750399} + - component: {fileID: 8692151545853750397} + - component: {fileID: 8692151545853750386} + m_Layer: 5 + m_Name: keylist + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8692151545853750387 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151545853750384} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8692151547012954897} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: -220.00002, y: -219.99991} + m_SizeDelta: {x: 1320, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8692151545853750399 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151545853750384} + m_CullTransparentMesh: 1 +--- !u!114 &8692151545853750397 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151545853750384} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 10 + m_Right: 10 + m_Top: 10 + m_Bottom: 10 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 1 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 1 + m_ChildScaleHeight: 1 + m_ReverseArrangement: 0 +--- !u!114 &8692151545853750386 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151545853750384} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 1 +--- !u!1 &8692151545858786928 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8692151545858786931} + - component: {fileID: 8692151545858786941} + - component: {fileID: 8692151545858786930} + m_Layer: 5 + m_Name: title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8692151545858786931 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151545858786928} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8692151546540926697} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 120, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8692151545858786941 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151545858786928} + m_CullTransparentMesh: 1 +--- !u!114 &8692151545858786930 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151545858786928} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Input Manager + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2100000, guid: 79459efec17a4d00a321bdcc27bbc385, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 17 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8692151546322154437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8692151546322154436} + - component: {fileID: 8692151546322154438} + - component: {fileID: 8692151546322154439} + - component: {fileID: 8692151546322154433} + m_Layer: 5 + m_Name: body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8692151546322154436 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151546322154437} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8692151546872928044} + - {fileID: 8692151547012954897} + m_Father: {fileID: 8692151545541859493} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 0, y: 274.2} + m_SizeDelta: {x: 900, y: 550} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8692151546322154438 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151546322154437} + m_CullTransparentMesh: 1 +--- !u!114 &8692151546322154439 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151546322154437} + 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: 1, g: 1, b: 1, a: 0} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8692151546322154433 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151546322154437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2c51578b9f6c3e648b435d690904b5a6, type: 3} + m_Name: + m_EditorClassIdentifier: + keymap: {fileID: 11400000, guid: 8472c820901c58044a3d291c3c781938, type: 2} + keyPrefab: {fileID: 994080475961886758, guid: 4b895c18a0001214c98fa981a04b3fba, type: 3} + keyList: {fileID: 8692151545853750387} +--- !u!1 &8692151546540926702 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8692151546540926697} + - component: {fileID: 8692151546540926699} + - component: {fileID: 8692151546540926696} + - component: {fileID: 8692151546540926698} + m_Layer: 5 + m_Name: titlebar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8692151546540926697 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151546540926702} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8692151545858786931} + m_Father: {fileID: 8692151545541859493} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 0, y: -15} + m_SizeDelta: {x: 900, y: 30} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8692151546540926699 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151546540926702} + m_CullTransparentMesh: 1 +--- !u!114 &8692151546540926696 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151546540926702} + 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.098039225, g: 0.098039225, b: 0.098039225, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8692151546540926698 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151546540926702} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d31f68f754cbd124e8ab6e4cf8de7c5d, type: 3} + m_Name: + m_EditorClassIdentifier: + window: {fileID: 8692151545541859493} +--- !u!1 &8692151546872928045 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8692151546872928044} + - component: {fileID: 8692151546872928046} + - component: {fileID: 8692151546872928047} + m_Layer: 5 + m_Name: header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8692151546872928044 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151546872928045} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8692151546322154436} + 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: 10, y: 186} + m_SizeDelta: {x: -20, y: -270} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8692151546872928046 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151546872928045} + m_CullTransparentMesh: 1 +--- !u!114 &8692151546872928047 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151546872928045} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 'keys:' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4290690750 + m_fontColor: {r: 0.745283, g: 0.745283, b: 0.745283, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 25 + m_fontSizeBase: 25 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 114.51254, z: 0, w: 155.07362} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &8692151547012954902 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8692151547012954897} + - component: {fileID: 8692151547012954899} + - component: {fileID: 8692151547012954896} + - component: {fileID: 8692151547012954898} + - component: {fileID: 8692151547012954909} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8692151547012954897 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151547012954902} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8692151545853750387} + m_Father: {fileID: 8692151546322154436} + m_RootOrder: 1 + 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: -45} + m_SizeDelta: {x: -20, y: -110} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8692151547012954899 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151547012954902} + m_CullTransparentMesh: 1 +--- !u!114 &8692151547012954896 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151547012954902} + 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.3137255, g: 0.3137255, b: 0.3137255, a: 0.89411765} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8692151547012954898 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151547012954902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 8692151545853750387} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 1 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 35 + m_Viewport: {fileID: 8692151547012954897} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 0} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 0 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &8692151547012954909 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8692151547012954902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 diff --git a/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window.prefab.meta b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window.prefab.meta new file mode 100644 index 0000000000000000000000000000000000000000..a9b7c77ff8b438cd4682763c44898984ef4ea3b2 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keyUiPrefab/window.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fa73d031387e1bf479ad214b987f158b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/keymap.cs b/Assets/Scripts/Paintball/maps/keymap/keymap.cs new file mode 100644 index 0000000000000000000000000000000000000000..4bc4a39aabd2623e760bc4bbc4cbf50c1722f788 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keymap.cs @@ -0,0 +1,333 @@ +/** + * Fichier : keymap.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re les bouttons du claviers + * pas besoins de commentaire car les noms des fonctions sont assez explicatifs + * + */ + + +using System.Collections.Generic; +using UnityEngine; +using Newtonsoft.Json; +using System.IO; + +[CreateAssetMenu(fileName = "KeyMap", menuName = "KeyMap", order = 1)] +public class keymap : ScriptableObject +{ + + [Header("window object:")] + [SerializeField] + public GameObject window; + [Header("keys list:")] + [SerializeField] + public List<keys> keys; + + + + // ispressed methods + public bool isPressed(keys key) + { + return key.isPressed(); + } + + public bool isPressed(int key) + { + keys pKey = getKeyById(key); + if (pKey == null) + return false; + return pKey.isPressed(); + } + + public bool isPressed(string key) + { + keys pKey = getKeyByName(key); + if (pKey == null) + return false; + return pKey.isPressed(); + } + + public bool isPressed(KeyCode key) + { + keys pKey = getKeyByKeyCode(key); + if (pKey == null) + return false; + return pKey.isPressed(); + } + + + public bool isPressedRaw(int index) + { + if (keys.Count - 1 < index) + return false; + return keys[index].isPressed(); + } + + // isdown methods + + public bool isDown(keys key) + { + return key.isDown(); + } + + public bool isDown(int key) + { + keys pKey = getKeyById(key); + if (pKey == null) + return false; + return pKey.isDown(); + } + + public bool isDown(string key) + { + keys pKey = getKeyByName(key); + if (pKey == null) + return false; + return pKey.isDown(); + } + + public bool isDown(KeyCode key) + { + keys pKey = getKeyByKeyCode(key); + if (pKey == null) + return false; + return pKey.isDown(); + } + + public bool isDownRaw(int index) + { + if (keys.Count-1<index) + return false; + return keys[index].isDown(); + } + + // is key pressed down method + + public bool isKeyDown(keys key) + { + return key.isKeyDown(); + } + + public bool isKeyDown(int key) + { + keys pKey = getKeyById(key); + if (pKey == null) + return false; + return pKey.isKeyDown(); + } + + public bool isKeyDown(string key) + { + keys pKey = getKeyByName(key); + if (pKey == null) + return false; + return pKey.isKeyDown(); + } + + public bool isKeyDown(KeyCode key) + { + keys pKey = getKeyByKeyCode(key); + if (pKey == null) + return false; + return pKey.isKeyDown(); + } + + // is key up methods + + public bool isKeyUp(keys key) + { + return key.isKeyUp(); + } + + public bool isKeyUp(int key) + { + keys pKey = getKeyById(key); + if (pKey == null) + return false; + return pKey.isKeyUp(); + } + + public bool isKeyUp(string key) + { + keys pKey = getKeyByName(key); + if (pKey == null) + return false; + return pKey.isKeyUp(); + } + + public bool isKeyUp(KeyCode key) + { + keys pKey = getKeyByKeyCode(key); + if (pKey == null) + return false; + return pKey.isKeyUp(); + } + + + + + + // check if a key exist + public bool exist(keys key) + { + return keys.Contains(key); + } + + + // delete key from keymap + public void removeKey(keys key) + { + if (keys.Contains(key)) + { + keys.Remove(key); + } + } + + // get scroll wheel value : from -1 to 1 return int + public int getWheel() + { + if (Input.GetAxisRaw("Mouse ScrollWheel") > 0) + { + return 1; + + } + else if (Input.GetAxisRaw("Mouse ScrollWheel") < 0) + { + return -1; + } + return 0; + } + + + // get a key from the list by searching in it using multiple parametres + public keys getKeyByName(string name) + { + foreach(keys key in keys) + { + if(key.KeyName == name) { return key; } + } + return null; + } + + public keys getKeyById(int id) + { + foreach (keys key in keys) + { + if (key.Id == id) { return key; } + } + return null; + } + + public keys getKeyByKeyCode(KeyCode code) + { + foreach (keys key in keys) + { + if (key.KeyCode == code) { return key; } + } + return null; + } + + public keys getKey(int index) + { + if(index < 0 || index >= keys.Count) + return null; + return keys[index]; + } + + // set with id + public void setKeyById(int id,KeyCode code) + { + int i = 0; + foreach (keys key in keys) + { + if (key.Id == id) { + key.KeyCode = code; + keys[i] = key; + } + i++; + } + } + + // get input axis + + public float getHorizontalAxis() + { + if (isDown(keys[2])) + return -1; + if(isDown(keys[3])) + return 1; + return 0; + } + public float getVerticalAxis() + { + if (isDown(keys[0])) + return 1; + if (isDown(keys[1])) + return -1; + return 0; + } + + // window handling + + public GameObject initWindow(Transform parent) + { + Time.timeScale = 0; + return Instantiate(window, parent); + } + + public void hideWindow(GameObject window) + { + window.SetActive(false); + + } + + public void showWindow(GameObject window) + { + window.SetActive(true); + } + + public void toggoleWindow(GameObject window) + { + window.SetActive(!window.activeInHierarchy); + } + + + public void saveKeymap() + { + string destination = Application.persistentDataPath + "/keymap.dat"; + keymapData data = new keymapData(); + data.keys = keys; + File.WriteAllText(destination, JsonUtility.ToJson(data)); + } + + public void loadKeymap() + { + string destination = Application.persistentDataPath + "/keymap.dat"; + Debug.Log(Application.persistentDataPath); + if (!File.Exists(destination)) + { + saveKeymap(); + return; + } + string json = File.ReadAllText(destination); + keymapData data = JsonConvert.DeserializeObject<keymapData>(json); + keys = data.keys; + } + +} + + +public class keymapData +{ + public List<keys> keys; +} + + + + diff --git a/Assets/Scripts/Paintball/maps/keymap/keymap.cs.meta b/Assets/Scripts/Paintball/maps/keymap/keymap.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..d08b1c4a68a8389119df883a405c40fffd6ded27 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keymap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f848cb244def43f44a33e3a451befc58 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/keys.cs b/Assets/Scripts/Paintball/maps/keymap/keys.cs new file mode 100644 index 0000000000000000000000000000000000000000..e4c79c4a622f2999ee2bb81d0f6f505a072c08e0 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keys.cs @@ -0,0 +1,49 @@ +/** + * Fichier : SelectWeapon.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re le les bouttons du clavier s�parement + * + */ + + +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +[System.Serializable] +public class keys +{ + // nom , id et key code + public int Id; + public string KeyName; + public KeyCode KeyCode; + + // methods pour g�rer chaque boutton du clavier s�parement + + public bool isPressed() + { + return Input.GetKeyDown(KeyCode); + } + public bool isDown() + { + return Input.GetKey(KeyCode); + } + + public bool isKeyDown() + { + return Input.GetKeyDown(KeyCode); + } + + public bool isKeyUp() + { + return Input.GetKeyUp(KeyCode); + } + +} diff --git a/Assets/Scripts/Paintball/maps/keymap/keys.cs.meta b/Assets/Scripts/Paintball/maps/keymap/keys.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..88d765c53c38da3850148971bb8b8fa2e1ecf789 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/keys.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09c9b688845b0a54e835823aa7164d19 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/maps/keymap/testKeyMap.cs b/Assets/Scripts/Paintball/maps/keymap/testKeyMap.cs new file mode 100644 index 0000000000000000000000000000000000000000..02ee940b2c4215c9e60ca9f32c9b5030b2e6561b --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/testKeyMap.cs @@ -0,0 +1,26 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class testKeyMap : MonoBehaviour +{ + + public keymap keymap; + public GameObject window; + public Transform Canvas; + // Start is called before the first frame update + void Start() + { + window = keymap.initWindow(Canvas); + keymap.hideWindow(window); + } + + // Update is called once per frame + void Update() + { + if (keymap.isPressed("keys")) + { + keymap.toggoleWindow(window); + } + } +} diff --git a/Assets/Scripts/Paintball/maps/keymap/testKeyMap.cs.meta b/Assets/Scripts/Paintball/maps/keymap/testKeyMap.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..cffdb7f975316f96e57b3498199f07dc74c76765 --- /dev/null +++ b/Assets/Scripts/Paintball/maps/keymap/testKeyMap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3d11f6b499a7b0a469c342108b6810ce +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Paintball/paintBallManager.cs b/Assets/Scripts/Paintball/paintBallManager.cs new file mode 100644 index 0000000000000000000000000000000000000000..cfc016682fbdcb18c46241eb40977dc8f7667ba8 --- /dev/null +++ b/Assets/Scripts/Paintball/paintBallManager.cs @@ -0,0 +1,36 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + + +/** + * Fichier : paintBallManager.cs + * + * Auteur : Khalil El Ghoul + * Date : F�vrier 2022 + * Groupe : TP 4C + * + * R�sum� du fichier : + * + * ce fichier g�re l'�tat du jeux + * + */ + + +public class paintBallManager : MonoBehaviour +{ + // Start is called before the first frame update + public bool isPlaying; + public bool isAnyWindowActive; + void Start() + { + + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/Paintball/paintBallManager.cs.meta b/Assets/Scripts/Paintball/paintBallManager.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b5fd4e3cd9e15911070ab2557ec032e3528e810c --- /dev/null +++ b/Assets/Scripts/Paintball/paintBallManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dd24a7339b095b948829fc9a37beb1ef +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Terrains/Paintball/Final.meta b/Assets/Terrains/Paintball/Final.meta new file mode 100644 index 0000000000000000000000000000000000000000..de05e65819c3a20bb927f53267b513ea71f15211 --- /dev/null +++ b/Assets/Terrains/Paintball/Final.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 597f9b2c223cc764392c074ea67550d3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Terrains/Paintball/Final/mymap.asset b/Assets/Terrains/Paintball/Final/mymap.asset new file mode 100644 index 0000000000000000000000000000000000000000..199ee8120cef974efda45b8e8a09ebb5d54f1afa Binary files /dev/null and b/Assets/Terrains/Paintball/Final/mymap.asset differ diff --git a/Assets/Terrains/Paintball/Final/mymap.asset.meta b/Assets/Terrains/Paintball/Final/mymap.asset.meta new file mode 100644 index 0000000000000000000000000000000000000000..660230629c0c35a4ef4ec3d1fef4de7a25272ff7 --- /dev/null +++ b/Assets/Terrains/Paintball/Final/mymap.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: eaa5eeae8e9a1b942a0e270d5b08f460 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 15600000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree.meta b/Assets/Third Party Assets/AllSkyFree.meta new file mode 100644 index 0000000000000000000000000000000000000000..a528de646729900cc2ac7869dd3fedc445901b81 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d8ba3343d21ec23469613572cd3251e1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky.meta b/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky.meta new file mode 100644 index 0000000000000000000000000000000000000000..891bed215e3e386ec083e49e2698d2391167b362 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9f633969e0c5e4bfeba8bb43b5348d81 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Day_BlueSky_Nothing Equirect.mat b/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Day_BlueSky_Nothing Equirect.mat new file mode 100644 index 0000000000000000000000000000000000000000..de5fa074fda7c17266a1177fb76a15c5493f4909 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Day_BlueSky_Nothing Equirect.mat @@ -0,0 +1,61 @@ +%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: Day_BlueSky_Nothing Equirect + m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BackTex: + m_Texture: {fileID: 2800000, guid: cfa972365ad4b44f995c911d72e272e8, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DownTex: + m_Texture: {fileID: 2800000, guid: f52cd27c764164cc5a18f562b8573ef0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FrontTex: + m_Texture: {fileID: 2800000, guid: dca4c933094124d7092f3534e1e38254, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LeftTex: + m_Texture: {fileID: 2800000, guid: f73feaa42eb1d4e31ae1658afa3fe655, type: 3} + 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} + - _RightTex: + m_Texture: {fileID: 2800000, guid: 14bc2d1c70c584f60bf9cd0f3989f7dd, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 8900000, guid: d4c8dc343ae5d4673b7720ffdb1ddf00, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _UpTex: + m_Texture: {fileID: 2800000, guid: f5f1d10dc0ae740b3b8c26e0c7d86355, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _Exposure: 1 + - _Rotation: 0 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Day_BlueSky_Nothing Equirect.mat.meta b/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Day_BlueSky_Nothing Equirect.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..16b57c76854bd08459bf4bc5454fc3b989e6afd4 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Day_BlueSky_Nothing Equirect.mat.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 73324b55f67f54c7bbf43204788b8bbe +NativeFormatImporter: + mainObjectFileID: -1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Sky_Day_BlueSky_Equirect.png b/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Sky_Day_BlueSky_Equirect.png new file mode 100644 index 0000000000000000000000000000000000000000..f11d17528caef2f51cdad894399cd57303307925 Binary files /dev/null and b/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Sky_Day_BlueSky_Equirect.png differ diff --git a/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Sky_Day_BlueSky_Equirect.png.meta b/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Sky_Day_BlueSky_Equirect.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..666821db5f1cb14373e306e58dc452cbc84164af --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cartoon Base BlueSky/Sky_Day_BlueSky_Equirect.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: d4c8dc343ae5d4673b7720ffdb1ddf00 +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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: 1 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky.meta b/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky.meta new file mode 100644 index 0000000000000000000000000000000000000000..ed592816650bd048b088529515a5aed3f154dc90 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: edfd7568a47754e23b20068c1847c5fb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.mat b/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.mat new file mode 100644 index 0000000000000000000000000000000000000000..a9da8aeda9b0e172c6d488e59a665f295e42bdf2 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.mat @@ -0,0 +1,86 @@ +%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: Cartoon Base NightSky Equirect + m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + 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} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 8900000, guid: 7659947706e294d97a22faa1d4011724, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _Exposure: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Rotation: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.mat.meta b/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..93e995d548fd2e26e61a7577d495800f76103743 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 3a6db933fef1d4c759bf21220420505f +timeCreated: 1551734549 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.png b/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.png new file mode 100644 index 0000000000000000000000000000000000000000..963576bfbb3a88df7f5d5c12016d5e333f7da4b2 Binary files /dev/null and b/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.png differ diff --git a/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.png.meta b/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..79f2ad96bba682249f9c88362346a2cfaadb0077 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cartoon Base NightSky/Cartoon Base NightSky Equirect.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 7659947706e294d97a22faa1d4011724 +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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: 2 + cubemapConvolution: 0 + seamlessCubemap: 1 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cold Night.meta b/Assets/Third Party Assets/AllSkyFree/Cold Night.meta new file mode 100644 index 0000000000000000000000000000000000000000..9592c508ccc30829ecec40b233c62cc2de83f7f4 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cold Night.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5002a90c1ac5742af853cc504426d653 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.mat b/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.mat new file mode 100644 index 0000000000000000000000000000000000000000..e8c339b8f7956ea62db85aecc19c275b4bd23079 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.mat @@ -0,0 +1,110 @@ +%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: Cold Night Equirect + m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BackTex: + 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} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DownTex: + 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} + - _FrontTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LeftTex: + 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} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RightTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 8900000, guid: 97259d0c0ea9f491692be825da27978a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _UpTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _Exposure: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Rotation: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.mat.meta b/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..32f07384652dd5e22dd01dec92aedee165b131da --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: eac2ef371405749e0bd050b4c3272f16 +timeCreated: 1544379895 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.png b/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.png new file mode 100644 index 0000000000000000000000000000000000000000..8f13e57a1cb1b73da8e2c4405dfeae68306beda5 Binary files /dev/null and b/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.png differ diff --git a/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.png.meta b/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..9742b0cadf79767c7c388fce78218bb778fff26e --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cold Night/Cold Night Equirect.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 97259d0c0ea9f491692be825da27978a +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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: 2 + cubemapConvolution: 0 + seamlessCubemap: 1 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cold Sunset.meta b/Assets/Third Party Assets/AllSkyFree/Cold Sunset.meta new file mode 100644 index 0000000000000000000000000000000000000000..e561ac8c148786ead79eb2132070199d78fccc35 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cold Sunset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e45cb2dd63729436e93f61f9933371db +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.mat b/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.mat new file mode 100644 index 0000000000000000000000000000000000000000..421ac8e948f05892a9e0b4064ce534b3b9f445d4 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.mat @@ -0,0 +1,110 @@ +%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: Cold Sunset Equirect + m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BackTex: + 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} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DownTex: + 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} + - _FrontTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LeftTex: + 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} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RightTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 8900000, guid: 6fa3f446deee84c52aec507bd0aca28c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _UpTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _Exposure: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Rotation: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.mat.meta b/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..8ea87d6471566dbcbb54c4460d6f5b0bc8ea7c8d --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 01f4eb1c73693428d923f1520032e7f9 +timeCreated: 1544379895 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.png b/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.png new file mode 100644 index 0000000000000000000000000000000000000000..80f91f0cd792879a0b328e9544c7d4415bb74a97 Binary files /dev/null and b/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.png differ diff --git a/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.png.meta b/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..9f7cec7cac92369895b4d68521d493ba970e9d82 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Cold Sunset/Cold Sunset Equirect.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 6fa3f446deee84c52aec507bd0aca28c +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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: 2 + cubemapConvolution: 0 + seamlessCubemap: 1 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink.meta b/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink.meta new file mode 100644 index 0000000000000000000000000000000000000000..7fd1d983c57f9758363d144de8aa94f99a2fc213 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: edc1859f6d31046c9936ffb1609fabeb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink Equirect.mat b/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink Equirect.mat new file mode 100644 index 0000000000000000000000000000000000000000..6848c99104362dfd93eccf74345e035fac41379d --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink Equirect.mat @@ -0,0 +1,110 @@ +%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: Epic_GloriousPink Equirect + m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BackTex: + m_Texture: {fileID: 2800000, guid: 84c6fcb1c0e17874cb38d1a8c1a9106b, type: 3} + 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} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DownTex: + m_Texture: {fileID: 2800000, guid: 8cd36315ed22bb942ac25291247769ea, type: 3} + 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} + - _FrontTex: + m_Texture: {fileID: 2800000, guid: 313df341f8f03ad41a2791ba61d3704a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LeftTex: + m_Texture: {fileID: 2800000, guid: 5cd97a01171bf944ab9c2bd714dc06cf, type: 3} + 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} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _RightTex: + m_Texture: {fileID: 2800000, guid: 718d56bceabed3343a4671afcb40ef4e, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 8900000, guid: 8a293ce833d584fc98516e0e74f495a4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _UpTex: + m_Texture: {fileID: 2800000, guid: f2cd5fb956d8a5d40b213ac1f02e0d46, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _Exposure: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Rotation: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink Equirect.mat.meta b/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink Equirect.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..d7f9805561d80178dba6ee44c511e4bb0ffa05c4 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink Equirect.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fe4e130f9947345a2b213cb5038851a2 +timeCreated: 1481203198 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: -1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink_EquiRect.png b/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink_EquiRect.png new file mode 100644 index 0000000000000000000000000000000000000000..492371f73c1988dd4f1e696695ac0c0cceb940d8 Binary files /dev/null and b/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink_EquiRect.png differ diff --git a/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink_EquiRect.png.meta b/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink_EquiRect.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..a6cc13ccdb6185032b50df089645ad128cd437d7 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Epic_GloriousPink/Epic_GloriousPink_EquiRect.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 8a293ce833d584fc98516e0e74f495a4 +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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: 2 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Night MoonBurst.meta b/Assets/Third Party Assets/AllSkyFree/Night MoonBurst.meta new file mode 100644 index 0000000000000000000000000000000000000000..4025304b08350a5f27c20336cc6cb7fc0cca52de --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Night MoonBurst.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 26e352704e0b94af78a547c6d44125d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.mat b/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.mat new file mode 100644 index 0000000000000000000000000000000000000000..c5903466cbac34cc3d1948d7306ceece73035702 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.mat @@ -0,0 +1,86 @@ +%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: AllSky_Night_MoonBurst Equirect + m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + 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} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 8900000, guid: 34a763168147f4182a21b9fd004d67de, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _Exposure: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _Rotation: 0 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.mat.meta b/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..2afd47962d0394a45519cc28474b72a3edd1e74e --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 51b74d7bad397457d883c5940f7664d8 +timeCreated: 1551643653 +licenseType: Store +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.png b/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.png new file mode 100644 index 0000000000000000000000000000000000000000..476213bf4a0910e04f25bde1881965eac9e60e26 Binary files /dev/null and b/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.png differ diff --git a/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.png.meta b/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..e1ef1e9353a3a54bf2da351b1d39fbcd985ef4b5 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Night MoonBurst/AllSky_Night_MoonBurst Equirect.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: 34a763168147f4182a21b9fd004d67de +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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: 2 + cubemapConvolution: 0 + seamlessCubemap: 1 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Overcast Low.meta b/Assets/Third Party Assets/AllSkyFree/Overcast Low.meta new file mode 100644 index 0000000000000000000000000000000000000000..c13bfabf436c5eb24bef877fcfd2f9738a4eb485 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Overcast Low.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 63e1d590517f54841ad8cf519edf1256 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low Equirect.mat b/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low Equirect.mat new file mode 100644 index 0000000000000000000000000000000000000000..9c0802c25b5bb14cc841082854c3bcaed2d9f110 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low Equirect.mat @@ -0,0 +1,61 @@ +%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: AllSky_Overcast4_Low Equirect + m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BackTex: + m_Texture: {fileID: 2800000, guid: 5b33c361655494294b6bc69e36b8613c, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DownTex: + m_Texture: {fileID: 2800000, guid: da0732114ae23478c98845ff74c408f0, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FrontTex: + m_Texture: {fileID: 2800000, guid: 2453cd4db3143425e995dcb90f5bb84a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _LeftTex: + m_Texture: {fileID: 2800000, guid: a3b3c69865dbb40ff97f3fa1cfd19636, type: 3} + 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} + - _RightTex: + m_Texture: {fileID: 2800000, guid: 2ba7c184a1746408485a05826b4efe1a, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Tex: + m_Texture: {fileID: 8900000, guid: c8f21f62fdb3e43c5b32917c84683698, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _UpTex: + m_Texture: {fileID: 2800000, guid: 711bad74d32a54476b1a6c2d8bd21fdc, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _Exposure: 1 + - _Rotation: 0 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low Equirect.mat.meta b/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low Equirect.mat.meta new file mode 100644 index 0000000000000000000000000000000000000000..b097e083a7830c0616e0ee9d1781d5296a4e5b9e --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low Equirect.mat.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 54fe2f000ad8f424fb63cc3ea0ae2bb2 +NativeFormatImporter: + mainObjectFileID: -1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low.png b/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low.png new file mode 100644 index 0000000000000000000000000000000000000000..0dddacac6384ada2036278bd4e2ec3c7d179b670 Binary files /dev/null and b/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low.png differ diff --git a/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low.png.meta b/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low.png.meta new file mode 100644 index 0000000000000000000000000000000000000000..a8418edae00a2b04c664b1056a9f4a9370b6e954 --- /dev/null +++ b/Assets/Third Party Assets/AllSkyFree/Overcast Low/AllSky_Overcast4_Low.png.meta @@ -0,0 +1,100 @@ +fileFormatVersion: 2 +guid: c8f21f62fdb3e43c5b32917c84683698 +TextureImporter: + fileIDToRecycleName: + 8900000: generatedCubemap + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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: 1 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing.meta b/Assets/Third Party Assets/PostProcessing.meta new file mode 100644 index 0000000000000000000000000000000000000000..d02ea537b47dc67189cfd2bc0b5b14980d4c863b --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e870bceb9df09914dbeba8d09ab0c03a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor.meta b/Assets/Third Party Assets/PostProcessing/Editor.meta new file mode 100644 index 0000000000000000000000000000000000000000..74443f5abf059e439dd7ca56b0888cd0716dde87 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e0e418747b892364db5c5f4451e67ede +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Attributes.meta b/Assets/Third Party Assets/PostProcessing/Editor/Attributes.meta new file mode 100644 index 0000000000000000000000000000000000000000..b1fc615e4499550974ea2f8b41a30d0fefac6860 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Attributes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cc5c690f549b4704eb992a9be781554d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs b/Assets/Third Party Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs new file mode 100644 index 0000000000000000000000000000000000000000..13e4819590b2b8f202b14621cf39ca61618a28d8 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs @@ -0,0 +1,16 @@ +using System; + +namespace UnityEditor.PostProcessing +{ + public class PostProcessingModelEditorAttribute : Attribute + { + public readonly Type type; + public readonly bool alwaysEnabled; + + public PostProcessingModelEditorAttribute(Type type, bool alwaysEnabled = false) + { + this.type = type; + this.alwaysEnabled = alwaysEnabled; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4484ca1f4a44a4a138abfbce5a747a54b78344cc --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Attributes/PostProcessingModelEditorAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c21938aa988055347a2271f03a3e731e +timeCreated: 1466769734 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models.meta new file mode 100644 index 0000000000000000000000000000000000000000..90d90f5d66e0e76155e017a9ddaa097cb1f329f5 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d5341d31985da604db4b100f174142ad +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..fef389eea80ca0476506a0b1c762a45c81b813de --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs @@ -0,0 +1,42 @@ +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using Settings = AmbientOcclusionModel.Settings; + + [PostProcessingModelEditor(typeof(AmbientOcclusionModel))] + public class AmbientOcclusionModelEditor : PostProcessingModelEditor + { + SerializedProperty m_Intensity; + SerializedProperty m_Radius; + SerializedProperty m_SampleCount; + SerializedProperty m_Downsampling; + SerializedProperty m_ForceForwardCompatibility; + SerializedProperty m_AmbientOnly; + SerializedProperty m_HighPrecision; + + public override void OnEnable() + { + m_Intensity = FindSetting((Settings x) => x.intensity); + m_Radius = FindSetting((Settings x) => x.radius); + m_SampleCount = FindSetting((Settings x) => x.sampleCount); + m_Downsampling = FindSetting((Settings x) => x.downsampling); + m_ForceForwardCompatibility = FindSetting((Settings x) => x.forceForwardCompatibility); + m_AmbientOnly = FindSetting((Settings x) => x.ambientOnly); + m_HighPrecision = FindSetting((Settings x) => x.highPrecision); + } + + public override void OnInspectorGUI() + { + EditorGUILayout.PropertyField(m_Intensity); + EditorGUILayout.PropertyField(m_Radius); + EditorGUILayout.PropertyField(m_SampleCount); + EditorGUILayout.PropertyField(m_Downsampling); + EditorGUILayout.PropertyField(m_ForceForwardCompatibility); + EditorGUILayout.PropertyField(m_HighPrecision, EditorGUIHelper.GetContent("High Precision (Forward)")); + + using (new EditorGUI.DisabledGroupScope(m_ForceForwardCompatibility.boolValue)) + EditorGUILayout.PropertyField(m_AmbientOnly, EditorGUIHelper.GetContent("Ambient Only (Deferred + HDR)")); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a78b9d5f172fda2f9f1795929a9c1a8389afb38e --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9fcb710e23a5a0546a3b8b0ca28c1720 +timeCreated: 1467190133 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..6f773a5c33959f1ff83cafea8346e14216993a87 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs @@ -0,0 +1,71 @@ +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using Method = AntialiasingModel.Method; + using Settings = AntialiasingModel.Settings; + + [PostProcessingModelEditor(typeof(AntialiasingModel))] + public class AntialiasingModelEditor : PostProcessingModelEditor + { + SerializedProperty m_Method; + + SerializedProperty m_FxaaPreset; + + SerializedProperty m_TaaJitterSpread; + SerializedProperty m_TaaSharpen; + SerializedProperty m_TaaStationaryBlending; + SerializedProperty m_TaaMotionBlending; + + static string[] s_MethodNames = + { + "Fast Approximate Anti-aliasing", + "Temporal Anti-aliasing" + }; + + public override void OnEnable() + { + m_Method = FindSetting((Settings x) => x.method); + + m_FxaaPreset = FindSetting((Settings x) => x.fxaaSettings.preset); + + m_TaaJitterSpread = FindSetting((Settings x) => x.taaSettings.jitterSpread); + m_TaaSharpen = FindSetting((Settings x) => x.taaSettings.sharpen); + m_TaaStationaryBlending = FindSetting((Settings x) => x.taaSettings.stationaryBlending); + m_TaaMotionBlending = FindSetting((Settings x) => x.taaSettings.motionBlending); + } + + public override void OnInspectorGUI() + { + m_Method.intValue = EditorGUILayout.Popup("Method", m_Method.intValue, s_MethodNames); + + if (m_Method.intValue == (int)Method.Fxaa) + { + EditorGUILayout.PropertyField(m_FxaaPreset); + } + else if (m_Method.intValue == (int)Method.Taa) + { + if (QualitySettings.antiAliasing > 1) + EditorGUILayout.HelpBox("Temporal Anti-Aliasing doesn't work correctly when MSAA is enabled.", MessageType.Warning); + + EditorGUILayout.LabelField("Jitter", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(m_TaaJitterSpread, EditorGUIHelper.GetContent("Spread")); + EditorGUI.indentLevel--; + + EditorGUILayout.Space(); + + EditorGUILayout.LabelField("Blending", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(m_TaaStationaryBlending, EditorGUIHelper.GetContent("Stationary")); + EditorGUILayout.PropertyField(m_TaaMotionBlending, EditorGUIHelper.GetContent("Motion")); + EditorGUI.indentLevel--; + + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField(m_TaaSharpen); + } + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a98844486eb8fe5de10e72465510ce96387c322c --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/AntialiasingModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2451939fe695c1a408ba688219837667 +timeCreated: 1467190133 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/BloomModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/BloomModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..7359627dc62d0b692f3a46618bb0403b40d43ed2 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/BloomModelEditor.cs @@ -0,0 +1,204 @@ +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using Settings = BloomModel.Settings; + + [PostProcessingModelEditor(typeof(BloomModel))] + public class BloomModelEditor : PostProcessingModelEditor + { + struct BloomSettings + { + public SerializedProperty intensity; + public SerializedProperty threshold; + public SerializedProperty softKnee; + public SerializedProperty radius; + public SerializedProperty antiFlicker; + } + + struct LensDirtSettings + { + public SerializedProperty texture; + public SerializedProperty intensity; + } + + BloomSettings m_Bloom; + LensDirtSettings m_LensDirt; + + public override void OnEnable() + { + m_Bloom = new BloomSettings + { + intensity = FindSetting((Settings x) => x.bloom.intensity), + threshold = FindSetting((Settings x) => x.bloom.threshold), + softKnee = FindSetting((Settings x) => x.bloom.softKnee), + radius = FindSetting((Settings x) => x.bloom.radius), + antiFlicker = FindSetting((Settings x) => x.bloom.antiFlicker) + }; + + m_LensDirt = new LensDirtSettings + { + texture = FindSetting((Settings x) => x.lensDirt.texture), + intensity = FindSetting((Settings x) => x.lensDirt.intensity) + }; + } + + public override void OnInspectorGUI() + { + EditorGUILayout.Space(); + PrepareGraph(); + DrawGraph(); + EditorGUILayout.Space(); + + EditorGUILayout.PropertyField(m_Bloom.intensity); + EditorGUILayout.PropertyField(m_Bloom.threshold, EditorGUIHelper.GetContent("Threshold (Gamma)")); + EditorGUILayout.PropertyField(m_Bloom.softKnee); + EditorGUILayout.PropertyField(m_Bloom.radius); + EditorGUILayout.PropertyField(m_Bloom.antiFlicker); + + EditorGUILayout.Space(); + EditorGUILayout.LabelField("Dirt", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(m_LensDirt.texture); + EditorGUILayout.PropertyField(m_LensDirt.intensity); + EditorGUI.indentLevel--; + } + + #region Graph + + float m_GraphThreshold; + float m_GraphKnee; + float m_GraphIntensity; + + // Number of vertices in curve + const int k_CurveResolution = 48; + + // Vertex buffers + Vector3[] m_RectVertices = new Vector3[4]; + Vector3[] m_LineVertices = new Vector3[2]; + Vector3[] m_CurveVertices = new Vector3[k_CurveResolution]; + + Rect m_RectGraph; + float m_RangeX; + float m_RangeY; + + float ResponseFunction(float x) + { + var rq = Mathf.Clamp(x - m_GraphThreshold + m_GraphKnee, 0, m_GraphKnee * 2); + rq = rq * rq * 0.25f / m_GraphKnee; + return Mathf.Max(rq, x - m_GraphThreshold) * m_GraphIntensity; + } + + // Transform a point into the graph rect + Vector3 PointInRect(float x, float y) + { + x = Mathf.Lerp(m_RectGraph.x, m_RectGraph.xMax, x / m_RangeX); + y = Mathf.Lerp(m_RectGraph.yMax, m_RectGraph.y, y / m_RangeY); + return new Vector3(x, y, 0); + } + + // Draw a line in the graph rect + void DrawLine(float x1, float y1, float x2, float y2, float grayscale) + { + m_LineVertices[0] = PointInRect(x1, y1); + m_LineVertices[1] = PointInRect(x2, y2); + Handles.color = Color.white * grayscale; + Handles.DrawAAPolyLine(2.0f, m_LineVertices); + } + + // Draw a rect in the graph rect + void DrawRect(float x1, float y1, float x2, float y2, float fill, float line) + { + m_RectVertices[0] = PointInRect(x1, y1); + m_RectVertices[1] = PointInRect(x2, y1); + m_RectVertices[2] = PointInRect(x2, y2); + m_RectVertices[3] = PointInRect(x1, y2); + + Handles.DrawSolidRectangleWithOutline( + m_RectVertices, + fill < 0 ? Color.clear : Color.white * fill, + line < 0 ? Color.clear : Color.white * line + ); + } + + // Update internal state with a given bloom instance + public void PrepareGraph() + { + var bloom = (BloomModel)target; + m_RangeX = 5f; + m_RangeY = 2f; + + m_GraphThreshold = bloom.settings.bloom.thresholdLinear; + m_GraphKnee = bloom.settings.bloom.softKnee * m_GraphThreshold + 1e-5f; + + // Intensity is capped to prevent sampling errors + m_GraphIntensity = Mathf.Min(bloom.settings.bloom.intensity, 10f); + } + + // Draw the graph at the current position + public void DrawGraph() + { + using (new GUILayout.HorizontalScope()) + { + GUILayout.Space(EditorGUI.indentLevel * 15f); + m_RectGraph = GUILayoutUtility.GetRect(128, 80); + } + + // Background + DrawRect(0, 0, m_RangeX, m_RangeY, 0.1f, 0.4f); + + // Soft-knee range + DrawRect(m_GraphThreshold - m_GraphKnee, 0, m_GraphThreshold + m_GraphKnee, m_RangeY, 0.25f, -1); + + // Horizontal lines + for (var i = 1; i < m_RangeY; i++) + DrawLine(0, i, m_RangeX, i, 0.4f); + + // Vertical lines + for (var i = 1; i < m_RangeX; i++) + DrawLine(i, 0, i, m_RangeY, 0.4f); + + // Label + Handles.Label( + PointInRect(0, m_RangeY) + Vector3.right, + "Brightness Response (linear)", EditorStyles.miniLabel + ); + + // Threshold line + DrawLine(m_GraphThreshold, 0, m_GraphThreshold, m_RangeY, 0.6f); + + // Response curve + var vcount = 0; + while (vcount < k_CurveResolution) + { + var x = m_RangeX * vcount / (k_CurveResolution - 1); + var y = ResponseFunction(x); + if (y < m_RangeY) + { + m_CurveVertices[vcount++] = PointInRect(x, y); + } + else + { + if (vcount > 1) + { + // Extend the last segment to the top edge of the rect. + var v1 = m_CurveVertices[vcount - 2]; + var v2 = m_CurveVertices[vcount - 1]; + var clip = (m_RectGraph.y - v1.y) / (v2.y - v1.y); + m_CurveVertices[vcount - 1] = v1 + (v2 - v1) * clip; + } + break; + } + } + + if (vcount > 1) + { + Handles.color = Color.white * 0.9f; + Handles.DrawAAPolyLine(2.0f, vcount, m_CurveVertices); + } + } + + #endregion + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/BloomModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/BloomModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..f4f31deafd7bea58ec7a0da08e3ead9f897de158 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/BloomModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a95f3f10e7e437c49ade656f531b30d2 +timeCreated: 1467190133 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..eefc102f2efb634f37c8cee5b01909eea70866e8 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs @@ -0,0 +1,106 @@ +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using Mode = BuiltinDebugViewsModel.Mode; + using Settings = BuiltinDebugViewsModel.Settings; + + [PostProcessingModelEditor(typeof(BuiltinDebugViewsModel), alwaysEnabled: true)] + public class BuiltinDebugViewsEditor : PostProcessingModelEditor + { + struct DepthSettings + { + public SerializedProperty scale; + } + + struct MotionVectorsSettings + { + public SerializedProperty sourceOpacity; + public SerializedProperty motionImageOpacity; + public SerializedProperty motionImageAmplitude; + public SerializedProperty motionVectorsOpacity; + public SerializedProperty motionVectorsResolution; + public SerializedProperty motionVectorsAmplitude; + } + + SerializedProperty m_Mode; + DepthSettings m_Depth; + MotionVectorsSettings m_MotionVectors; + + public override void OnEnable() + { + m_Mode = FindSetting((Settings x) => x.mode); + + m_Depth = new DepthSettings + { + scale = FindSetting((Settings x) => x.depth.scale) + }; + + m_MotionVectors = new MotionVectorsSettings + { + sourceOpacity = FindSetting((Settings x) => x.motionVectors.sourceOpacity), + motionImageOpacity = FindSetting((Settings x) => x.motionVectors.motionImageOpacity), + motionImageAmplitude = FindSetting((Settings x) => x.motionVectors.motionImageAmplitude), + motionVectorsOpacity = FindSetting((Settings x) => x.motionVectors.motionVectorsOpacity), + motionVectorsResolution = FindSetting((Settings x) => x.motionVectors.motionVectorsResolution), + motionVectorsAmplitude = FindSetting((Settings x) => x.motionVectors.motionVectorsAmplitude), + }; + } + + public override void OnInspectorGUI() + { + EditorGUILayout.PropertyField(m_Mode); + + int mode = m_Mode.intValue; + + if (mode == (int)Mode.Depth) + { + EditorGUILayout.PropertyField(m_Depth.scale); + } + else if (mode == (int)Mode.MotionVectors) + { + EditorGUILayout.HelpBox("Switch to play mode to see motion vectors.", MessageType.Info); + + EditorGUILayout.LabelField("Source Image", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(m_MotionVectors.sourceOpacity, EditorGUIHelper.GetContent("Opacity")); + EditorGUI.indentLevel--; + + EditorGUILayout.Space(); + + EditorGUILayout.LabelField("Motion Vectors (overlay)", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + + if (m_MotionVectors.motionImageOpacity.floatValue > 0f) + EditorGUILayout.HelpBox("Please keep opacity to 0 if you're subject to motion sickness.", MessageType.Warning); + + EditorGUILayout.PropertyField(m_MotionVectors.motionImageOpacity, EditorGUIHelper.GetContent("Opacity")); + EditorGUILayout.PropertyField(m_MotionVectors.motionImageAmplitude, EditorGUIHelper.GetContent("Amplitude")); + EditorGUI.indentLevel--; + + EditorGUILayout.Space(); + + EditorGUILayout.LabelField("Motion Vectors (arrows)", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(m_MotionVectors.motionVectorsOpacity, EditorGUIHelper.GetContent("Opacity")); + EditorGUILayout.PropertyField(m_MotionVectors.motionVectorsResolution, EditorGUIHelper.GetContent("Resolution")); + EditorGUILayout.PropertyField(m_MotionVectors.motionVectorsAmplitude, EditorGUIHelper.GetContent("Amplitude")); + EditorGUI.indentLevel--; + } + else + { + CheckActiveEffect(mode == (int)Mode.AmbientOcclusion && !profile.ambientOcclusion.enabled, "Ambient Occlusion"); + CheckActiveEffect(mode == (int)Mode.FocusPlane && !profile.depthOfField.enabled, "Depth Of Field"); + CheckActiveEffect(mode == (int)Mode.EyeAdaptation && !profile.eyeAdaptation.enabled, "Eye Adaptation"); + CheckActiveEffect((mode == (int)Mode.LogLut || mode == (int)Mode.PreGradingLog) && !profile.colorGrading.enabled, "Color Grading"); + CheckActiveEffect(mode == (int)Mode.UserLut && !profile.userLut.enabled, "User Lut"); + } + } + + void CheckActiveEffect(bool expr, string name) + { + if (expr) + EditorGUILayout.HelpBox(string.Format("{0} isn't enabled, the debug view won't work.", name), MessageType.Warning); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b961b65830ce54a37ea5517548639a4c15f14acf --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/BuiltinDebugViewsEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 760ffebbef2ed644c87940a699eb7fe6 +timeCreated: 1468237035 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..2337de0441d0b224521bd7c05d5f97ce53e4da8f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs @@ -0,0 +1,9 @@ +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + [PostProcessingModelEditor(typeof(ChromaticAberrationModel))] + public class ChromaticaAberrationModelEditor : DefaultPostFxModelEditor + { + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..8c6515009dfdbd6599bb52280e0499b4da729d6e --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/ChromaticAberrationEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8a713f71a0169794a915a081f6242f60 +timeCreated: 1467190133 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..8d7398291a178152af029002ef56bfb914d5954b --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs @@ -0,0 +1,672 @@ +using UnityEngine; +using UnityEngine.PostProcessing; +using System; +using System.Collections.Generic; +using System.Linq.Expressions; + +namespace UnityEditor.PostProcessing +{ + using Settings = ColorGradingModel.Settings; + using Tonemapper = ColorGradingModel.Tonemapper; + using ColorWheelMode = ColorGradingModel.ColorWheelMode; + + [PostProcessingModelEditor(typeof(ColorGradingModel))] + public class ColorGradingModelEditor : PostProcessingModelEditor + { + static GUIContent[] s_Tonemappers = + { + new GUIContent("None"), + new GUIContent("Filmic (ACES)"), + new GUIContent("Neutral") + }; + + struct TonemappingSettings + { + public SerializedProperty tonemapper; + public SerializedProperty neutralBlackIn; + public SerializedProperty neutralWhiteIn; + public SerializedProperty neutralBlackOut; + public SerializedProperty neutralWhiteOut; + public SerializedProperty neutralWhiteLevel; + public SerializedProperty neutralWhiteClip; + } + + struct BasicSettings + { + public SerializedProperty exposure; + public SerializedProperty temperature; + public SerializedProperty tint; + public SerializedProperty hueShift; + public SerializedProperty saturation; + public SerializedProperty contrast; + } + + struct ChannelMixerSettings + { + public SerializedProperty[] channels; + public SerializedProperty currentEditingChannel; + } + + struct ColorWheelsSettings + { + public SerializedProperty mode; + public SerializedProperty log; + public SerializedProperty linear; + } + + static GUIContent[] s_Curves = + { + new GUIContent("YRGB"), + new GUIContent("Hue VS Hue"), + new GUIContent("Hue VS Sat"), + new GUIContent("Sat VS Sat"), + new GUIContent("Lum VS Sat") + }; + + struct CurvesSettings + { + public SerializedProperty master; + public SerializedProperty red; + public SerializedProperty green; + public SerializedProperty blue; + + public SerializedProperty hueVShue; + public SerializedProperty hueVSsat; + public SerializedProperty satVSsat; + public SerializedProperty lumVSsat; + + public SerializedProperty currentEditingCurve; + public SerializedProperty curveY; + public SerializedProperty curveR; + public SerializedProperty curveG; + public SerializedProperty curveB; + } + + TonemappingSettings m_Tonemapping; + BasicSettings m_Basic; + ChannelMixerSettings m_ChannelMixer; + ColorWheelsSettings m_ColorWheels; + CurvesSettings m_Curves; + + CurveEditor m_CurveEditor; + Dictionary<SerializedProperty, Color> m_CurveDict; + + // Neutral tonemapping curve helper + const int k_CurveResolution = 24; + const float k_NeutralRangeX = 2f; + const float k_NeutralRangeY = 1f; + Vector3[] m_RectVertices = new Vector3[4]; + Vector3[] m_LineVertices = new Vector3[2]; + Vector3[] m_CurveVertices = new Vector3[k_CurveResolution]; + Rect m_NeutralCurveRect; + + public override void OnEnable() + { + // Tonemapping settings + m_Tonemapping = new TonemappingSettings + { + tonemapper = FindSetting((Settings x) => x.tonemapping.tonemapper), + neutralBlackIn = FindSetting((Settings x) => x.tonemapping.neutralBlackIn), + neutralWhiteIn = FindSetting((Settings x) => x.tonemapping.neutralWhiteIn), + neutralBlackOut = FindSetting((Settings x) => x.tonemapping.neutralBlackOut), + neutralWhiteOut = FindSetting((Settings x) => x.tonemapping.neutralWhiteOut), + neutralWhiteLevel = FindSetting((Settings x) => x.tonemapping.neutralWhiteLevel), + neutralWhiteClip = FindSetting((Settings x) => x.tonemapping.neutralWhiteClip) + }; + + // Basic settings + m_Basic = new BasicSettings + { + exposure = FindSetting((Settings x) => x.basic.postExposure), + temperature = FindSetting((Settings x) => x.basic.temperature), + tint = FindSetting((Settings x) => x.basic.tint), + hueShift = FindSetting((Settings x) => x.basic.hueShift), + saturation = FindSetting((Settings x) => x.basic.saturation), + contrast = FindSetting((Settings x) => x.basic.contrast) + }; + + // Channel mixer + m_ChannelMixer = new ChannelMixerSettings + { + channels = new[] + { + FindSetting((Settings x) => x.channelMixer.red), + FindSetting((Settings x) => x.channelMixer.green), + FindSetting((Settings x) => x.channelMixer.blue) + }, + currentEditingChannel = FindSetting((Settings x) => x.channelMixer.currentEditingChannel) + }; + + // Color wheels + m_ColorWheels = new ColorWheelsSettings + { + mode = FindSetting((Settings x) => x.colorWheels.mode), + log = FindSetting((Settings x) => x.colorWheels.log), + linear = FindSetting((Settings x) => x.colorWheels.linear) + }; + + // Curves + m_Curves = new CurvesSettings + { + master = FindSetting((Settings x) => x.curves.master.curve), + red = FindSetting((Settings x) => x.curves.red.curve), + green = FindSetting((Settings x) => x.curves.green.curve), + blue = FindSetting((Settings x) => x.curves.blue.curve), + + hueVShue = FindSetting((Settings x) => x.curves.hueVShue.curve), + hueVSsat = FindSetting((Settings x) => x.curves.hueVSsat.curve), + satVSsat = FindSetting((Settings x) => x.curves.satVSsat.curve), + lumVSsat = FindSetting((Settings x) => x.curves.lumVSsat.curve), + + currentEditingCurve = FindSetting((Settings x) => x.curves.e_CurrentEditingCurve), + curveY = FindSetting((Settings x) => x.curves.e_CurveY), + curveR = FindSetting((Settings x) => x.curves.e_CurveR), + curveG = FindSetting((Settings x) => x.curves.e_CurveG), + curveB = FindSetting((Settings x) => x.curves.e_CurveB) + }; + + // Prepare the curve editor and extract curve display settings + m_CurveDict = new Dictionary<SerializedProperty, Color>(); + + var settings = CurveEditor.Settings.defaultSettings; + + m_CurveEditor = new CurveEditor(settings); + AddCurve(m_Curves.master, new Color(1f, 1f, 1f), 2, false); + AddCurve(m_Curves.red, new Color(1f, 0f, 0f), 2, false); + AddCurve(m_Curves.green, new Color(0f, 1f, 0f), 2, false); + AddCurve(m_Curves.blue, new Color(0f, 0.5f, 1f), 2, false); + AddCurve(m_Curves.hueVShue, new Color(1f, 1f, 1f), 0, true); + AddCurve(m_Curves.hueVSsat, new Color(1f, 1f, 1f), 0, true); + AddCurve(m_Curves.satVSsat, new Color(1f, 1f, 1f), 0, false); + AddCurve(m_Curves.lumVSsat, new Color(1f, 1f, 1f), 0, false); + } + + void AddCurve(SerializedProperty prop, Color color, uint minPointCount, bool loop) + { + var state = CurveEditor.CurveState.defaultState; + state.color = color; + state.visible = false; + state.minPointCount = minPointCount; + state.onlyShowHandlesOnSelection = true; + state.zeroKeyConstantValue = 0.5f; + state.loopInBounds = loop; + m_CurveEditor.Add(prop, state); + m_CurveDict.Add(prop, color); + } + + public override void OnDisable() + { + m_CurveEditor.RemoveAll(); + } + + public override void OnInspectorGUI() + { + DoGUIFor("Tonemapping", DoTonemappingGUI); + EditorGUILayout.Space(); + DoGUIFor("Basic", DoBasicGUI); + EditorGUILayout.Space(); + DoGUIFor("Channel Mixer", DoChannelMixerGUI); + EditorGUILayout.Space(); + DoGUIFor("Trackballs", DoColorWheelsGUI); + EditorGUILayout.Space(); + DoGUIFor("Grading Curves", DoCurvesGUI); + } + + void DoGUIFor(string title, Action func) + { + EditorGUILayout.LabelField(title, EditorStyles.boldLabel); + EditorGUI.indentLevel++; + func(); + EditorGUI.indentLevel--; + } + + void DoTonemappingGUI() + { + int tid = EditorGUILayout.Popup(EditorGUIHelper.GetContent("Tonemapper"), m_Tonemapping.tonemapper.intValue, s_Tonemappers); + + if (tid == (int)Tonemapper.Neutral) + { + DrawNeutralTonemappingCurve(); + + EditorGUILayout.PropertyField(m_Tonemapping.neutralBlackIn, EditorGUIHelper.GetContent("Black In")); + EditorGUILayout.PropertyField(m_Tonemapping.neutralWhiteIn, EditorGUIHelper.GetContent("White In")); + EditorGUILayout.PropertyField(m_Tonemapping.neutralBlackOut, EditorGUIHelper.GetContent("Black Out")); + EditorGUILayout.PropertyField(m_Tonemapping.neutralWhiteOut, EditorGUIHelper.GetContent("White Out")); + EditorGUILayout.PropertyField(m_Tonemapping.neutralWhiteLevel, EditorGUIHelper.GetContent("White Level")); + EditorGUILayout.PropertyField(m_Tonemapping.neutralWhiteClip, EditorGUIHelper.GetContent("White Clip")); + } + + m_Tonemapping.tonemapper.intValue = tid; + } + + void DrawNeutralTonemappingCurve() + { + using (new GUILayout.HorizontalScope()) + { + GUILayout.Space(EditorGUI.indentLevel * 15f); + m_NeutralCurveRect = GUILayoutUtility.GetRect(128, 80); + } + + // Background + m_RectVertices[0] = PointInRect( 0f, 0f); + m_RectVertices[1] = PointInRect(k_NeutralRangeX, 0f); + m_RectVertices[2] = PointInRect(k_NeutralRangeX, k_NeutralRangeY); + m_RectVertices[3] = PointInRect( 0f, k_NeutralRangeY); + + Handles.DrawSolidRectangleWithOutline( + m_RectVertices, + Color.white * 0.1f, + Color.white * 0.4f + ); + + // Horizontal lines + for (var i = 1; i < k_NeutralRangeY; i++) + DrawLine(0, i, k_NeutralRangeX, i, 0.4f); + + // Vertical lines + for (var i = 1; i < k_NeutralRangeX; i++) + DrawLine(i, 0, i, k_NeutralRangeY, 0.4f); + + // Label + Handles.Label( + PointInRect(0, k_NeutralRangeY) + Vector3.right, + "Neutral Tonemapper", EditorStyles.miniLabel + ); + + // Precompute some values + var tonemap = ((ColorGradingModel)target).settings.tonemapping; + + const float scaleFactor = 20f; + const float scaleFactorHalf = scaleFactor * 0.5f; + + float inBlack = tonemap.neutralBlackIn * scaleFactor + 1f; + float outBlack = tonemap.neutralBlackOut * scaleFactorHalf + 1f; + float inWhite = tonemap.neutralWhiteIn / scaleFactor; + float outWhite = 1f - tonemap.neutralWhiteOut / scaleFactor; + float blackRatio = inBlack / outBlack; + float whiteRatio = inWhite / outWhite; + + const float a = 0.2f; + float b = Mathf.Max(0f, Mathf.LerpUnclamped(0.57f, 0.37f, blackRatio)); + float c = Mathf.LerpUnclamped(0.01f, 0.24f, whiteRatio); + float d = Mathf.Max(0f, Mathf.LerpUnclamped(0.02f, 0.20f, blackRatio)); + const float e = 0.02f; + const float f = 0.30f; + float whiteLevel = tonemap.neutralWhiteLevel; + float whiteClip = tonemap.neutralWhiteClip / scaleFactorHalf; + + // Tonemapping curve + var vcount = 0; + while (vcount < k_CurveResolution) + { + float x = k_NeutralRangeX * vcount / (k_CurveResolution - 1); + float y = NeutralTonemap(x, a, b, c, d, e, f, whiteLevel, whiteClip); + + if (y < k_NeutralRangeY) + { + m_CurveVertices[vcount++] = PointInRect(x, y); + } + else + { + if (vcount > 1) + { + // Extend the last segment to the top edge of the rect. + var v1 = m_CurveVertices[vcount - 2]; + var v2 = m_CurveVertices[vcount - 1]; + var clip = (m_NeutralCurveRect.y - v1.y) / (v2.y - v1.y); + m_CurveVertices[vcount - 1] = v1 + (v2 - v1) * clip; + } + break; + } + } + + if (vcount > 1) + { + Handles.color = Color.white * 0.9f; + Handles.DrawAAPolyLine(2.0f, vcount, m_CurveVertices); + } + } + + void DrawLine(float x1, float y1, float x2, float y2, float grayscale) + { + m_LineVertices[0] = PointInRect(x1, y1); + m_LineVertices[1] = PointInRect(x2, y2); + Handles.color = Color.white * grayscale; + Handles.DrawAAPolyLine(2f, m_LineVertices); + } + + Vector3 PointInRect(float x, float y) + { + x = Mathf.Lerp(m_NeutralCurveRect.x, m_NeutralCurveRect.xMax, x / k_NeutralRangeX); + y = Mathf.Lerp(m_NeutralCurveRect.yMax, m_NeutralCurveRect.y, y / k_NeutralRangeY); + return new Vector3(x, y, 0); + } + + float NeutralCurve(float x, float a, float b, float c, float d, float e, float f) + { + return ((x * (a * x + c * b) + d * e) / (x * (a * x + b) + d * f)) - e / f; + } + + float NeutralTonemap(float x, float a, float b, float c, float d, float e, float f, float whiteLevel, float whiteClip) + { + x = Mathf.Max(0f, x); + + // Tonemap + float whiteScale = 1f / NeutralCurve(whiteLevel, a, b, c, d, e, f); + x = NeutralCurve(x * whiteScale, a, b, c, d, e, f); + x *= whiteScale; + + // Post-curve white point adjustment + x /= whiteClip; + + return x; + } + + void DoBasicGUI() + { + EditorGUILayout.PropertyField(m_Basic.exposure, EditorGUIHelper.GetContent("Post Exposure (EV)")); + EditorGUILayout.PropertyField(m_Basic.temperature); + EditorGUILayout.PropertyField(m_Basic.tint); + EditorGUILayout.PropertyField(m_Basic.hueShift); + EditorGUILayout.PropertyField(m_Basic.saturation); + EditorGUILayout.PropertyField(m_Basic.contrast); + } + + void DoChannelMixerGUI() + { + int currentChannel = m_ChannelMixer.currentEditingChannel.intValue; + + EditorGUI.BeginChangeCheck(); + { + using (new EditorGUILayout.HorizontalScope()) + { + EditorGUILayout.PrefixLabel("Channel"); + if (GUILayout.Toggle(currentChannel == 0, EditorGUIHelper.GetContent("Red|Red output channel."), EditorStyles.miniButtonLeft)) currentChannel = 0; + if (GUILayout.Toggle(currentChannel == 1, EditorGUIHelper.GetContent("Green|Green output channel."), EditorStyles.miniButtonMid)) currentChannel = 1; + if (GUILayout.Toggle(currentChannel == 2, EditorGUIHelper.GetContent("Blue|Blue output channel."), EditorStyles.miniButtonRight)) currentChannel = 2; + } + } + if (EditorGUI.EndChangeCheck()) + { + GUI.FocusControl(null); + } + + var serializedChannel = m_ChannelMixer.channels[currentChannel]; + m_ChannelMixer.currentEditingChannel.intValue = currentChannel; + + var v = serializedChannel.vector3Value; + v.x = EditorGUILayout.Slider(EditorGUIHelper.GetContent("Red|Modify influence of the red channel within the overall mix."), v.x, -2f, 2f); + v.y = EditorGUILayout.Slider(EditorGUIHelper.GetContent("Green|Modify influence of the green channel within the overall mix."), v.y, -2f, 2f); + v.z = EditorGUILayout.Slider(EditorGUIHelper.GetContent("Blue|Modify influence of the blue channel within the overall mix."), v.z, -2f, 2f); + serializedChannel.vector3Value = v; + } + + void DoColorWheelsGUI() + { + int wheelMode = m_ColorWheels.mode.intValue; + + using (new EditorGUILayout.HorizontalScope()) + { + GUILayout.Space(15); + if (GUILayout.Toggle(wheelMode == (int)ColorWheelMode.Linear, "Linear", EditorStyles.miniButtonLeft)) wheelMode = (int)ColorWheelMode.Linear; + if (GUILayout.Toggle(wheelMode == (int)ColorWheelMode.Log, "Log", EditorStyles.miniButtonRight)) wheelMode = (int)ColorWheelMode.Log; + } + + m_ColorWheels.mode.intValue = wheelMode; + EditorGUILayout.Space(); + + if (wheelMode == (int)ColorWheelMode.Linear) + { + EditorGUILayout.PropertyField(m_ColorWheels.linear); + WheelSetTitle(GUILayoutUtility.GetLastRect(), "Linear Controls"); + } + else if (wheelMode == (int)ColorWheelMode.Log) + { + EditorGUILayout.PropertyField(m_ColorWheels.log); + WheelSetTitle(GUILayoutUtility.GetLastRect(), "Log Controls"); + } + } + + static void WheelSetTitle(Rect position, string label) + { + var matrix = GUI.matrix; + var rect = new Rect(position.x - 10f, position.y, TrackballGroupDrawer.m_Size, TrackballGroupDrawer.m_Size); + GUIUtility.RotateAroundPivot(-90f, rect.center); + GUI.Label(rect, label, FxStyles.centeredMiniLabel); + GUI.matrix = matrix; + } + + void ResetVisibleCurves() + { + foreach (var curve in m_CurveDict) + { + var state = m_CurveEditor.GetCurveState(curve.Key); + state.visible = false; + m_CurveEditor.SetCurveState(curve.Key, state); + } + } + + void SetCurveVisible(SerializedProperty prop) + { + var state = m_CurveEditor.GetCurveState(prop); + state.visible = true; + m_CurveEditor.SetCurveState(prop, state); + } + + bool SpecialToggle(bool value, string name, out bool rightClicked) + { + var rect = GUILayoutUtility.GetRect(EditorGUIHelper.GetContent(name), EditorStyles.toolbarButton); + + var e = Event.current; + rightClicked = (e.type == EventType.MouseUp && rect.Contains(e.mousePosition) && e.button == 1); + + return GUI.Toggle(rect, value, name, EditorStyles.toolbarButton); + } + + static Material s_MaterialSpline; + + void DoCurvesGUI() + { + EditorGUILayout.Space(); + EditorGUI.indentLevel -= 2; + ResetVisibleCurves(); + + using (new EditorGUI.DisabledGroupScope(serializedProperty.serializedObject.isEditingMultipleObjects)) + { + int curveEditingId = 0; + + // Top toolbar + using (new GUILayout.HorizontalScope(EditorStyles.toolbar)) + { + curveEditingId = EditorGUILayout.Popup(m_Curves.currentEditingCurve.intValue, s_Curves, EditorStyles.toolbarPopup, GUILayout.MaxWidth(150f)); + bool y = false, r = false, g = false, b = false; + + if (curveEditingId == 0) + { + EditorGUILayout.Space(); + + bool rightClickedY, rightClickedR, rightClickedG, rightClickedB; + + y = SpecialToggle(m_Curves.curveY.boolValue, "Y", out rightClickedY); + r = SpecialToggle(m_Curves.curveR.boolValue, "R", out rightClickedR); + g = SpecialToggle(m_Curves.curveG.boolValue, "G", out rightClickedG); + b = SpecialToggle(m_Curves.curveB.boolValue, "B", out rightClickedB); + + if (!y && !r && !g && !b) + { + r = g = b = false; + y = true; + } + + if (rightClickedY || rightClickedR || rightClickedG || rightClickedB) + { + y = rightClickedY; + r = rightClickedR; + g = rightClickedG; + b = rightClickedB; + } + + if (y) SetCurveVisible(m_Curves.master); + if (r) SetCurveVisible(m_Curves.red); + if (g) SetCurveVisible(m_Curves.green); + if (b) SetCurveVisible(m_Curves.blue); + + m_Curves.curveY.boolValue = y; + m_Curves.curveR.boolValue = r; + m_Curves.curveG.boolValue = g; + m_Curves.curveB.boolValue = b; + } + else + { + switch (curveEditingId) + { + case 1: SetCurveVisible(m_Curves.hueVShue); + break; + case 2: SetCurveVisible(m_Curves.hueVSsat); + break; + case 3: SetCurveVisible(m_Curves.satVSsat); + break; + case 4: SetCurveVisible(m_Curves.lumVSsat); + break; + } + } + + GUILayout.FlexibleSpace(); + + if (GUILayout.Button("Reset", EditorStyles.toolbarButton)) + { + switch (curveEditingId) + { + case 0: + if (y) m_Curves.master.animationCurveValue = AnimationCurve.Linear(0f, 0f, 1f, 1f); + if (r) m_Curves.red.animationCurveValue = AnimationCurve.Linear(0f, 0f, 1f, 1f); + if (g) m_Curves.green.animationCurveValue = AnimationCurve.Linear(0f, 0f, 1f, 1f); + if (b) m_Curves.blue.animationCurveValue = AnimationCurve.Linear(0f, 0f, 1f, 1f); + break; + case 1: m_Curves.hueVShue.animationCurveValue = new AnimationCurve(); + break; + case 2: m_Curves.hueVSsat.animationCurveValue = new AnimationCurve(); + break; + case 3: m_Curves.satVSsat.animationCurveValue = new AnimationCurve(); + break; + case 4: m_Curves.lumVSsat.animationCurveValue = new AnimationCurve(); + break; + } + } + + m_Curves.currentEditingCurve.intValue = curveEditingId; + } + + // Curve area + var settings = m_CurveEditor.settings; + var rect = GUILayoutUtility.GetAspectRect(2f); + var innerRect = settings.padding.Remove(rect); + + if (Event.current.type == EventType.Repaint) + { + // Background + EditorGUI.DrawRect(rect, new Color(0.15f, 0.15f, 0.15f, 1f)); + + if (s_MaterialSpline == null) + s_MaterialSpline = new Material(Shader.Find("Hidden/Post FX/UI/Curve Background")) { hideFlags = HideFlags.HideAndDontSave }; + + if (curveEditingId == 1 || curveEditingId == 2) + DrawBackgroundTexture(innerRect, 0); + else if (curveEditingId == 3 || curveEditingId == 4) + DrawBackgroundTexture(innerRect, 1); + + // Bounds + Handles.color = Color.white; + Handles.DrawSolidRectangleWithOutline(innerRect, Color.clear, new Color(0.8f, 0.8f, 0.8f, 0.5f)); + + // Grid setup + Handles.color = new Color(1f, 1f, 1f, 0.05f); + int hLines = (int)Mathf.Sqrt(innerRect.width); + int vLines = (int)(hLines / (innerRect.width / innerRect.height)); + + // Vertical grid + int gridOffset = Mathf.FloorToInt(innerRect.width / hLines); + int gridPadding = ((int)(innerRect.width) % hLines) / 2; + + for (int i = 1; i < hLines; i++) + { + var offset = i * Vector2.right * gridOffset; + offset.x += gridPadding; + Handles.DrawLine(innerRect.position + offset, new Vector2(innerRect.x, innerRect.yMax - 1) + offset); + } + + // Horizontal grid + gridOffset = Mathf.FloorToInt(innerRect.height / vLines); + gridPadding = ((int)(innerRect.height) % vLines) / 2; + + for (int i = 1; i < vLines; i++) + { + var offset = i * Vector2.up * gridOffset; + offset.y += gridPadding; + Handles.DrawLine(innerRect.position + offset, new Vector2(innerRect.xMax - 1, innerRect.y) + offset); + } + } + + // Curve editor + if (m_CurveEditor.OnGUI(rect)) + { + Repaint(); + GUI.changed = true; + } + + if (Event.current.type == EventType.Repaint) + { + // Borders + Handles.color = Color.black; + Handles.DrawLine(new Vector2(rect.x, rect.y - 18f), new Vector2(rect.xMax, rect.y - 18f)); + Handles.DrawLine(new Vector2(rect.x, rect.y - 19f), new Vector2(rect.x, rect.yMax)); + Handles.DrawLine(new Vector2(rect.x, rect.yMax), new Vector2(rect.xMax, rect.yMax)); + Handles.DrawLine(new Vector2(rect.xMax, rect.yMax), new Vector2(rect.xMax, rect.y - 18f)); + + // Selection info + var selection = m_CurveEditor.GetSelection(); + + if (selection.curve != null && selection.keyframeIndex > -1) + { + var key = selection.keyframe.Value; + var infoRect = innerRect; + infoRect.x += 5f; + infoRect.width = 100f; + infoRect.height = 30f; + GUI.Label(infoRect, string.Format("{0}\n{1}", key.time.ToString("F3"), key.value.ToString("F3")), FxStyles.preLabel); + } + } + } + + /* + EditorGUILayout.HelpBox( + @"Curve editor cheat sheet: +- [Del] or [Backspace] to remove a key +- [Ctrl] to break a tangent handle +- [Shift] to align tangent handles +- [Double click] to create a key on the curve(s) at mouse position +- [Alt] + [Double click] to create a key on the curve(s) at a given time", + MessageType.Info); + */ + + EditorGUILayout.Space(); + EditorGUI.indentLevel += 2; + } + + void DrawBackgroundTexture(Rect rect, int pass) + { + float scale = EditorGUIUtility.pixelsPerPoint; + + var oldRt = RenderTexture.active; + var rt = RenderTexture.GetTemporary(Mathf.CeilToInt(rect.width * scale), Mathf.CeilToInt(rect.height * scale), 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear); + s_MaterialSpline.SetFloat("_DisabledState", GUI.enabled ? 1f : 0.5f); + s_MaterialSpline.SetFloat("_PixelScaling", EditorGUIUtility.pixelsPerPoint); + + Graphics.Blit(null, rt, s_MaterialSpline, pass); + RenderTexture.active = oldRt; + + GUI.DrawTexture(rect, rt); + RenderTexture.ReleaseTemporary(rt); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..5449051eaeab4178d9e8686a5bf3fa9569199416 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/ColorGradingModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c3e3bce1d5c900d4fa7aa0f2b21814cf +timeCreated: 1467190133 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..06c1c22cd61c0d804144c873c4a644199e0dcb70 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs @@ -0,0 +1,22 @@ +using System.Collections.Generic; + +namespace UnityEditor.PostProcessing +{ + public class DefaultPostFxModelEditor : PostProcessingModelEditor + { + List<SerializedProperty> m_Properties = new List<SerializedProperty>(); + + public override void OnEnable() + { + var iter = m_SettingsProperty.Copy().GetEnumerator(); + while (iter.MoveNext()) + m_Properties.Add(((SerializedProperty)iter.Current).Copy()); + } + + public override void OnInspectorGUI() + { + foreach (var property in m_Properties) + EditorGUILayout.PropertyField(property); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..44902c66f79782b82a09bb748cc9973fc822b5be --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/DefaultPostFxModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c15016a7fef58974f91a6a4d6b132d94 +timeCreated: 1467190133 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..0f253fc640350088567835149365d27f64ea559c --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs @@ -0,0 +1,37 @@ +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using Settings = DepthOfFieldModel.Settings; + + [PostProcessingModelEditor(typeof(DepthOfFieldModel))] + public class DepthOfFieldModelEditor : PostProcessingModelEditor + { + SerializedProperty m_FocusDistance; + SerializedProperty m_Aperture; + SerializedProperty m_FocalLength; + SerializedProperty m_UseCameraFov; + SerializedProperty m_KernelSize; + + public override void OnEnable() + { + m_FocusDistance = FindSetting((Settings x) => x.focusDistance); + m_Aperture = FindSetting((Settings x) => x.aperture); + m_FocalLength = FindSetting((Settings x) => x.focalLength); + m_UseCameraFov = FindSetting((Settings x) => x.useCameraFov); + m_KernelSize = FindSetting((Settings x) => x.kernelSize); + } + + public override void OnInspectorGUI() + { + EditorGUILayout.PropertyField(m_FocusDistance); + EditorGUILayout.PropertyField(m_Aperture, EditorGUIHelper.GetContent("Aperture (f-stop)")); + + EditorGUILayout.PropertyField(m_UseCameraFov, EditorGUIHelper.GetContent("Use Camera FOV")); + if (!m_UseCameraFov.boolValue) + EditorGUILayout.PropertyField(m_FocalLength, EditorGUIHelper.GetContent("Focal Length (mm)")); + + EditorGUILayout.PropertyField(m_KernelSize); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2fd54fa4d5557c95646099cdf3fcfd8de770a511 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/DepthOfFieldModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dc2f388440e9f8b4f8fc7bb43c01cc7d +timeCreated: 1467190133 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..af4751f2443adfcdd5748ec8b13c712505e37ab9 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs @@ -0,0 +1,16 @@ +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + [PostProcessingModelEditor(typeof(DitheringModel))] + public class DitheringModelEditor : PostProcessingModelEditor + { + public override void OnInspectorGUI() + { + if (profile.grain.enabled && target.enabled) + EditorGUILayout.HelpBox("Grain is enabled, you probably don't need dithering !", MessageType.Warning); + else + EditorGUILayout.HelpBox("Nothing to configure !", MessageType.Info); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..f4beb490b32fa869270bb42916f92b8d8050665f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/DitheringModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 87377c86d84f49a4e912d37d28353e7f +timeCreated: 1485179854 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..94c49f2cb1f3fa7a7564f934f0a01756a86e8e51 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs @@ -0,0 +1,86 @@ +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using Settings = EyeAdaptationModel.Settings; + + [PostProcessingModelEditor(typeof(EyeAdaptationModel))] + public class EyeAdaptationModelEditor : PostProcessingModelEditor + { + SerializedProperty m_LowPercent; + SerializedProperty m_HighPercent; + SerializedProperty m_MinLuminance; + SerializedProperty m_MaxLuminance; + SerializedProperty m_KeyValue; + SerializedProperty m_DynamicKeyValue; + SerializedProperty m_AdaptationType; + SerializedProperty m_SpeedUp; + SerializedProperty m_SpeedDown; + SerializedProperty m_LogMin; + SerializedProperty m_LogMax; + + public override void OnEnable() + { + m_LowPercent = FindSetting((Settings x) => x.lowPercent); + m_HighPercent = FindSetting((Settings x) => x.highPercent); + m_MinLuminance = FindSetting((Settings x) => x.minLuminance); + m_MaxLuminance = FindSetting((Settings x) => x.maxLuminance); + m_KeyValue = FindSetting((Settings x) => x.keyValue); + m_DynamicKeyValue = FindSetting((Settings x) => x.dynamicKeyValue); + m_AdaptationType = FindSetting((Settings x) => x.adaptationType); + m_SpeedUp = FindSetting((Settings x) => x.speedUp); + m_SpeedDown = FindSetting((Settings x) => x.speedDown); + m_LogMin = FindSetting((Settings x) => x.logMin); + m_LogMax = FindSetting((Settings x) => x.logMax); + } + + public override void OnInspectorGUI() + { + if (!GraphicsUtils.supportsDX11) + EditorGUILayout.HelpBox("This effect requires support for compute shaders. Enabling it won't do anything on unsupported platforms.", MessageType.Warning); + + EditorGUILayout.LabelField("Luminosity range", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(m_LogMin, EditorGUIHelper.GetContent("Minimum (EV)")); + EditorGUILayout.PropertyField(m_LogMax, EditorGUIHelper.GetContent("Maximum (EV)")); + EditorGUI.indentLevel--; + EditorGUILayout.Space(); + + EditorGUILayout.LabelField("Auto exposure", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + float low = m_LowPercent.floatValue; + float high = m_HighPercent.floatValue; + + EditorGUILayout.MinMaxSlider(EditorGUIHelper.GetContent("Histogram filtering|These values are the lower and upper percentages of the histogram that will be used to find a stable average luminance. Values outside of this range will be discarded and won't contribute to the average luminance."), ref low, ref high, 1f, 99f); + + m_LowPercent.floatValue = low; + m_HighPercent.floatValue = high; + + EditorGUILayout.PropertyField(m_MinLuminance, EditorGUIHelper.GetContent("Minimum (EV)")); + EditorGUILayout.PropertyField(m_MaxLuminance, EditorGUIHelper.GetContent("Maximum (EV)")); + EditorGUILayout.PropertyField(m_DynamicKeyValue); + + if (!m_DynamicKeyValue.boolValue) + EditorGUILayout.PropertyField(m_KeyValue); + + EditorGUI.indentLevel--; + EditorGUILayout.Space(); + + EditorGUILayout.LabelField("Adaptation", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + + EditorGUILayout.PropertyField(m_AdaptationType, EditorGUIHelper.GetContent("Type")); + + if (m_AdaptationType.intValue == (int)EyeAdaptationModel.EyeAdaptationType.Progressive) + { + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(m_SpeedUp); + EditorGUILayout.PropertyField(m_SpeedDown); + EditorGUI.indentLevel--; + } + + EditorGUI.indentLevel--; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..8b78c92fbd7a582e0578ebb150237541c5c4afd5 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/EyeAdaptationModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 489b5c785ba0f614d90c322fa0827216 +timeCreated: 1467190133 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/FogModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/FogModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..b5b17c40e99258b25c06ae5547737d82b2d9c660 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/FogModelEditor.cs @@ -0,0 +1,24 @@ +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using Settings = FogModel.Settings; + + [PostProcessingModelEditor(typeof(FogModel))] + public class FogModelEditor : PostProcessingModelEditor + { + SerializedProperty m_ExcludeSkybox; + + public override void OnEnable() + { + m_ExcludeSkybox = FindSetting((Settings x) => x.excludeSkybox); + } + + public override void OnInspectorGUI() + { + EditorGUILayout.HelpBox("This effect adds fog compatibility to the deferred rendering path; enabling it with the forward rendering path won't have any effect. Actual fog settings should be set in the Lighting panel.", MessageType.Info); + EditorGUILayout.PropertyField(m_ExcludeSkybox); + EditorGUI.indentLevel--; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/FogModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/FogModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..cd8d2cd6e1286b45e465270664f52cab01f96421 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/FogModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 44a64b44ec891d24b96ed84d958c3d4f +timeCreated: 1487335049 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/GrainModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/GrainModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..9c7d169f9068fa04858faf5196f996224656f9e9 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/GrainModelEditor.cs @@ -0,0 +1,31 @@ +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using Settings = GrainModel.Settings; + + [PostProcessingModelEditor(typeof(GrainModel))] + public class GrainModelEditor : PostProcessingModelEditor + { + SerializedProperty m_Colored; + SerializedProperty m_Intensity; + SerializedProperty m_Size; + SerializedProperty m_LuminanceContribution; + + public override void OnEnable() + { + m_Colored = FindSetting((Settings x) => x.colored); + m_Intensity = FindSetting((Settings x) => x.intensity); + m_Size = FindSetting((Settings x) => x.size); + m_LuminanceContribution = FindSetting((Settings x) => x.luminanceContribution); + } + + public override void OnInspectorGUI() + { + EditorGUILayout.PropertyField(m_Intensity); + EditorGUILayout.PropertyField(m_LuminanceContribution); + EditorGUILayout.PropertyField(m_Size); + EditorGUILayout.PropertyField(m_Colored); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/GrainModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/GrainModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0fe7d1b179ea03664b6f86cc41a1739fc0ca0b4c --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/GrainModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8330694e2c90c284f81153ac83b3cb4a +timeCreated: 1467190133 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..dac86e7bb75b084fe237ca315d3ac8a181249487 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs @@ -0,0 +1,197 @@ +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using Settings = MotionBlurModel.Settings; + + [PostProcessingModelEditor(typeof(MotionBlurModel))] + public class MotionBlurModelEditor : PostProcessingModelEditor + { + SerializedProperty m_ShutterAngle; + SerializedProperty m_SampleCount; + SerializedProperty m_FrameBlending; + + GraphDrawer m_GraphDrawer; + + class GraphDrawer + { + const float k_Height = 32f; + + Texture m_BlendingIcon; + + GUIStyle m_LowerCenterStyle; + GUIStyle m_MiddleCenterStyle; + + Color m_ColorDark; + Color m_ColorGray; + + Vector3[] m_RectVertices = new Vector3[4]; + + public GraphDrawer() + { + m_BlendingIcon = EditorResources.Load<Texture>("UI/MotionBlendingIcon.png"); + + m_LowerCenterStyle = new GUIStyle(EditorStyles.miniLabel) { alignment = TextAnchor.LowerCenter }; + m_MiddleCenterStyle = new GUIStyle(EditorStyles.miniLabel) { alignment = TextAnchor.MiddleCenter }; + + if (EditorGUIUtility.isProSkin) + { + m_ColorDark = new Color(0.18f, 0.18f, 0.18f); + m_ColorGray = new Color(0.43f, 0.43f, 0.43f); + } + else + { + m_ColorDark = new Color(0.64f, 0.64f, 0.64f); + m_ColorGray = new Color(0.92f, 0.92f, 0.92f); + } + } + + public void DrawShutterGraph(float angle) + { + var center = GUILayoutUtility.GetRect(128, k_Height).center; + + // Parameters used to make transitions smooth. + var zeroWhenOff = Mathf.Min(1f, angle * 0.1f); + var zeroWhenFull = Mathf.Min(1f, (360f - angle) * 0.02f); + + // Shutter angle graph + var discCenter = center - new Vector2(k_Height * 2.4f, 0f); + // - exposure duration indicator + DrawDisc(discCenter, k_Height * Mathf.Lerp(0.5f, 0.38f, zeroWhenFull), m_ColorGray); + // - shutter disc + DrawDisc(discCenter, k_Height * 0.16f * zeroWhenFull, m_ColorDark); + // - shutter blade + DrawArc(discCenter, k_Height * 0.5f, 360f - angle, m_ColorDark); + // - shutter axis + DrawDisc(discCenter, zeroWhenOff, m_ColorGray); + + // Shutter label (off/full) + var labelSize = new Vector2(k_Height, k_Height); + var labelOrigin = discCenter - labelSize * 0.5f; + var labelRect = new Rect(labelOrigin, labelSize); + + if (Mathf.Approximately(angle, 0f)) + GUI.Label(labelRect, "Off", m_MiddleCenterStyle); + else if (Mathf.Approximately(angle, 360f)) + GUI.Label(labelRect, "Full", m_MiddleCenterStyle); + + // Exposure time bar graph + var outerBarSize = new Vector2(4.75f, 0.5f) * k_Height; + var innerBarSize = outerBarSize; + innerBarSize.x *= angle / 360f; + + var barCenter = center + new Vector2(k_Height * 0.9f, 0f); + var barOrigin = barCenter - outerBarSize * 0.5f; + + DrawRect(barOrigin, outerBarSize, m_ColorDark); + DrawRect(barOrigin, innerBarSize, m_ColorGray); + + var barText = "Exposure time = " + (angle / 3.6f).ToString("0") + "% of ΔT"; + GUI.Label(new Rect(barOrigin, outerBarSize), barText, m_MiddleCenterStyle); + } + + public void DrawBlendingGraph(float strength) + { + var center = GUILayoutUtility.GetRect(128, k_Height).center; + + var iconSize = new Vector2(k_Height, k_Height); + var iconStride = new Vector2(k_Height * 0.9f, 0f); + var iconOrigin = center - iconSize * 0.5f - iconStride * 2f; + + for (var i = 0; i < 5; i++) + { + var weight = BlendingWeight(strength, i / 60f); + var rect = new Rect(iconOrigin + iconStride * i, iconSize); + + var color = m_ColorGray; + color.a = weight; + + GUI.color = color; + GUI.Label(rect, m_BlendingIcon); + + GUI.color = Color.white; + GUI.Label(rect, (weight * 100).ToString("0") + "%", m_LowerCenterStyle); + } + // EditorGUIUtility.isProSkin + } + + // Weight function for multi frame blending + float BlendingWeight(float strength, float time) + { + if (strength > 0f || Mathf.Approximately(time, 0f)) + return Mathf.Exp(-time * Mathf.Lerp(80f, 10f, strength)); + + return 0; + } + + // Draw a solid disc in the graph rect. + void DrawDisc(Vector2 center, float radius, Color fill) + { + Handles.color = fill; + Handles.DrawSolidDisc(center, Vector3.forward, radius); + } + + // Draw an arc in the graph rect. + void DrawArc(Vector2 center, float radius, float angle, Color fill) + { + var start = new Vector2( + -Mathf.Cos(Mathf.Deg2Rad * angle / 2f), + Mathf.Sin(Mathf.Deg2Rad * angle / 2f) + ); + + Handles.color = fill; + Handles.DrawSolidArc(center, Vector3.forward, start, angle, radius); + } + + // Draw a rectangle in the graph rect. + void DrawRect(Vector2 origin, Vector2 size, Color color) + { + var p0 = origin; + var p1 = origin + size; + + m_RectVertices[0] = p0; + m_RectVertices[1] = new Vector2(p1.x, p0.y); + m_RectVertices[2] = p1; + m_RectVertices[3] = new Vector2(p0.x, p1.y); + + Handles.color = Color.white; + Handles.DrawSolidRectangleWithOutline(m_RectVertices, color, Color.clear); + } + } + + public override void OnEnable() + { + m_ShutterAngle = FindSetting((Settings x) => x.shutterAngle); + m_SampleCount = FindSetting((Settings x) => x.sampleCount); + m_FrameBlending = FindSetting((Settings x) => x.frameBlending); + } + + public override void OnInspectorGUI() + { + if (m_GraphDrawer == null) + m_GraphDrawer = new GraphDrawer(); + + EditorGUILayout.LabelField("Shutter Speed Simulation", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + m_GraphDrawer.DrawShutterGraph(m_ShutterAngle.floatValue); + EditorGUILayout.PropertyField(m_ShutterAngle); + EditorGUILayout.PropertyField(m_SampleCount); + EditorGUI.indentLevel--; + EditorGUILayout.Space(); + + EditorGUILayout.LabelField("Multiple Frame Blending", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + + float fbValue = m_FrameBlending.floatValue; + m_GraphDrawer.DrawBlendingGraph(fbValue); + EditorGUILayout.PropertyField(m_FrameBlending); + + if (fbValue > 0f) + EditorGUILayout.HelpBox("Multi-Frame Blending lowers precision of the final picture for optimization purposes.", MessageType.Info); + + + EditorGUI.indentLevel--; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e1d3fb3a5113018d42072cf3b1a576081f298dda --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/MotionBlurModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 870806eda355b5144879155e2ba37eb6 +timeCreated: 1468325681 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..8904c7e83b69b38e851dedc7b03e15d45243f4c0 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs @@ -0,0 +1,100 @@ +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using Settings = ScreenSpaceReflectionModel.Settings; + + [PostProcessingModelEditor(typeof(ScreenSpaceReflectionModel))] + public class ScreenSpaceReflectionModelEditor : PostProcessingModelEditor + { + struct IntensitySettings + { + public SerializedProperty reflectionMultiplier; + public SerializedProperty fadeDistance; + public SerializedProperty fresnelFade; + public SerializedProperty fresnelFadePower; + } + + struct ReflectionSettings + { + public SerializedProperty blendType; + public SerializedProperty reflectionQuality; + public SerializedProperty maxDistance; + public SerializedProperty iterationCount; + public SerializedProperty stepSize; + public SerializedProperty widthModifier; + public SerializedProperty reflectionBlur; + public SerializedProperty reflectBackfaces; + } + + struct ScreenEdgeMask + { + public SerializedProperty intensity; + } + + IntensitySettings m_Intensity; + ReflectionSettings m_Reflection; + ScreenEdgeMask m_ScreenEdgeMask; + + public override void OnEnable() + { + m_Intensity = new IntensitySettings + { + reflectionMultiplier = FindSetting((Settings x) => x.intensity.reflectionMultiplier), + fadeDistance = FindSetting((Settings x) => x.intensity.fadeDistance), + fresnelFade = FindSetting((Settings x) => x.intensity.fresnelFade), + fresnelFadePower = FindSetting((Settings x) => x.intensity.fresnelFadePower) + }; + + m_Reflection = new ReflectionSettings + { + blendType = FindSetting((Settings x) => x.reflection.blendType), + reflectionQuality = FindSetting((Settings x) => x.reflection.reflectionQuality), + maxDistance = FindSetting((Settings x) => x.reflection.maxDistance), + iterationCount = FindSetting((Settings x) => x.reflection.iterationCount), + stepSize = FindSetting((Settings x) => x.reflection.stepSize), + widthModifier = FindSetting((Settings x) => x.reflection.widthModifier), + reflectionBlur = FindSetting((Settings x) => x.reflection.reflectionBlur), + reflectBackfaces = FindSetting((Settings x) => x.reflection.reflectBackfaces) + }; + + m_ScreenEdgeMask = new ScreenEdgeMask + { + intensity = FindSetting((Settings x) => x.screenEdgeMask.intensity) + }; + } + + public override void OnInspectorGUI() + { + EditorGUILayout.HelpBox("This effect only works with the deferred rendering path.", MessageType.Info); + + EditorGUILayout.LabelField("Reflection", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(m_Reflection.blendType); + EditorGUILayout.PropertyField(m_Reflection.reflectionQuality); + EditorGUILayout.PropertyField(m_Reflection.maxDistance); + EditorGUILayout.PropertyField(m_Reflection.iterationCount); + EditorGUILayout.PropertyField(m_Reflection.stepSize); + EditorGUILayout.PropertyField(m_Reflection.widthModifier); + EditorGUILayout.PropertyField(m_Reflection.reflectionBlur); + EditorGUILayout.PropertyField(m_Reflection.reflectBackfaces); + EditorGUI.indentLevel--; + + EditorGUILayout.Space(); + EditorGUILayout.LabelField("Intensity", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(m_Intensity.reflectionMultiplier); + EditorGUILayout.PropertyField(m_Intensity.fadeDistance); + EditorGUILayout.PropertyField(m_Intensity.fresnelFade); + EditorGUILayout.PropertyField(m_Intensity.fresnelFadePower); + EditorGUI.indentLevel--; + + EditorGUILayout.Space(); + EditorGUILayout.LabelField("Screen Edge Mask", EditorStyles.boldLabel); + EditorGUI.indentLevel++; + EditorGUILayout.PropertyField(m_ScreenEdgeMask.intensity); + EditorGUI.indentLevel--; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a291c2698b794f9fca83236f965849a3ac56667f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/ScreenSpaceReflectionModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 57bbe1f20eec7bb4d9bc90fc65ef381b +timeCreated: 1467190133 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..39c96ba353c43d410edaae969f7ee89de3acc2c7 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs @@ -0,0 +1,87 @@ +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using Settings = UserLutModel.Settings; + + [PostProcessingModelEditor(typeof(UserLutModel))] + public class UserLutModelEditor : PostProcessingModelEditor + { + SerializedProperty m_Texture; + SerializedProperty m_Contribution; + + public override void OnEnable() + { + m_Texture = FindSetting((Settings x) => x.lut); + m_Contribution = FindSetting((Settings x) => x.contribution); + } + + public override void OnInspectorGUI() + { + var lut = (target as UserLutModel).settings.lut; + + // Checks import settings on the lut, offers to fix them if invalid + if (lut != null) + { + var importer = (TextureImporter)AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(lut)); + + if (importer != null) // Fails when using an internal texture + { +#if UNITY_5_5_OR_NEWER + bool valid = importer.anisoLevel == 0 + && importer.mipmapEnabled == false + && importer.sRGBTexture == false + && (importer.textureCompression == TextureImporterCompression.Uncompressed); +#else + bool valid = importer.anisoLevel == 0 + && importer.mipmapEnabled == false + && importer.linearTexture == true + && (importer.textureFormat == TextureImporterFormat.RGB24 || importer.textureFormat == TextureImporterFormat.AutomaticTruecolor); +#endif + + if (!valid) + { + EditorGUILayout.HelpBox("Invalid LUT import settings.", MessageType.Warning); + + GUILayout.Space(-32); + using (new EditorGUILayout.HorizontalScope()) + { + GUILayout.FlexibleSpace(); + if (GUILayout.Button("Fix", GUILayout.Width(60))) + { + SetLUTImportSettings(importer); + AssetDatabase.Refresh(); + } + GUILayout.Space(8); + } + GUILayout.Space(11); + } + } + else + { + m_Texture.objectReferenceValue = null; + } + } + + EditorGUILayout.PropertyField(m_Texture); + EditorGUILayout.PropertyField(m_Contribution); + } + + void SetLUTImportSettings(TextureImporter importer) + { +#if UNITY_5_5_OR_NEWER + importer.textureType = TextureImporterType.Default; + importer.sRGBTexture = false; + importer.textureCompression = TextureImporterCompression.Uncompressed; +#else + importer.textureType = TextureImporterType.Advanced; + importer.linearTexture = true; + importer.textureFormat = TextureImporterFormat.RGB24; +#endif + importer.anisoLevel = 0; + importer.mipmapEnabled = false; + importer.SaveAndReimport(); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..d6355a1892c011cdc0bd14fca35017ed626e9e56 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/UserLutModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b235eb1c486b38c4fa06470234bbfd32 +timeCreated: 1466769818 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..a9e231f802893d61c24368a6a05cfbbdc0b4cf8e --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs @@ -0,0 +1,118 @@ +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using VignetteMode = VignetteModel.Mode; + using Settings = VignetteModel.Settings; + + [PostProcessingModelEditor(typeof(VignetteModel))] + public class VignetteModelEditor : PostProcessingModelEditor + { + SerializedProperty m_Mode; + SerializedProperty m_Color; + SerializedProperty m_Center; + SerializedProperty m_Intensity; + SerializedProperty m_Smoothness; + SerializedProperty m_Roundness; + SerializedProperty m_Mask; + SerializedProperty m_Opacity; + SerializedProperty m_Rounded; + + public override void OnEnable() + { + m_Mode = FindSetting((Settings x) => x.mode); + m_Color = FindSetting((Settings x) => x.color); + m_Center = FindSetting((Settings x) => x.center); + m_Intensity = FindSetting((Settings x) => x.intensity); + m_Smoothness = FindSetting((Settings x) => x.smoothness); + m_Roundness = FindSetting((Settings x) => x.roundness); + m_Mask = FindSetting((Settings x) => x.mask); + m_Opacity = FindSetting((Settings x) => x.opacity); + m_Rounded = FindSetting((Settings x) => x.rounded); + } + + public override void OnInspectorGUI() + { + EditorGUILayout.PropertyField(m_Mode); + EditorGUILayout.PropertyField(m_Color); + + if (m_Mode.intValue < (int)VignetteMode.Masked) + { + EditorGUILayout.PropertyField(m_Center); + EditorGUILayout.PropertyField(m_Intensity); + EditorGUILayout.PropertyField(m_Smoothness); + EditorGUILayout.PropertyField(m_Roundness); + EditorGUILayout.PropertyField(m_Rounded); + } + else + { + var mask = (target as VignetteModel).settings.mask; + + // Checks import settings on the mask, offers to fix them if invalid + if (mask != null) + { + var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(mask)) as TextureImporter; + + if (importer != null) // Fails when using an internal texture + { +#if UNITY_5_5_OR_NEWER + bool valid = importer.anisoLevel == 0 + && importer.mipmapEnabled == false + //&& importer.alphaUsage == TextureImporterAlphaUsage.FromGrayScale + && importer.alphaSource == TextureImporterAlphaSource.FromGrayScale + && importer.textureCompression == TextureImporterCompression.Uncompressed + && importer.wrapMode == TextureWrapMode.Clamp; +#else + bool valid = importer.anisoLevel == 0 + && importer.mipmapEnabled == false + && importer.grayscaleToAlpha == true + && importer.textureFormat == TextureImporterFormat.Alpha8 + && importer.wrapMode == TextureWrapMode.Clamp; +#endif + + if (!valid) + { + EditorGUILayout.HelpBox("Invalid mask import settings.", MessageType.Warning); + + GUILayout.Space(-32); + using (new EditorGUILayout.HorizontalScope()) + { + GUILayout.FlexibleSpace(); + if (GUILayout.Button("Fix", GUILayout.Width(60))) + { + SetMaskImportSettings(importer); + AssetDatabase.Refresh(); + } + GUILayout.Space(8); + } + GUILayout.Space(11); + } + } + } + + EditorGUILayout.PropertyField(m_Mask); + EditorGUILayout.PropertyField(m_Opacity); + } + } + + void SetMaskImportSettings(TextureImporter importer) + { +#if UNITY_5_5_OR_NEWER + importer.textureType = TextureImporterType.SingleChannel; + //importer.alphaUsage = TextureImporterAlphaUsage.FromGrayScale; + importer.alphaSource = TextureImporterAlphaSource.FromGrayScale; + importer.textureCompression = TextureImporterCompression.Uncompressed; +#else + importer.textureType = TextureImporterType.Advanced; + importer.grayscaleToAlpha = true; + importer.textureFormat = TextureImporterFormat.Alpha8; +#endif + + importer.anisoLevel = 0; + importer.mipmapEnabled = false; + importer.wrapMode = TextureWrapMode.Clamp; + importer.SaveAndReimport(); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..40c13ca228ae9a58e20bcf27cd22fe8302918009 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Models/VignetteModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 745ad42620dabf04b94761acc86189ba +timeCreated: 1467190133 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Monitors.meta b/Assets/Third Party Assets/PostProcessing/Editor/Monitors.meta new file mode 100644 index 0000000000000000000000000000000000000000..439adb9bd8859979330b77badd1af40755c09920 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Monitors.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e31078d57ac582944ad5e1e76a84f36a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs new file mode 100644 index 0000000000000000000000000000000000000000..3748a688a9b87021b051669cdd7f927ca47d41e6 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs @@ -0,0 +1,338 @@ +using UnityEditorInternal; +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + using HistogramMode = PostProcessingProfile.MonitorSettings.HistogramMode; + + public class HistogramMonitor : PostProcessingMonitor + { + static GUIContent s_MonitorTitle = new GUIContent("Histogram"); + + ComputeShader m_ComputeShader; + ComputeBuffer m_Buffer; + Material m_Material; + RenderTexture m_HistogramTexture; + Rect m_MonitorAreaRect; + + public HistogramMonitor() + { + m_ComputeShader = EditorResources.Load<ComputeShader>("Monitors/HistogramCompute.compute"); + } + + public override void Dispose() + { + GraphicsUtils.Destroy(m_Material); + GraphicsUtils.Destroy(m_HistogramTexture); + + if (m_Buffer != null) + m_Buffer.Release(); + + m_Material = null; + m_HistogramTexture = null; + m_Buffer = null; + } + + public override bool IsSupported() + { + return m_ComputeShader != null && GraphicsUtils.supportsDX11; + } + + public override GUIContent GetMonitorTitle() + { + return s_MonitorTitle; + } + + public override void OnMonitorSettings() + { + EditorGUI.BeginChangeCheck(); + + bool refreshOnPlay = m_MonitorSettings.refreshOnPlay; + var mode = m_MonitorSettings.histogramMode; + + refreshOnPlay = GUILayout.Toggle(refreshOnPlay, new GUIContent(FxStyles.playIcon, "Keep refreshing the histogram in play mode; this may impact performances."), FxStyles.preButton); + mode = (HistogramMode)EditorGUILayout.EnumPopup(mode, FxStyles.preDropdown, GUILayout.MaxWidth(100f)); + + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(m_BaseEditor.serializedObject.targetObject, "Histogram Settings Changed"); + m_MonitorSettings.refreshOnPlay = refreshOnPlay; + m_MonitorSettings.histogramMode = mode; + InternalEditorUtility.RepaintAllViews(); + } + } + + public override void OnMonitorGUI(Rect r) + { + if (Event.current.type == EventType.Repaint) + { + // If m_MonitorAreaRect isn't set the preview was just opened so refresh the render to get the histogram data + if (Mathf.Approximately(m_MonitorAreaRect.width, 0) && Mathf.Approximately(m_MonitorAreaRect.height, 0)) + InternalEditorUtility.RepaintAllViews(); + + // Sizing + float width = m_HistogramTexture != null + ? Mathf.Min(m_HistogramTexture.width, r.width - 65f) + : r.width; + float height = m_HistogramTexture != null + ? Mathf.Min(m_HistogramTexture.height, r.height - 45f) + : r.height; + + m_MonitorAreaRect = new Rect( + Mathf.Floor(r.x + r.width / 2f - width / 2f), + Mathf.Floor(r.y + r.height / 2f - height / 2f - 5f), + width, height + ); + + if (m_HistogramTexture != null) + { + Graphics.DrawTexture(m_MonitorAreaRect, m_HistogramTexture); + + var color = Color.white; + const float kTickSize = 5f; + + // Rect, lines & ticks points + if (m_MonitorSettings.histogramMode == HistogramMode.RGBSplit) + { + // A B C D E + // N F + // M G + // L K J I H + + var A = new Vector3(m_MonitorAreaRect.x - 1f, m_MonitorAreaRect.y - 1f); + var E = new Vector3(A.x + m_MonitorAreaRect.width + 2f, m_MonitorAreaRect.y - 1f); + var H = new Vector3(E.x, E.y + m_MonitorAreaRect.height + 2f); + var L = new Vector3(A.x, H.y); + + var N = new Vector3(A.x, A.y + (L.y - A.y) / 3f); + var M = new Vector3(A.x, A.y + (L.y - A.y) * 2f / 3f); + var F = new Vector3(E.x, E.y + (H.y - E.y) / 3f); + var G = new Vector3(E.x, E.y + (H.y - E.y) * 2f / 3f); + + var C = new Vector3(A.x + (E.x - A.x) / 2f, A.y); + var J = new Vector3(L.x + (H.x - L.x) / 2f, L.y); + + var B = new Vector3(A.x + (C.x - A.x) / 2f, A.y); + var D = new Vector3(C.x + (E.x - C.x) / 2f, C.y); + var I = new Vector3(J.x + (H.x - J.x) / 2f, J.y); + var K = new Vector3(L.x + (J.x - L.x) / 2f, L.y); + + // Borders + Handles.color = color; + Handles.DrawLine(A, E); + Handles.DrawLine(E, H); + Handles.DrawLine(H, L); + Handles.DrawLine(L, new Vector3(A.x, A.y - 1f)); + + // Vertical ticks + Handles.DrawLine(A, new Vector3(A.x - kTickSize, A.y)); + Handles.DrawLine(N, new Vector3(N.x - kTickSize, N.y)); + Handles.DrawLine(M, new Vector3(M.x - kTickSize, M.y)); + Handles.DrawLine(L, new Vector3(L.x - kTickSize, L.y)); + + Handles.DrawLine(E, new Vector3(E.x + kTickSize, E.y)); + Handles.DrawLine(F, new Vector3(F.x + kTickSize, F.y)); + Handles.DrawLine(G, new Vector3(G.x + kTickSize, G.y)); + Handles.DrawLine(H, new Vector3(H.x + kTickSize, H.y)); + + // Horizontal ticks + Handles.DrawLine(A, new Vector3(A.x, A.y - kTickSize)); + Handles.DrawLine(B, new Vector3(B.x, B.y - kTickSize)); + Handles.DrawLine(C, new Vector3(C.x, C.y - kTickSize)); + Handles.DrawLine(D, new Vector3(D.x, D.y - kTickSize)); + Handles.DrawLine(E, new Vector3(E.x, E.y - kTickSize)); + + Handles.DrawLine(L, new Vector3(L.x, L.y + kTickSize)); + Handles.DrawLine(K, new Vector3(K.x, K.y + kTickSize)); + Handles.DrawLine(J, new Vector3(J.x, J.y + kTickSize)); + Handles.DrawLine(I, new Vector3(I.x, I.y + kTickSize)); + Handles.DrawLine(H, new Vector3(H.x, H.y + kTickSize)); + + // Separators + Handles.DrawLine(N, F); + Handles.DrawLine(M, G); + + // Labels + GUI.color = color; + GUI.Label(new Rect(L.x - 15f, L.y + kTickSize - 4f, 30f, 30f), "0.0", FxStyles.tickStyleCenter); + GUI.Label(new Rect(J.x - 15f, J.y + kTickSize - 4f, 30f, 30f), "0.5", FxStyles.tickStyleCenter); + GUI.Label(new Rect(H.x - 15f, H.y + kTickSize - 4f, 30f, 30f), "1.0", FxStyles.tickStyleCenter); + } + else + { + // A B C D E + // P F + // O G + // N H + // M L K J I + + var A = new Vector3(m_MonitorAreaRect.x, m_MonitorAreaRect.y); + var E = new Vector3(A.x + m_MonitorAreaRect.width + 1f, m_MonitorAreaRect.y); + var I = new Vector3(E.x, E.y + m_MonitorAreaRect.height + 1f); + var M = new Vector3(A.x, I.y); + + var C = new Vector3(A.x + (E.x - A.x) / 2f, A.y); + var G = new Vector3(E.x, E.y + (I.y - E.y) / 2f); + var K = new Vector3(M.x + (I.x - M.x) / 2f, M.y); + var O = new Vector3(A.x, A.y + (M.y - A.y) / 2f); + + var P = new Vector3(A.x, A.y + (O.y - A.y) / 2f); + var F = new Vector3(E.x, E.y + (G.y - E.y) / 2f); + var N = new Vector3(A.x, O.y + (M.y - O.y) / 2f); + var H = new Vector3(E.x, G.y + (I.y - G.y) / 2f); + + var B = new Vector3(A.x + (C.x - A.x) / 2f, A.y); + var L = new Vector3(M.x + (K.x - M.x) / 2f, M.y); + var D = new Vector3(C.x + (E.x - C.x) / 2f, A.y); + var J = new Vector3(K.x + (I.x - K.x) / 2f, M.y); + + // Borders + Handles.color = color; + Handles.DrawLine(A, E); + Handles.DrawLine(E, I); + Handles.DrawLine(I, M); + Handles.DrawLine(M, new Vector3(A.x, A.y - 1f)); + + // Vertical ticks + Handles.DrawLine(A, new Vector3(A.x - kTickSize, A.y)); + Handles.DrawLine(P, new Vector3(P.x - kTickSize, P.y)); + Handles.DrawLine(O, new Vector3(O.x - kTickSize, O.y)); + Handles.DrawLine(N, new Vector3(N.x - kTickSize, N.y)); + Handles.DrawLine(M, new Vector3(M.x - kTickSize, M.y)); + + Handles.DrawLine(E, new Vector3(E.x + kTickSize, E.y)); + Handles.DrawLine(F, new Vector3(F.x + kTickSize, F.y)); + Handles.DrawLine(G, new Vector3(G.x + kTickSize, G.y)); + Handles.DrawLine(H, new Vector3(H.x + kTickSize, H.y)); + Handles.DrawLine(I, new Vector3(I.x + kTickSize, I.y)); + + // Horizontal ticks + Handles.DrawLine(A, new Vector3(A.x, A.y - kTickSize)); + Handles.DrawLine(B, new Vector3(B.x, B.y - kTickSize)); + Handles.DrawLine(C, new Vector3(C.x, C.y - kTickSize)); + Handles.DrawLine(D, new Vector3(D.x, D.y - kTickSize)); + Handles.DrawLine(E, new Vector3(E.x, E.y - kTickSize)); + + Handles.DrawLine(M, new Vector3(M.x, M.y + kTickSize)); + Handles.DrawLine(L, new Vector3(L.x, L.y + kTickSize)); + Handles.DrawLine(K, new Vector3(K.x, K.y + kTickSize)); + Handles.DrawLine(J, new Vector3(J.x, J.y + kTickSize)); + Handles.DrawLine(I, new Vector3(I.x, I.y + kTickSize)); + + // Labels + GUI.color = color; + GUI.Label(new Rect(A.x - kTickSize - 34f, A.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleRight); + GUI.Label(new Rect(O.x - kTickSize - 34f, O.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleRight); + GUI.Label(new Rect(M.x - kTickSize - 34f, M.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleRight); + + GUI.Label(new Rect(E.x + kTickSize + 4f, E.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleLeft); + GUI.Label(new Rect(G.x + kTickSize + 4f, G.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleLeft); + GUI.Label(new Rect(I.x + kTickSize + 4f, I.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleLeft); + + GUI.Label(new Rect(M.x - 15f, M.y + kTickSize - 4f, 30f, 30f), "0.0", FxStyles.tickStyleCenter); + GUI.Label(new Rect(K.x - 15f, K.y + kTickSize - 4f, 30f, 30f), "0.5", FxStyles.tickStyleCenter); + GUI.Label(new Rect(I.x - 15f, I.y + kTickSize - 4f, 30f, 30f), "1.0", FxStyles.tickStyleCenter); + } + } + } + } + + public override void OnFrameData(RenderTexture source) + { + if (Application.isPlaying && !m_MonitorSettings.refreshOnPlay) + return; + + if (Mathf.Approximately(m_MonitorAreaRect.width, 0) || Mathf.Approximately(m_MonitorAreaRect.height, 0)) + return; + + float ratio = (float)source.width / (float)source.height; + int h = 512; + int w = Mathf.FloorToInt(h * ratio); + + var rt = RenderTexture.GetTemporary(w, h, 0, source.format); + Graphics.Blit(source, rt); + ComputeHistogram(rt); + m_BaseEditor.Repaint(); + RenderTexture.ReleaseTemporary(rt); + } + + void CreateBuffer(int width, int height) + { + m_Buffer = new ComputeBuffer(width * height, sizeof(uint) << 2); + } + + void ComputeHistogram(RenderTexture source) + { + if (m_Buffer == null) + { + CreateBuffer(256, 1); + } + else if (m_Buffer.count != 256) + { + m_Buffer.Release(); + CreateBuffer(256, 1); + } + + if (m_Material == null) + { + m_Material = new Material(Shader.Find("Hidden/Post FX/Monitors/Histogram Render")) { hideFlags = HideFlags.DontSave }; + } + + var channels = Vector4.zero; + switch (m_MonitorSettings.histogramMode) + { + case HistogramMode.Red: channels.x = 1f; break; + case HistogramMode.Green: channels.y = 1f; break; + case HistogramMode.Blue: channels.z = 1f; break; + case HistogramMode.Luminance: channels.w = 1f; break; + default: channels = new Vector4(1f, 1f, 1f, 0f); break; + } + + var cs = m_ComputeShader; + + int kernel = cs.FindKernel("KHistogramClear"); + cs.SetBuffer(kernel, "_Histogram", m_Buffer); + cs.Dispatch(kernel, 1, 1, 1); + + kernel = cs.FindKernel("KHistogramGather"); + cs.SetBuffer(kernel, "_Histogram", m_Buffer); + cs.SetTexture(kernel, "_Source", source); + cs.SetInt("_IsLinear", GraphicsUtils.isLinearColorSpace ? 1 : 0); + cs.SetVector("_Res", new Vector4(source.width, source.height, 0f, 0f)); + cs.SetVector("_Channels", channels); + cs.Dispatch(kernel, Mathf.CeilToInt(source.width / 16f), Mathf.CeilToInt(source.height / 16f), 1); + + kernel = cs.FindKernel("KHistogramScale"); + cs.SetBuffer(kernel, "_Histogram", m_Buffer); + cs.Dispatch(kernel, 1, 1, 1); + + if (m_HistogramTexture == null || m_HistogramTexture.width != source.width || m_HistogramTexture.height != source.height) + { + GraphicsUtils.Destroy(m_HistogramTexture); + m_HistogramTexture = new RenderTexture(source.width, source.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear) + { + hideFlags = HideFlags.DontSave, + wrapMode = TextureWrapMode.Clamp, + filterMode = FilterMode.Bilinear + }; + } + + m_Material.SetBuffer("_Histogram", m_Buffer); + m_Material.SetVector("_Size", new Vector2(m_HistogramTexture.width, m_HistogramTexture.height)); + m_Material.SetColor("_ColorR", new Color(1f, 0f, 0f, 1f)); + m_Material.SetColor("_ColorG", new Color(0f, 1f, 0f, 1f)); + m_Material.SetColor("_ColorB", new Color(0f, 0f, 1f, 1f)); + m_Material.SetColor("_ColorL", new Color(1f, 1f, 1f, 1f)); + m_Material.SetInt("_Channel", (int)m_MonitorSettings.histogramMode); + + int pass = 0; + if (m_MonitorSettings.histogramMode == HistogramMode.RGBMerged) + pass = 1; + else if (m_MonitorSettings.histogramMode == HistogramMode.RGBSplit) + pass = 2; + + Graphics.Blit(null, m_HistogramTexture, m_Material, pass); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a88031e803b7761ae15c6a25fc8c9de065ff7d33 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/HistogramMonitor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4581c45ac4aa2264187087659a4cc252 +timeCreated: 1460031632 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs new file mode 100644 index 0000000000000000000000000000000000000000..03494b107554ce250d7d7bf779c7a2c230f1705a --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs @@ -0,0 +1,257 @@ +using UnityEditorInternal; +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + public class ParadeMonitor : PostProcessingMonitor + { + static GUIContent s_MonitorTitle = new GUIContent("Parade"); + + ComputeShader m_ComputeShader; + ComputeBuffer m_Buffer; + Material m_Material; + RenderTexture m_WaveformTexture; + Rect m_MonitorAreaRect; + + public ParadeMonitor() + { + m_ComputeShader = EditorResources.Load<ComputeShader>("Monitors/WaveformCompute.compute"); + } + + public override void Dispose() + { + GraphicsUtils.Destroy(m_Material); + GraphicsUtils.Destroy(m_WaveformTexture); + + if (m_Buffer != null) + m_Buffer.Release(); + + m_Material = null; + m_WaveformTexture = null; + m_Buffer = null; + } + + public override bool IsSupported() + { + return m_ComputeShader != null && GraphicsUtils.supportsDX11; + } + + public override GUIContent GetMonitorTitle() + { + return s_MonitorTitle; + } + + public override void OnMonitorSettings() + { + EditorGUI.BeginChangeCheck(); + + bool refreshOnPlay = m_MonitorSettings.refreshOnPlay; + float exposure = m_MonitorSettings.paradeExposure; + + refreshOnPlay = GUILayout.Toggle(refreshOnPlay, new GUIContent(FxStyles.playIcon, "Keep refreshing the parade in play mode; this may impact performances."), FxStyles.preButton); + exposure = GUILayout.HorizontalSlider(exposure, 0.05f, 0.3f, FxStyles.preSlider, FxStyles.preSliderThumb, GUILayout.Width(40f)); + + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(m_BaseEditor.serializedObject.targetObject, "Parade Settings Changed"); + m_MonitorSettings.refreshOnPlay = refreshOnPlay; + m_MonitorSettings.paradeExposure = exposure; + InternalEditorUtility.RepaintAllViews(); + } + } + + public override void OnMonitorGUI(Rect r) + { + if (Event.current.type == EventType.Repaint) + { + // If m_MonitorAreaRect isn't set the preview was just opened so refresh the render to get the waveform data + if (Mathf.Approximately(m_MonitorAreaRect.width, 0) && Mathf.Approximately(m_MonitorAreaRect.height, 0)) + InternalEditorUtility.RepaintAllViews(); + + // Sizing + float width = m_WaveformTexture != null + ? Mathf.Min(m_WaveformTexture.width, r.width - 65f) + : r.width; + float height = m_WaveformTexture != null + ? Mathf.Min(m_WaveformTexture.height, r.height - 45f) + : r.height; + + m_MonitorAreaRect = new Rect( + Mathf.Floor(r.x + r.width / 2f - width / 2f), + Mathf.Floor(r.y + r.height / 2f - height / 2f - 5f), + width, height + ); + + if (m_WaveformTexture != null) + { + m_Material.SetFloat("_Exposure", m_MonitorSettings.paradeExposure); + + var oldActive = RenderTexture.active; + Graphics.Blit(null, m_WaveformTexture, m_Material, 0); + RenderTexture.active = oldActive; + + Graphics.DrawTexture(m_MonitorAreaRect, m_WaveformTexture); + + var color = Color.white; + const float kTickSize = 5f; + + // Rect, lines & ticks points + // A O B P C Q D + // N E + // M F + // L G + // K T J S I R H + + var A = new Vector3(m_MonitorAreaRect.x, m_MonitorAreaRect.y); + var D = new Vector3(A.x + m_MonitorAreaRect.width + 1f, m_MonitorAreaRect.y); + var H = new Vector3(D.x, D.y + m_MonitorAreaRect.height + 1f); + var K = new Vector3(A.x, H.y); + + var F = new Vector3(D.x, D.y + (H.y - D.y) / 2f); + var M = new Vector3(A.x, A.y + (K.y - A.y) / 2f); + + var B = new Vector3(A.x + (D.x - A.x) / 3f, A.y); + var C = new Vector3(A.x + (D.x - A.x) * 2f / 3f, A.y); + var I = new Vector3(K.x + (H.x - K.x) * 2f / 3f, K.y); + var J = new Vector3(K.x + (H.x - K.x) / 3f, K.y); + + var N = new Vector3(A.x, A.y + (M.y - A.y) / 2f); + var L = new Vector3(A.x, M.y + (K.y - M.y) / 2f); + var E = new Vector3(D.x, D.y + (F.y - D.y) / 2f); + var G = new Vector3(D.x, F.y + (H.y - F.y) / 2f); + + var O = new Vector3(A.x + (B.x - A.x) / 2f, A.y); + var P = new Vector3(B.x + (C.x - B.x) / 2f, B.y); + var Q = new Vector3(C.x + (D.x - C.x) / 2f, C.y); + + var R = new Vector3(I.x + (H.x - I.x) / 2f, I.y); + var S = new Vector3(J.x + (I.x - J.x) / 2f, J.y); + var T = new Vector3(K.x + (J.x - K.x) / 2f, K.y); + + // Borders + Handles.color = color; + Handles.DrawLine(A, D); + Handles.DrawLine(D, H); + Handles.DrawLine(H, K); + Handles.DrawLine(K, new Vector3(A.x, A.y - 1f)); + + Handles.DrawLine(B, J); + Handles.DrawLine(C, I); + + // Vertical ticks + Handles.DrawLine(A, new Vector3(A.x - kTickSize, A.y)); + Handles.DrawLine(N, new Vector3(N.x - kTickSize, N.y)); + Handles.DrawLine(M, new Vector3(M.x - kTickSize, M.y)); + Handles.DrawLine(L, new Vector3(L.x - kTickSize, L.y)); + Handles.DrawLine(K, new Vector3(K.x - kTickSize, K.y)); + + Handles.DrawLine(D, new Vector3(D.x + kTickSize, D.y)); + Handles.DrawLine(E, new Vector3(E.x + kTickSize, E.y)); + Handles.DrawLine(F, new Vector3(F.x + kTickSize, F.y)); + Handles.DrawLine(G, new Vector3(G.x + kTickSize, G.y)); + Handles.DrawLine(H, new Vector3(H.x + kTickSize, H.y)); + + // Horizontal ticks + Handles.DrawLine(A, new Vector3(A.x, A.y - kTickSize)); + Handles.DrawLine(B, new Vector3(B.x, B.y - kTickSize)); + Handles.DrawLine(C, new Vector3(C.x, C.y - kTickSize)); + Handles.DrawLine(D, new Vector3(D.x, D.y - kTickSize)); + Handles.DrawLine(O, new Vector3(O.x, O.y - kTickSize)); + Handles.DrawLine(P, new Vector3(P.x, P.y - kTickSize)); + Handles.DrawLine(Q, new Vector3(Q.x, Q.y - kTickSize)); + + Handles.DrawLine(H, new Vector3(H.x, H.y + kTickSize)); + Handles.DrawLine(I, new Vector3(I.x, I.y + kTickSize)); + Handles.DrawLine(J, new Vector3(J.x, J.y + kTickSize)); + Handles.DrawLine(K, new Vector3(K.x, K.y + kTickSize)); + Handles.DrawLine(R, new Vector3(R.x, R.y + kTickSize)); + Handles.DrawLine(S, new Vector3(S.x, S.y + kTickSize)); + Handles.DrawLine(T, new Vector3(T.x, T.y + kTickSize)); + + // Labels + GUI.color = color; + GUI.Label(new Rect(A.x - kTickSize - 34f, A.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleRight); + GUI.Label(new Rect(M.x - kTickSize - 34f, M.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleRight); + GUI.Label(new Rect(K.x - kTickSize - 34f, K.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleRight); + + GUI.Label(new Rect(D.x + kTickSize + 4f, D.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleLeft); + GUI.Label(new Rect(F.x + kTickSize + 4f, F.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleLeft); + GUI.Label(new Rect(H.x + kTickSize + 4f, H.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleLeft); + } + } + } + + public override void OnFrameData(RenderTexture source) + { + if (Application.isPlaying && !m_MonitorSettings.refreshOnPlay) + return; + + if (Mathf.Approximately(m_MonitorAreaRect.width, 0) || Mathf.Approximately(m_MonitorAreaRect.height, 0)) + return; + + float ratio = ((float)source.width / (float)source.height) / 3f; + int h = 384; + int w = Mathf.FloorToInt(h * ratio); + + var rt = RenderTexture.GetTemporary(w, h, 0, source.format); + Graphics.Blit(source, rt); + ComputeWaveform(rt); + m_BaseEditor.Repaint(); + RenderTexture.ReleaseTemporary(rt); + } + + void CreateBuffer(int width, int height) + { + m_Buffer = new ComputeBuffer(width * height, sizeof(uint) << 2); + } + + void ComputeWaveform(RenderTexture source) + { + if (m_Buffer == null) + { + CreateBuffer(source.width, source.height); + } + else if (m_Buffer.count != (source.width * source.height)) + { + m_Buffer.Release(); + CreateBuffer(source.width, source.height); + } + + var channels = m_MonitorSettings.waveformY + ? new Vector4(0f, 0f, 0f, 1f) + : new Vector4(m_MonitorSettings.waveformR ? 1f : 0f, m_MonitorSettings.waveformG ? 1f : 0f, m_MonitorSettings.waveformB ? 1f : 0f, 0f); + + var cs = m_ComputeShader; + + int kernel = cs.FindKernel("KWaveformClear"); + cs.SetBuffer(kernel, "_Waveform", m_Buffer); + cs.Dispatch(kernel, source.width, 1, 1); + + kernel = cs.FindKernel("KWaveform"); + cs.SetBuffer(kernel, "_Waveform", m_Buffer); + cs.SetTexture(kernel, "_Source", source); + cs.SetInt("_IsLinear", GraphicsUtils.isLinearColorSpace ? 1 : 0); + cs.SetVector("_Channels", channels); + cs.Dispatch(kernel, source.width, 1, 1); + + if (m_WaveformTexture == null || m_WaveformTexture.width != (source.width * 3) || m_WaveformTexture.height != source.height) + { + GraphicsUtils.Destroy(m_WaveformTexture); + m_WaveformTexture = new RenderTexture(source.width * 3, source.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear) + { + hideFlags = HideFlags.DontSave, + wrapMode = TextureWrapMode.Clamp, + filterMode = FilterMode.Bilinear + }; + } + + if (m_Material == null) + m_Material = new Material(Shader.Find("Hidden/Post FX/Monitors/Parade Render")) { hideFlags = HideFlags.DontSave }; + + m_Material.SetBuffer("_Waveform", m_Buffer); + m_Material.SetVector("_Size", new Vector2(m_WaveformTexture.width, m_WaveformTexture.height)); + m_Material.SetVector("_Channels", channels); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..41ba865c05a9b7627c29cd8fe6348e6a4090c442 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/ParadeMonitor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b1f878f3742072e40a280683573bd0ee +timeCreated: 1460031643 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs new file mode 100644 index 0000000000000000000000000000000000000000..851454930396da3328e1af5574d9f9ea21e4f88b --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs @@ -0,0 +1,241 @@ +using UnityEditorInternal; +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + public class VectorscopeMonitor : PostProcessingMonitor + { + static GUIContent s_MonitorTitle = new GUIContent("Vectorscope"); + + ComputeShader m_ComputeShader; + ComputeBuffer m_Buffer; + Material m_Material; + RenderTexture m_VectorscopeTexture; + Rect m_MonitorAreaRect; + + public VectorscopeMonitor() + { + m_ComputeShader = EditorResources.Load<ComputeShader>("Monitors/VectorscopeCompute.compute"); + } + + public override void Dispose() + { + GraphicsUtils.Destroy(m_Material); + GraphicsUtils.Destroy(m_VectorscopeTexture); + + if (m_Buffer != null) + m_Buffer.Release(); + + m_Material = null; + m_VectorscopeTexture = null; + m_Buffer = null; + } + + public override bool IsSupported() + { + return m_ComputeShader != null && GraphicsUtils.supportsDX11; + } + + public override GUIContent GetMonitorTitle() + { + return s_MonitorTitle; + } + + public override void OnMonitorSettings() + { + EditorGUI.BeginChangeCheck(); + + bool refreshOnPlay = m_MonitorSettings.refreshOnPlay; + float exposure = m_MonitorSettings.vectorscopeExposure; + bool showBackground = m_MonitorSettings.vectorscopeShowBackground; + + refreshOnPlay = GUILayout.Toggle(refreshOnPlay, new GUIContent(FxStyles.playIcon, "Keep refreshing the vectorscope in play mode; this may impact performances."), FxStyles.preButton); + exposure = GUILayout.HorizontalSlider(exposure, 0.05f, 0.3f, FxStyles.preSlider, FxStyles.preSliderThumb, GUILayout.Width(40f)); + showBackground = GUILayout.Toggle(showBackground, new GUIContent(FxStyles.checkerIcon, "Show an YUV background in the vectorscope."), FxStyles.preButton); + + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(m_BaseEditor.serializedObject.targetObject, "Vectorscope Settings Changed"); + m_MonitorSettings.refreshOnPlay = refreshOnPlay; + m_MonitorSettings.vectorscopeExposure = exposure; + m_MonitorSettings.vectorscopeShowBackground = showBackground; + InternalEditorUtility.RepaintAllViews(); + } + } + + public override void OnMonitorGUI(Rect r) + { + if (Event.current.type == EventType.Repaint) + { + // If m_MonitorAreaRect isn't set the preview was just opened so refresh the render to get the vectoscope data + if (Mathf.Approximately(m_MonitorAreaRect.width, 0) && Mathf.Approximately(m_MonitorAreaRect.height, 0)) + InternalEditorUtility.RepaintAllViews(); + + // Sizing + float size = 0f; + + if (r.width < r.height) + { + size = m_VectorscopeTexture != null + ? Mathf.Min(m_VectorscopeTexture.width, r.width - 35f) + : r.width; + } + else + { + size = m_VectorscopeTexture != null + ? Mathf.Min(m_VectorscopeTexture.height, r.height - 25f) + : r.height; + } + + m_MonitorAreaRect = new Rect( + Mathf.Floor(r.x + r.width / 2f - size / 2f), + Mathf.Floor(r.y + r.height / 2f - size / 2f - 5f), + size, size + ); + + if (m_VectorscopeTexture != null) + { + m_Material.SetFloat("_Exposure", m_MonitorSettings.vectorscopeExposure); + + var oldActive = RenderTexture.active; + Graphics.Blit(null, m_VectorscopeTexture, m_Material, m_MonitorSettings.vectorscopeShowBackground ? 0 : 1); + RenderTexture.active = oldActive; + + Graphics.DrawTexture(m_MonitorAreaRect, m_VectorscopeTexture); + + var color = Color.white; + const float kTickSize = 10f; + const int kTickCount = 24; + + float radius = m_MonitorAreaRect.width / 2f; + float midX = m_MonitorAreaRect.x + radius; + float midY = m_MonitorAreaRect.y + radius; + var center = new Vector2(midX, midY); + + // Cross + color.a *= 0.5f; + Handles.color = color; + Handles.DrawLine(new Vector2(midX, m_MonitorAreaRect.y), new Vector2(midX, m_MonitorAreaRect.y + m_MonitorAreaRect.height)); + Handles.DrawLine(new Vector2(m_MonitorAreaRect.x, midY), new Vector2(m_MonitorAreaRect.x + m_MonitorAreaRect.width, midY)); + + if (m_MonitorAreaRect.width > 100f) + { + color.a = 1f; + + // Ticks + Handles.color = color; + for (int i = 0; i < kTickCount; i++) + { + float a = (float)i / (float)kTickCount; + float theta = a * (Mathf.PI * 2f); + float tx = Mathf.Cos(theta + (Mathf.PI / 2f)); + float ty = Mathf.Sin(theta - (Mathf.PI / 2f)); + var innerVec = center + new Vector2(tx, ty) * (radius - kTickSize); + var outerVec = center + new Vector2(tx, ty) * radius; + Handles.DrawAAPolyLine(3f, innerVec, outerVec); + } + + // Labels (where saturation reaches 75%) + color.a = 1f; + var oldColor = GUI.color; + GUI.color = color * 2f; + + var point = new Vector2(-0.254f, -0.750f) * radius + center; + var rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f); + GUI.Label(rect, "[R]", FxStyles.tickStyleCenter); + + point = new Vector2(-0.497f, 0.629f) * radius + center; + rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f); + GUI.Label(rect, "[G]", FxStyles.tickStyleCenter); + + point = new Vector2(0.750f, 0.122f) * radius + center; + rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f); + GUI.Label(rect, "[B]", FxStyles.tickStyleCenter); + + point = new Vector2(-0.750f, -0.122f) * radius + center; + rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f); + GUI.Label(rect, "[Y]", FxStyles.tickStyleCenter); + + point = new Vector2(0.254f, 0.750f) * radius + center; + rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f); + GUI.Label(rect, "[C]", FxStyles.tickStyleCenter); + + point = new Vector2(0.497f, -0.629f) * radius + center; + rect = new Rect(point.x - 10f, point.y - 10f, 20f, 20f); + GUI.Label(rect, "[M]", FxStyles.tickStyleCenter); + GUI.color = oldColor; + } + } + } + } + + public override void OnFrameData(RenderTexture source) + { + if (Application.isPlaying && !m_MonitorSettings.refreshOnPlay) + return; + + if (Mathf.Approximately(m_MonitorAreaRect.width, 0) || Mathf.Approximately(m_MonitorAreaRect.height, 0)) + return; + + float ratio = (float)source.width / (float)source.height; + int h = 384; + int w = Mathf.FloorToInt(h * ratio); + + var rt = RenderTexture.GetTemporary(w, h, 0, source.format); + Graphics.Blit(source, rt); + ComputeVectorscope(rt); + m_BaseEditor.Repaint(); + RenderTexture.ReleaseTemporary(rt); + } + + void CreateBuffer(int width, int height) + { + m_Buffer = new ComputeBuffer(width * height, sizeof(uint)); + } + + void ComputeVectorscope(RenderTexture source) + { + if (m_Buffer == null) + { + CreateBuffer(source.width, source.height); + } + else if (m_Buffer.count != (source.width * source.height)) + { + m_Buffer.Release(); + CreateBuffer(source.width, source.height); + } + + var cs = m_ComputeShader; + + int kernel = cs.FindKernel("KVectorscopeClear"); + cs.SetBuffer(kernel, "_Vectorscope", m_Buffer); + cs.SetVector("_Res", new Vector4(source.width, source.height, 0f, 0f)); + cs.Dispatch(kernel, Mathf.CeilToInt(source.width / 32f), Mathf.CeilToInt(source.height / 32f), 1); + + kernel = cs.FindKernel("KVectorscope"); + cs.SetBuffer(kernel, "_Vectorscope", m_Buffer); + cs.SetTexture(kernel, "_Source", source); + cs.SetInt("_IsLinear", GraphicsUtils.isLinearColorSpace ? 1 : 0); + cs.SetVector("_Res", new Vector4(source.width, source.height, 0f, 0f)); + cs.Dispatch(kernel, Mathf.CeilToInt(source.width / 32f), Mathf.CeilToInt(source.height / 32f), 1); + + if (m_VectorscopeTexture == null || m_VectorscopeTexture.width != source.width || m_VectorscopeTexture.height != source.height) + { + GraphicsUtils.Destroy(m_VectorscopeTexture); + m_VectorscopeTexture = new RenderTexture(source.width, source.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear) + { + hideFlags = HideFlags.DontSave, + wrapMode = TextureWrapMode.Clamp, + filterMode = FilterMode.Bilinear + }; + } + + if (m_Material == null) + m_Material = new Material(Shader.Find("Hidden/Post FX/Monitors/Vectorscope Render")) { hideFlags = HideFlags.DontSave }; + + m_Material.SetBuffer("_Vectorscope", m_Buffer); + m_Material.SetVector("_Size", new Vector2(m_VectorscopeTexture.width, m_VectorscopeTexture.height)); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b700f61b18ae2170a4408be4389450525fb2e1a1 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/VectorscopeMonitor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 805119df0d94800418006c621cc99cc2 +timeCreated: 1461748750 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs new file mode 100644 index 0000000000000000000000000000000000000000..98d3f8eb37b6b52fd792fb2598d526e7bdc1c0bf --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs @@ -0,0 +1,280 @@ +using UnityEditorInternal; +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + public class WaveformMonitor : PostProcessingMonitor + { + static GUIContent s_MonitorTitle = new GUIContent("Waveform"); + + ComputeShader m_ComputeShader; + ComputeBuffer m_Buffer; + Material m_Material; + RenderTexture m_WaveformTexture; + Rect m_MonitorAreaRect; + + public WaveformMonitor() + { + m_ComputeShader = EditorResources.Load<ComputeShader>("Monitors/WaveformCompute.compute"); + } + + public override void Dispose() + { + GraphicsUtils.Destroy(m_Material); + GraphicsUtils.Destroy(m_WaveformTexture); + + if (m_Buffer != null) + m_Buffer.Release(); + + m_Material = null; + m_WaveformTexture = null; + m_Buffer = null; + } + + public override bool IsSupported() + { + return m_ComputeShader != null && GraphicsUtils.supportsDX11; + } + + public override GUIContent GetMonitorTitle() + { + return s_MonitorTitle; + } + + public override void OnMonitorSettings() + { + EditorGUI.BeginChangeCheck(); + + bool refreshOnPlay = m_MonitorSettings.refreshOnPlay; + float exposure = m_MonitorSettings.waveformExposure; + bool Y = m_MonitorSettings.waveformY; + bool R = m_MonitorSettings.waveformR; + bool G = m_MonitorSettings.waveformG; + bool B = m_MonitorSettings.waveformB; + + refreshOnPlay = GUILayout.Toggle(refreshOnPlay, new GUIContent(FxStyles.playIcon, "Keep refreshing the waveform in play mode; this may impact performances."), FxStyles.preButton); + + exposure = GUILayout.HorizontalSlider(exposure, 0.05f, 0.3f, FxStyles.preSlider, FxStyles.preSliderThumb, GUILayout.Width(40f)); + + Y = GUILayout.Toggle(Y, new GUIContent("Y", "Show the luminance waveform only."), FxStyles.preButton); + + if (Y) + { + R = false; + G = false; + B = false; + } + + R = GUILayout.Toggle(R, new GUIContent("R", "Show the red waveform."), FxStyles.preButton); + G = GUILayout.Toggle(G, new GUIContent("G", "Show the green waveform."), FxStyles.preButton); + B = GUILayout.Toggle(B, new GUIContent("B", "Show the blue waveform."), FxStyles.preButton); + + if (R || G || B) + Y = false; + + if (!Y && !R && !G && !B) + { + R = true; + G = true; + B = true; + } + + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(m_BaseEditor.serializedObject.targetObject, "Waveforme Settings Changed"); + m_MonitorSettings.refreshOnPlay = refreshOnPlay; + m_MonitorSettings.waveformExposure = exposure; + m_MonitorSettings.waveformY = Y; + m_MonitorSettings.waveformR = R; + m_MonitorSettings.waveformG = G; + m_MonitorSettings.waveformB = B; + InternalEditorUtility.RepaintAllViews(); + } + } + + public override void OnMonitorGUI(Rect r) + { + if (Event.current.type == EventType.Repaint) + { + // If m_MonitorAreaRect isn't set the preview was just opened so refresh the render to get the waveform data + if (Mathf.Approximately(m_MonitorAreaRect.width, 0) && Mathf.Approximately(m_MonitorAreaRect.height, 0)) + InternalEditorUtility.RepaintAllViews(); + + // Sizing + float width = m_WaveformTexture != null + ? Mathf.Min(m_WaveformTexture.width, r.width - 65f) + : r.width; + float height = m_WaveformTexture != null + ? Mathf.Min(m_WaveformTexture.height, r.height - 45f) + : r.height; + + m_MonitorAreaRect = new Rect( + Mathf.Floor(r.x + r.width / 2f - width / 2f), + Mathf.Floor(r.y + r.height / 2f - height / 2f - 5f), + width, height + ); + + if (m_WaveformTexture != null) + { + m_Material.SetFloat("_Exposure", m_MonitorSettings.waveformExposure); + + var oldActive = RenderTexture.active; + Graphics.Blit(null, m_WaveformTexture, m_Material, 0); + RenderTexture.active = oldActive; + + Graphics.DrawTexture(m_MonitorAreaRect, m_WaveformTexture); + + var color = Color.white; + const float kTickSize = 5f; + + // Rect, lines & ticks points + // A B C D E + // P F + // O G + // N H + // M L K J I + + var A = new Vector3(m_MonitorAreaRect.x, m_MonitorAreaRect.y); + var E = new Vector3(A.x + m_MonitorAreaRect.width + 1f, m_MonitorAreaRect.y); + var I = new Vector3(E.x, E.y + m_MonitorAreaRect.height + 1f); + var M = new Vector3(A.x, I.y); + + var C = new Vector3(A.x + (E.x - A.x) / 2f, A.y); + var G = new Vector3(E.x, E.y + (I.y - E.y) / 2f); + var K = new Vector3(M.x + (I.x - M.x) / 2f, M.y); + var O = new Vector3(A.x, A.y + (M.y - A.y) / 2f); + + var P = new Vector3(A.x, A.y + (O.y - A.y) / 2f); + var F = new Vector3(E.x, E.y + (G.y - E.y) / 2f); + var N = new Vector3(A.x, O.y + (M.y - O.y) / 2f); + var H = new Vector3(E.x, G.y + (I.y - G.y) / 2f); + + var B = new Vector3(A.x + (C.x - A.x) / 2f, A.y); + var L = new Vector3(M.x + (K.x - M.x) / 2f, M.y); + var D = new Vector3(C.x + (E.x - C.x) / 2f, A.y); + var J = new Vector3(K.x + (I.x - K.x) / 2f, M.y); + + // Borders + Handles.color = color; + Handles.DrawLine(A, E); + Handles.DrawLine(E, I); + Handles.DrawLine(I, M); + Handles.DrawLine(M, new Vector3(A.x, A.y - 1f)); + + // Vertical ticks + Handles.DrawLine(A, new Vector3(A.x - kTickSize, A.y)); + Handles.DrawLine(P, new Vector3(P.x - kTickSize, P.y)); + Handles.DrawLine(O, new Vector3(O.x - kTickSize, O.y)); + Handles.DrawLine(N, new Vector3(N.x - kTickSize, N.y)); + Handles.DrawLine(M, new Vector3(M.x - kTickSize, M.y)); + + Handles.DrawLine(E, new Vector3(E.x + kTickSize, E.y)); + Handles.DrawLine(F, new Vector3(F.x + kTickSize, F.y)); + Handles.DrawLine(G, new Vector3(G.x + kTickSize, G.y)); + Handles.DrawLine(H, new Vector3(H.x + kTickSize, H.y)); + Handles.DrawLine(I, new Vector3(I.x + kTickSize, I.y)); + + // Horizontal ticks + Handles.DrawLine(A, new Vector3(A.x, A.y - kTickSize)); + Handles.DrawLine(B, new Vector3(B.x, B.y - kTickSize)); + Handles.DrawLine(C, new Vector3(C.x, C.y - kTickSize)); + Handles.DrawLine(D, new Vector3(D.x, D.y - kTickSize)); + Handles.DrawLine(E, new Vector3(E.x, E.y - kTickSize)); + + Handles.DrawLine(M, new Vector3(M.x, M.y + kTickSize)); + Handles.DrawLine(L, new Vector3(L.x, L.y + kTickSize)); + Handles.DrawLine(K, new Vector3(K.x, K.y + kTickSize)); + Handles.DrawLine(J, new Vector3(J.x, J.y + kTickSize)); + Handles.DrawLine(I, new Vector3(I.x, I.y + kTickSize)); + + // Labels + GUI.color = color; + GUI.Label(new Rect(A.x - kTickSize - 34f, A.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleRight); + GUI.Label(new Rect(O.x - kTickSize - 34f, O.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleRight); + GUI.Label(new Rect(M.x - kTickSize - 34f, M.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleRight); + + GUI.Label(new Rect(E.x + kTickSize + 4f, E.y - 15f, 30f, 30f), "1.0", FxStyles.tickStyleLeft); + GUI.Label(new Rect(G.x + kTickSize + 4f, G.y - 15f, 30f, 30f), "0.5", FxStyles.tickStyleLeft); + GUI.Label(new Rect(I.x + kTickSize + 4f, I.y - 15f, 30f, 30f), "0.0", FxStyles.tickStyleLeft); + + GUI.Label(new Rect(M.x - 15f, M.y + kTickSize - 4f, 30f, 30f), "0.0", FxStyles.tickStyleCenter); + GUI.Label(new Rect(K.x - 15f, K.y + kTickSize - 4f, 30f, 30f), "0.5", FxStyles.tickStyleCenter); + GUI.Label(new Rect(I.x - 15f, I.y + kTickSize - 4f, 30f, 30f), "1.0", FxStyles.tickStyleCenter); + } + } + } + + public override void OnFrameData(RenderTexture source) + { + if (Application.isPlaying && !m_MonitorSettings.refreshOnPlay) + return; + + if (Mathf.Approximately(m_MonitorAreaRect.width, 0) || Mathf.Approximately(m_MonitorAreaRect.height, 0)) + return; + + float ratio = (float)source.width / (float)source.height; + int h = 384; + int w = Mathf.FloorToInt(h * ratio); + + var rt = RenderTexture.GetTemporary(w, h, 0, source.format); + Graphics.Blit(source, rt); + ComputeWaveform(rt); + m_BaseEditor.Repaint(); + RenderTexture.ReleaseTemporary(rt); + } + + void CreateBuffer(int width, int height) + { + m_Buffer = new ComputeBuffer(width * height, sizeof(uint) << 2); + } + + void ComputeWaveform(RenderTexture source) + { + if (m_Buffer == null) + { + CreateBuffer(source.width, source.height); + } + else if (m_Buffer.count != (source.width * source.height)) + { + m_Buffer.Release(); + CreateBuffer(source.width, source.height); + } + + var channels = m_MonitorSettings.waveformY + ? new Vector4(0f, 0f, 0f, 1f) + : new Vector4(m_MonitorSettings.waveformR ? 1f : 0f, m_MonitorSettings.waveformG ? 1f : 0f, m_MonitorSettings.waveformB ? 1f : 0f, 0f); + + var cs = m_ComputeShader; + + int kernel = cs.FindKernel("KWaveformClear"); + cs.SetBuffer(kernel, "_Waveform", m_Buffer); + cs.Dispatch(kernel, source.width, 1, 1); + + kernel = cs.FindKernel("KWaveform"); + cs.SetBuffer(kernel, "_Waveform", m_Buffer); + cs.SetTexture(kernel, "_Source", source); + cs.SetInt("_IsLinear", GraphicsUtils.isLinearColorSpace ? 1 : 0); + cs.SetVector("_Channels", channels); + cs.Dispatch(kernel, source.width, 1, 1); + + if (m_WaveformTexture == null || m_WaveformTexture.width != source.width || m_WaveformTexture.height != source.height) + { + GraphicsUtils.Destroy(m_WaveformTexture); + m_WaveformTexture = new RenderTexture(source.width, source.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear) + { + hideFlags = HideFlags.DontSave, + wrapMode = TextureWrapMode.Clamp, + filterMode = FilterMode.Bilinear + }; + } + + if (m_Material == null) + m_Material = new Material(Shader.Find("Hidden/Post FX/Monitors/Waveform Render")) { hideFlags = HideFlags.DontSave }; + + m_Material.SetBuffer("_Waveform", m_Buffer); + m_Material.SetVector("_Size", new Vector2(m_WaveformTexture.width, m_WaveformTexture.height)); + m_Material.SetVector("_Channels", channels); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0c44bcee5dd413deb30a9201f5121c8c3141d215 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Monitors/WaveformMonitor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2d45bc7edb5916446b4fa1ae1b6f9065 +timeCreated: 1459957472 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..08550b2e544144c004a82ff5d53bb4dbd01f523e --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs @@ -0,0 +1,31 @@ +using System; +using System.Linq.Expressions; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + [CustomEditor(typeof(PostProcessingBehaviour))] + public class PostProcessingBehaviourEditor : Editor + { + SerializedProperty m_Profile; + + public void OnEnable() + { + m_Profile = FindSetting((PostProcessingBehaviour x) => x.profile); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(m_Profile); + + serializedObject.ApplyModifiedProperties(); + } + + SerializedProperty FindSetting<T, TValue>(Expression<Func<T, TValue>> expr) + { + return serializedObject.FindProperty(ReflectionUtils.GetFieldPath(expr)); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..5506e9d61e88521f824afda560f0071e035eba9d --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingBehaviourEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0c12e797b02402246a52aa270c45059b +timeCreated: 1476193645 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingFactory.cs b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..6ac50f2ad45276c701bea2a59fe8a233e2eb8aff --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingFactory.cs @@ -0,0 +1,35 @@ +using UnityEngine; +using UnityEngine.PostProcessing; +using UnityEditor.ProjectWindowCallback; +using System.IO; + +namespace UnityEditor.PostProcessing +{ + public class PostProcessingFactory + { + [MenuItem("Assets/Create/Post-Processing Profile", priority = 201)] + static void MenuCreatePostProcessingProfile() + { + var icon = EditorGUIUtility.FindTexture("ScriptableObject Icon"); + ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<DoCreatePostProcessingProfile>(), "New Post-Processing Profile.asset", icon, null); + } + + internal static PostProcessingProfile CreatePostProcessingProfileAtPath(string path) + { + var profile = ScriptableObject.CreateInstance<PostProcessingProfile>(); + profile.name = Path.GetFileName(path); + profile.fog.enabled = true; + AssetDatabase.CreateAsset(profile, path); + return profile; + } + } + + class DoCreatePostProcessingProfile : EndNameEditAction + { + public override void Action(int instanceId, string pathName, string resourceFile) + { + PostProcessingProfile profile = PostProcessingFactory.CreatePostProcessingProfileAtPath(pathName); + ProjectWindowUtil.ShowCreatedAsset(profile); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingFactory.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingFactory.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e723364a0d673161f4f74306f5624f26100ff1c2 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingFactory.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0dfcadb180d67014cb0a6e18d6b11f90 +timeCreated: 1466586271 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingInspector.cs b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingInspector.cs new file mode 100644 index 0000000000000000000000000000000000000000..b2baa947456d22ad2e46e9ab1d83c2e89e347d15 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingInspector.cs @@ -0,0 +1,208 @@ +using UnityEngine; +using UnityEngine.PostProcessing; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace UnityEditor.PostProcessing +{ + //[CanEditMultipleObjects] + [CustomEditor(typeof(PostProcessingProfile))] + public class PostProcessingInspector : Editor + { + static GUIContent s_PreviewTitle = new GUIContent("Monitors"); + + PostProcessingProfile m_ConcreteTarget + { + get { return target as PostProcessingProfile; } + } + + int m_CurrentMonitorID + { + get { return m_ConcreteTarget.monitors.currentMonitorID; } + set { m_ConcreteTarget.monitors.currentMonitorID = value; } + } + + List<PostProcessingMonitor> m_Monitors; + GUIContent[] m_MonitorNames; + Dictionary<PostProcessingModelEditor, PostProcessingModel> m_CustomEditors = new Dictionary<PostProcessingModelEditor, PostProcessingModel>(); + + public bool IsInteractivePreviewOpened { get; private set; } + + void OnEnable() + { + if (target == null) + return; + + // Aggregate custom post-fx editors + var assembly = Assembly.GetAssembly(typeof(PostProcessingInspector)); + + var editorTypes = assembly.GetTypes() + .Where(x => x.IsDefined(typeof(PostProcessingModelEditorAttribute), false)); + + var customEditors = new Dictionary<Type, PostProcessingModelEditor>(); + foreach (var editor in editorTypes) + { + var attr = (PostProcessingModelEditorAttribute)editor.GetCustomAttributes(typeof(PostProcessingModelEditorAttribute), false)[0]; + var effectType = attr.type; + var alwaysEnabled = attr.alwaysEnabled; + + var editorInst = (PostProcessingModelEditor)Activator.CreateInstance(editor); + editorInst.alwaysEnabled = alwaysEnabled; + editorInst.profile = target as PostProcessingProfile; + editorInst.inspector = this; + customEditors.Add(effectType, editorInst); + } + + // ... and corresponding models + var baseType = target.GetType(); + var property = serializedObject.GetIterator(); + + while (property.Next(true)) + { + if (!property.hasChildren) + continue; + + var type = baseType; + var srcObject = ReflectionUtils.GetFieldValueFromPath(serializedObject.targetObject, ref type, property.propertyPath); + + if (srcObject == null) + continue; + + PostProcessingModelEditor editor; + if (customEditors.TryGetValue(type, out editor)) + { + var effect = (PostProcessingModel)srcObject; + + if (editor.alwaysEnabled) + effect.enabled = editor.alwaysEnabled; + + m_CustomEditors.Add(editor, effect); + editor.target = effect; + editor.serializedProperty = property.Copy(); + editor.OnPreEnable(); + } + } + + // Prepare monitors + m_Monitors = new List<PostProcessingMonitor>(); + + var monitors = new List<PostProcessingMonitor> + { + new HistogramMonitor(), + new WaveformMonitor(), + new ParadeMonitor(), + new VectorscopeMonitor() + }; + + var monitorNames = new List<GUIContent>(); + + foreach (var monitor in monitors) + { + if (monitor.IsSupported()) + { + monitor.Init(m_ConcreteTarget.monitors, this); + m_Monitors.Add(monitor); + monitorNames.Add(monitor.GetMonitorTitle()); + } + } + + m_MonitorNames = monitorNames.ToArray(); + + if (m_Monitors.Count > 0) + m_ConcreteTarget.monitors.onFrameEndEditorOnly = OnFrameEnd; + } + + void OnDisable() + { + if (m_CustomEditors != null) + { + foreach (var editor in m_CustomEditors.Keys) + editor.OnDisable(); + + m_CustomEditors.Clear(); + } + + if (m_Monitors != null) + { + foreach (var monitor in m_Monitors) + monitor.Dispose(); + + m_Monitors.Clear(); + } + + if (m_ConcreteTarget != null) + m_ConcreteTarget.monitors.onFrameEndEditorOnly = null; + } + + void OnFrameEnd(RenderTexture source) + { + if (!IsInteractivePreviewOpened) + return; + + if (m_CurrentMonitorID < m_Monitors.Count) + m_Monitors[m_CurrentMonitorID].OnFrameData(source); + + IsInteractivePreviewOpened = false; + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + // Handles undo/redo events first (before they get used by the editors' widgets) + var e = Event.current; + if (e.type == EventType.ValidateCommand && e.commandName == "UndoRedoPerformed") + { + foreach (var editor in m_CustomEditors) + editor.Value.OnValidate(); + } + + if (!m_ConcreteTarget.debugViews.IsModeActive(BuiltinDebugViewsModel.Mode.None)) + EditorGUILayout.HelpBox("A debug view is currently enabled. Changes done to an effect might not be visible.", MessageType.Info); + + foreach (var editor in m_CustomEditors) + { + EditorGUI.BeginChangeCheck(); + + editor.Key.OnGUI(); + + if (EditorGUI.EndChangeCheck()) + editor.Value.OnValidate(); + } + + serializedObject.ApplyModifiedProperties(); + } + + public override GUIContent GetPreviewTitle() + { + return s_PreviewTitle; + } + + public override bool HasPreviewGUI() + { + return GraphicsUtils.supportsDX11 && m_Monitors.Count > 0; + } + + public override void OnPreviewSettings() + { + using (new EditorGUILayout.HorizontalScope()) + { + if (m_CurrentMonitorID < m_Monitors.Count) + m_Monitors[m_CurrentMonitorID].OnMonitorSettings(); + + GUILayout.Space(5); + m_CurrentMonitorID = EditorGUILayout.Popup(m_CurrentMonitorID, m_MonitorNames, FxStyles.preDropdown, GUILayout.MaxWidth(100f)); + } + } + + public override void OnInteractivePreviewGUI(Rect r, GUIStyle background) + { + IsInteractivePreviewOpened = true; + + if (m_CurrentMonitorID < m_Monitors.Count) + m_Monitors[m_CurrentMonitorID].OnMonitorGUI(r); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingInspector.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingInspector.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..19a89a933c96c7cac0f4a1ad47493af43998075e --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingInspector.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 27fa95984763d9d47bbad59e7fdb66fe +timeCreated: 1467188923 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingModelEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingModelEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..844f9e893a2f9d280be42134e549604bb77f01dc --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingModelEditor.cs @@ -0,0 +1,79 @@ +using UnityEngine; +using UnityEngine.PostProcessing; +using System; +using System.Linq.Expressions; + +namespace UnityEditor.PostProcessing +{ + public class PostProcessingModelEditor + { + public PostProcessingModel target { get; internal set; } + public SerializedProperty serializedProperty { get; internal set; } + + protected SerializedProperty m_SettingsProperty; + protected SerializedProperty m_EnabledProperty; + + internal bool alwaysEnabled = false; + internal PostProcessingProfile profile; + internal PostProcessingInspector inspector; + + internal void OnPreEnable() + { + m_SettingsProperty = serializedProperty.FindPropertyRelative("m_Settings"); + m_EnabledProperty = serializedProperty.FindPropertyRelative("m_Enabled"); + + OnEnable(); + } + + public virtual void OnEnable() + {} + + public virtual void OnDisable() + {} + + internal void OnGUI() + { + GUILayout.Space(5); + + var display = alwaysEnabled + ? EditorGUIHelper.Header(serializedProperty.displayName, m_SettingsProperty, Reset) + : EditorGUIHelper.Header(serializedProperty.displayName, m_SettingsProperty, m_EnabledProperty, Reset); + + if (display) + { + EditorGUI.indentLevel++; + using (new EditorGUI.DisabledGroupScope(!m_EnabledProperty.boolValue)) + { + OnInspectorGUI(); + } + EditorGUI.indentLevel--; + } + } + + void Reset() + { + var obj = serializedProperty.serializedObject; + Undo.RecordObject(obj.targetObject, "Reset"); + target.Reset(); + EditorUtility.SetDirty(obj.targetObject); + } + + public virtual void OnInspectorGUI() + {} + + public void Repaint() + { + inspector.Repaint(); + } + + protected SerializedProperty FindSetting<T, TValue>(Expression<Func<T, TValue>> expr) + { + return m_SettingsProperty.FindPropertyRelative(ReflectionUtils.GetFieldPath(expr)); + } + + protected SerializedProperty FindSetting<T, TValue>(SerializedProperty prop, Expression<Func<T, TValue>> expr) + { + return prop.FindPropertyRelative(ReflectionUtils.GetFieldPath(expr)); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingModelEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingModelEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..d7d393bf29fd2075271529d7f88608f289367406 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingModelEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: afe296d4ede60a0479734dc8c7df82c2 +timeCreated: 1467188923 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingMonitor.cs b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingMonitor.cs new file mode 100644 index 0000000000000000000000000000000000000000..04edf8403c23fba6d8cb7fd865567c643aa7c241 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingMonitor.cs @@ -0,0 +1,34 @@ +using System; +using UnityEngine; + +namespace UnityEditor.PostProcessing +{ + using MonitorSettings = UnityEngine.PostProcessing.PostProcessingProfile.MonitorSettings; + + public abstract class PostProcessingMonitor : IDisposable + { + protected MonitorSettings m_MonitorSettings; + protected PostProcessingInspector m_BaseEditor; + + public void Init(MonitorSettings monitorSettings, PostProcessingInspector baseEditor) + { + m_MonitorSettings = monitorSettings; + m_BaseEditor = baseEditor; + } + + public abstract bool IsSupported(); + + public abstract GUIContent GetMonitorTitle(); + + public virtual void OnMonitorSettings() + {} + + public abstract void OnMonitorGUI(Rect r); + + public virtual void OnFrameData(RenderTexture source) + {} + + public virtual void Dispose() + {} + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingMonitor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingMonitor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..ac6616f2e35320f80f9753b59758f35193532ff4 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PostProcessingMonitor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 801186e9e649457469bcddd8ee391c71 +timeCreated: 1467188912 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers.meta b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers.meta new file mode 100644 index 0000000000000000000000000000000000000000..e5bee41fecbbb035ad582b1bde793c8578794a38 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ced92f1cc2085ae48acacc79a2b8e196 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs new file mode 100644 index 0000000000000000000000000000000000000000..a56c201faebf9678c82b85b663a14e2bd1bfb031 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs @@ -0,0 +1,36 @@ +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + [CustomPropertyDrawer(typeof(GetSetAttribute))] + sealed class GetSetDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + var attribute = (GetSetAttribute)base.attribute; + + EditorGUI.BeginChangeCheck(); + EditorGUI.PropertyField(position, property, label); + + if (EditorGUI.EndChangeCheck()) + { + attribute.dirty = true; + } + else if (attribute.dirty) + { + var parent = ReflectionUtils.GetParentObject(property.propertyPath, property.serializedObject.targetObject); + + var type = parent.GetType(); + var info = type.GetProperty(attribute.name); + + if (info == null) + Debug.LogError("Invalid property name \"" + attribute.name + "\""); + else + info.SetValue(parent, fieldInfo.GetValue(parent), null); + + attribute.dirty = false; + } + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4322afd8d255e49431e21be66e833d943d866108 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/GetSetDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e1a43b92f2bbd914ca2e6b4c6a5dba48 +timeCreated: 1460383963 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs new file mode 100644 index 0000000000000000000000000000000000000000..8a916fdcc6dc2413227d5b4c55802fe33981b06a --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs @@ -0,0 +1,29 @@ +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + [CustomPropertyDrawer(typeof(UnityEngine.PostProcessing.MinAttribute))] + sealed class MinDrawer : PropertyDrawer + { + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + UnityEngine.PostProcessing.MinAttribute attribute = (UnityEngine.PostProcessing.MinAttribute)base.attribute; + + if (property.propertyType == SerializedPropertyType.Integer) + { + int v = EditorGUI.IntField(position, label, property.intValue); + property.intValue = (int)Mathf.Max(v, attribute.min); + } + else if (property.propertyType == SerializedPropertyType.Float) + { + float v = EditorGUI.FloatField(position, label, property.floatValue); + property.floatValue = Mathf.Max(v, attribute.min); + } + else + { + EditorGUI.LabelField(position, label.text, "Use Min with float or int."); + } + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..488609b2512768e1b37d7bb3e91249c6d34f516f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/MinDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8995f52f410f0fb4cb1bdaa71a16e04e +timeCreated: 1467364278 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs new file mode 100644 index 0000000000000000000000000000000000000000..c86c88fdcab8bdc8c559e32056d2386002f83fc5 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs @@ -0,0 +1,244 @@ +using System.Collections.Generic; +using System.Reflection; +using UnityEngine; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + [CustomPropertyDrawer(typeof(TrackballGroupAttribute))] + sealed class TrackballGroupDrawer : PropertyDrawer + { + static Material s_Material; + + const int k_MinWheelSize = 80; + const int k_MaxWheelSize = 256; + + bool m_ResetState; + + // Cached trackball computation methods (for speed reasons) + static Dictionary<string, MethodInfo> m_TrackballMethods = new Dictionary<string, MethodInfo>(); + + internal static int m_Size + { + get + { + int size = Mathf.FloorToInt(EditorGUIUtility.currentViewWidth / 3f) - 18; + size = Mathf.Clamp(size, k_MinWheelSize, k_MaxWheelSize); + return size; + } + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + if (s_Material == null) + s_Material = new Material(Shader.Find("Hidden/Post FX/UI/Trackball")) { hideFlags = HideFlags.HideAndDontSave }; + + position = new Rect(position.x, position.y, position.width / 3f, position.height); + int size = m_Size; + position.x += 5f; + + var enumerator = property.GetEnumerator(); + while (enumerator.MoveNext()) + { + var prop = enumerator.Current as SerializedProperty; + if (prop == null || prop.propertyType != SerializedPropertyType.Color) + continue; + + OnWheelGUI(position, size, prop.Copy()); + position.x += position.width; + } + } + + void OnWheelGUI(Rect position, int size, SerializedProperty property) + { + if (Event.current.type == EventType.Layout) + return; + + var value = property.colorValue; + float offset = value.a; + + var wheelDrawArea = position; + wheelDrawArea.height = size; + + if (wheelDrawArea.width > wheelDrawArea.height) + { + wheelDrawArea.x += (wheelDrawArea.width - wheelDrawArea.height) / 2.0f; + wheelDrawArea.width = position.height; + } + + wheelDrawArea.width = wheelDrawArea.height; + + float hsize = size / 2f; + float radius = 0.38f * size; + Vector3 hsv; + Color.RGBToHSV(value, out hsv.x, out hsv.y, out hsv.z); + + if (Event.current.type == EventType.Repaint) + { + float scale = EditorGUIUtility.pixelsPerPoint; + + // Wheel texture + var oldRT = RenderTexture.active; + var rt = RenderTexture.GetTemporary((int)(size * scale), (int)(size * scale), 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear); + s_Material.SetFloat("_Offset", offset); + s_Material.SetFloat("_DisabledState", GUI.enabled ? 1f : 0.5f); + s_Material.SetVector("_Resolution", new Vector2(size * scale, size * scale / 2f)); + Graphics.Blit(null, rt, s_Material, EditorGUIUtility.isProSkin ? 0 : 1); + RenderTexture.active = oldRT; + + GUI.DrawTexture(wheelDrawArea, rt); + RenderTexture.ReleaseTemporary(rt); + + // Thumb + var thumbPos = Vector2.zero; + float theta = hsv.x * (Mathf.PI * 2f); + float len = hsv.y * radius; + thumbPos.x = Mathf.Cos(theta + (Mathf.PI / 2f)); + thumbPos.y = Mathf.Sin(theta - (Mathf.PI / 2f)); + thumbPos *= len; + var thumbSize = FxStyles.wheelThumbSize; + var thumbSizeH = thumbSize / 2f; + FxStyles.wheelThumb.Draw(new Rect(wheelDrawArea.x + hsize + thumbPos.x - thumbSizeH.x, wheelDrawArea.y + hsize + thumbPos.y - thumbSizeH.y, thumbSize.x, thumbSize.y), false, false, false, false); + } + + var bounds = wheelDrawArea; + bounds.x += hsize - radius; + bounds.y += hsize - radius; + bounds.width = bounds.height = radius * 2f; + hsv = GetInput(bounds, hsv, radius); + value = Color.HSVToRGB(hsv.x, hsv.y, 1f); + value.a = offset; + + // Luminosity booster + position = wheelDrawArea; + float oldX = position.x; + float oldW = position.width; + position.y += position.height + 4f; + position.x += (position.width - (position.width * 0.75f)) / 2f; + position.width = position.width * 0.75f; + position.height = EditorGUIUtility.singleLineHeight; + value.a = GUI.HorizontalSlider(position, value.a, -1f, 1f); + + // Advanced controls + var data = Vector3.zero; + + if (TryGetDisplayValue(value, property, out data)) + { + position.x = oldX; + position.y += position.height; + position.width = oldW / 3f; + + using (new EditorGUI.DisabledGroupScope(true)) + { + GUI.Label(position, data.x.ToString("F2"), EditorStyles.centeredGreyMiniLabel); + position.x += position.width; + GUI.Label(position, data.y.ToString("F2"), EditorStyles.centeredGreyMiniLabel); + position.x += position.width; + GUI.Label(position, data.z.ToString("F2"), EditorStyles.centeredGreyMiniLabel); + position.x += position.width; + } + } + + // Title + position.x = oldX; + position.y += position.height; + position.width = oldW; + GUI.Label(position, property.displayName, EditorStyles.centeredGreyMiniLabel); + + if (m_ResetState) + { + value = Color.clear; + m_ResetState = false; + } + + property.colorValue = value; + } + + bool TryGetDisplayValue(Color color, SerializedProperty property, out Vector3 output) + { + output = Vector3.zero; + MethodInfo method; + + if (!m_TrackballMethods.TryGetValue(property.name, out method)) + { + var field = ReflectionUtils.GetFieldInfoFromPath(property.serializedObject.targetObject, property.propertyPath); + + if (!field.IsDefined(typeof(TrackballAttribute), false)) + return false; + + var attr = (TrackballAttribute)field.GetCustomAttributes(typeof(TrackballAttribute), false)[0]; + const BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static; + method = typeof(ColorGradingComponent).GetMethod(attr.method, flags); + m_TrackballMethods.Add(property.name, method); + } + + if (method == null) + return false; + + output = (Vector3)method.Invoke(property.serializedObject.targetObject, new object[] { color }); + return true; + } + + static readonly int k_ThumbHash = "colorWheelThumb".GetHashCode(); + + Vector3 GetInput(Rect bounds, Vector3 hsv, float radius) + { + var e = Event.current; + var id = GUIUtility.GetControlID(k_ThumbHash, FocusType.Passive, bounds); + + var mousePos = e.mousePosition; + var relativePos = mousePos - new Vector2(bounds.x, bounds.y); + + if (e.type == EventType.MouseDown && GUIUtility.hotControl == 0 && bounds.Contains(mousePos)) + { + if (e.button == 0) + { + var center = new Vector2(bounds.x + radius, bounds.y + radius); + float dist = Vector2.Distance(center, mousePos); + + if (dist <= radius) + { + e.Use(); + GetWheelHueSaturation(relativePos.x, relativePos.y, radius, out hsv.x, out hsv.y); + GUIUtility.hotControl = id; + GUI.changed = true; + } + } + else if (e.button == 1) + { + e.Use(); + GUI.changed = true; + m_ResetState = true; + } + } + else if (e.type == EventType.MouseDrag && e.button == 0 && GUIUtility.hotControl == id) + { + e.Use(); + GUI.changed = true; + GetWheelHueSaturation(relativePos.x, relativePos.y, radius, out hsv.x, out hsv.y); + } + else if (e.rawType == EventType.MouseUp && e.button == 0 && GUIUtility.hotControl == id) + { + e.Use(); + GUIUtility.hotControl = 0; + } + + return hsv; + } + + void GetWheelHueSaturation(float x, float y, float radius, out float hue, out float saturation) + { + float dx = (x - radius) / radius; + float dy = (y - radius) / radius; + float d = Mathf.Sqrt(dx * dx + dy * dy); + hue = Mathf.Atan2(dx, -dy); + hue = 1f - ((hue > 0) ? hue : (Mathf.PI * 2f) + hue) / (Mathf.PI * 2f); + saturation = Mathf.Clamp01(d); + } + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) + { + return m_Size + 4f * 2f + EditorGUIUtility.singleLineHeight * 3f; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..7566a8b305765ab44fc8436531d84b4a57622443 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/PropertyDrawers/TrackballGroupDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a668d493c5ed56d448b53c19b2c3dfd2 +timeCreated: 1460563239 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Utils.meta b/Assets/Third Party Assets/PostProcessing/Editor/Utils.meta new file mode 100644 index 0000000000000000000000000000000000000000..ab9b9e040596f9ccb1f574fa4895f53b38784ff8 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Utils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b52c69ccefdae7545bfb4d0bf9b7df71 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Utils/CurveEditor.cs b/Assets/Third Party Assets/PostProcessing/Editor/Utils/CurveEditor.cs new file mode 100644 index 0000000000000000000000000000000000000000..98bd4de0de7afbc6718702b3973ed22e17fb7f2d --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Utils/CurveEditor.cs @@ -0,0 +1,847 @@ +using System; +using System.Collections.Generic; +using UnityEngine; + +namespace UnityEditor.PostProcessing +{ + public sealed class CurveEditor + { + #region Enums + + enum EditMode + { + None, + Moving, + TangentEdit + } + + enum Tangent + { + In, + Out + } + #endregion + + #region Structs + public struct Settings + { + public Rect bounds; + public RectOffset padding; + public Color selectionColor; + public float curvePickingDistance; + public float keyTimeClampingDistance; + + public static Settings defaultSettings + { + get + { + return new Settings + { + bounds = new Rect(0f, 0f, 1f, 1f), + padding = new RectOffset(10, 10, 10, 10), + selectionColor = Color.yellow, + curvePickingDistance = 6f, + keyTimeClampingDistance = 1e-4f + }; + } + } + } + + public struct CurveState + { + public bool visible; + public bool editable; + public uint minPointCount; + public float zeroKeyConstantValue; + public Color color; + public float width; + public float handleWidth; + public bool showNonEditableHandles; + public bool onlyShowHandlesOnSelection; + public bool loopInBounds; + + public static CurveState defaultState + { + get + { + return new CurveState + { + visible = true, + editable = true, + minPointCount = 2, + zeroKeyConstantValue = 0f, + color = Color.white, + width = 2f, + handleWidth = 2f, + showNonEditableHandles = true, + onlyShowHandlesOnSelection = false, + loopInBounds = false + }; + } + } + } + + public struct Selection + { + public SerializedProperty curve; + public int keyframeIndex; + public Keyframe? keyframe; + + public Selection(SerializedProperty curve, int keyframeIndex, Keyframe? keyframe) + { + this.curve = curve; + this.keyframeIndex = keyframeIndex; + this.keyframe = keyframe; + } + } + + internal struct MenuAction + { + internal SerializedProperty curve; + internal int index; + internal Vector3 position; + + internal MenuAction(SerializedProperty curve) + { + this.curve = curve; + this.index = -1; + this.position = Vector3.zero; + } + + internal MenuAction(SerializedProperty curve, int index) + { + this.curve = curve; + this.index = index; + this.position = Vector3.zero; + } + + internal MenuAction(SerializedProperty curve, Vector3 position) + { + this.curve = curve; + this.index = -1; + this.position = position; + } + } + #endregion + + #region Fields & properties + public Settings settings { get; private set; } + + Dictionary<SerializedProperty, CurveState> m_Curves; + Rect m_CurveArea; + + SerializedProperty m_SelectedCurve; + int m_SelectedKeyframeIndex = -1; + + EditMode m_EditMode = EditMode.None; + Tangent m_TangentEditMode; + + bool m_Dirty; + #endregion + + #region Constructors & destructors + public CurveEditor() + : this(Settings.defaultSettings) + {} + + public CurveEditor(Settings settings) + { + this.settings = settings; + m_Curves = new Dictionary<SerializedProperty, CurveState>(); + } + + #endregion + + #region Public API + public void Add(params SerializedProperty[] curves) + { + foreach (var curve in curves) + Add(curve, CurveState.defaultState); + } + + public void Add(SerializedProperty curve) + { + Add(curve, CurveState.defaultState); + } + + public void Add(SerializedProperty curve, CurveState state) + { + // Make sure the property is in fact an AnimationCurve + var animCurve = curve.animationCurveValue; + if (animCurve == null) + throw new ArgumentException("curve"); + + if (m_Curves.ContainsKey(curve)) + Debug.LogWarning("Curve has already been added to the editor"); + + m_Curves.Add(curve, state); + } + + public void Remove(SerializedProperty curve) + { + m_Curves.Remove(curve); + } + + public void RemoveAll() + { + m_Curves.Clear(); + } + + public CurveState GetCurveState(SerializedProperty curve) + { + CurveState state; + if (!m_Curves.TryGetValue(curve, out state)) + throw new KeyNotFoundException("curve"); + + return state; + } + + public void SetCurveState(SerializedProperty curve, CurveState state) + { + if (!m_Curves.ContainsKey(curve)) + throw new KeyNotFoundException("curve"); + + m_Curves[curve] = state; + } + + public Selection GetSelection() + { + Keyframe? key = null; + if (m_SelectedKeyframeIndex > -1) + { + var curve = m_SelectedCurve.animationCurveValue; + + if (m_SelectedKeyframeIndex >= curve.length) + m_SelectedKeyframeIndex = -1; + else + key = curve[m_SelectedKeyframeIndex]; + } + + return new Selection(m_SelectedCurve, m_SelectedKeyframeIndex, key); + } + + public void SetKeyframe(SerializedProperty curve, int keyframeIndex, Keyframe keyframe) + { + var animCurve = curve.animationCurveValue; + SetKeyframe(animCurve, keyframeIndex, keyframe); + SaveCurve(curve, animCurve); + } + + public bool OnGUI(Rect rect) + { + if (Event.current.type == EventType.Repaint) + m_Dirty = false; + + GUI.BeginClip(rect); + { + var area = new Rect(Vector2.zero, rect.size); + m_CurveArea = settings.padding.Remove(area); + + foreach (var curve in m_Curves) + OnCurveGUI(area, curve.Key, curve.Value); + + OnGeneralUI(area); + } + GUI.EndClip(); + + return m_Dirty; + } + + #endregion + + #region UI & events + + void OnCurveGUI(Rect rect, SerializedProperty curve, CurveState state) + { + // Discard invisible curves + if (!state.visible) + return; + + var animCurve = curve.animationCurveValue; + var keys = animCurve.keys; + var length = keys.Length; + + // Curve drawing + // Slightly dim non-editable curves + var color = state.color; + if (!state.editable) + color.a *= 0.5f; + + Handles.color = color; + var bounds = settings.bounds; + + if (length == 0) + { + var p1 = CurveToCanvas(new Vector3(bounds.xMin, state.zeroKeyConstantValue)); + var p2 = CurveToCanvas(new Vector3(bounds.xMax, state.zeroKeyConstantValue)); + Handles.DrawAAPolyLine(state.width, p1, p2); + } + else if (length == 1) + { + var p1 = CurveToCanvas(new Vector3(bounds.xMin, keys[0].value)); + var p2 = CurveToCanvas(new Vector3(bounds.xMax, keys[0].value)); + Handles.DrawAAPolyLine(state.width, p1, p2); + } + else + { + var prevKey = keys[0]; + for (int k = 1; k < length; k++) + { + var key = keys[k]; + var pts = BezierSegment(prevKey, key); + + if (float.IsInfinity(prevKey.outTangent) || float.IsInfinity(key.inTangent)) + { + var s = HardSegment(prevKey, key); + Handles.DrawAAPolyLine(state.width, s[0], s[1], s[2]); + } + else Handles.DrawBezier(pts[0], pts[3], pts[1], pts[2], color, null, state.width); + + prevKey = key; + } + + // Curve extents & loops + if (keys[0].time > bounds.xMin) + { + if (state.loopInBounds) + { + var p1 = keys[length - 1]; + p1.time -= settings.bounds.width; + var p2 = keys[0]; + var pts = BezierSegment(p1, p2); + + if (float.IsInfinity(p1.outTangent) || float.IsInfinity(p2.inTangent)) + { + var s = HardSegment(p1, p2); + Handles.DrawAAPolyLine(state.width, s[0], s[1], s[2]); + } + else Handles.DrawBezier(pts[0], pts[3], pts[1], pts[2], color, null, state.width); + } + else + { + var p1 = CurveToCanvas(new Vector3(bounds.xMin, keys[0].value)); + var p2 = CurveToCanvas(keys[0]); + Handles.DrawAAPolyLine(state.width, p1, p2); + } + } + + if (keys[length - 1].time < bounds.xMax) + { + if (state.loopInBounds) + { + var p1 = keys[length - 1]; + var p2 = keys[0]; + p2.time += settings.bounds.width; + var pts = BezierSegment(p1, p2); + + if (float.IsInfinity(p1.outTangent) || float.IsInfinity(p2.inTangent)) + { + var s = HardSegment(p1, p2); + Handles.DrawAAPolyLine(state.width, s[0], s[1], s[2]); + } + else Handles.DrawBezier(pts[0], pts[3], pts[1], pts[2], color, null, state.width); + } + else + { + var p1 = CurveToCanvas(keys[length - 1]); + var p2 = CurveToCanvas(new Vector3(bounds.xMax, keys[length - 1].value)); + Handles.DrawAAPolyLine(state.width, p1, p2); + } + } + } + + // Make sure selection is correct (undo can break it) + bool isCurrentlySelectedCurve = curve == m_SelectedCurve; + + if (isCurrentlySelectedCurve && m_SelectedKeyframeIndex >= length) + m_SelectedKeyframeIndex = -1; + + // Handles & keys + for (int k = 0; k < length; k++) + { + bool isCurrentlySelectedKeyframe = k == m_SelectedKeyframeIndex; + var e = Event.current; + + var pos = CurveToCanvas(keys[k]); + var hitRect = new Rect(pos.x - 8f, pos.y - 8f, 16f, 16f); + var offset = isCurrentlySelectedCurve + ? new RectOffset(5, 5, 5, 5) + : new RectOffset(6, 6, 6, 6); + + var outTangent = pos + CurveTangentToCanvas(keys[k].outTangent).normalized * 40f; + var inTangent = pos - CurveTangentToCanvas(keys[k].inTangent).normalized * 40f; + var inTangentHitRect = new Rect(inTangent.x - 7f, inTangent.y - 7f, 14f, 14f); + var outTangentHitrect = new Rect(outTangent.x - 7f, outTangent.y - 7f, 14f, 14f); + + // Draw + if (state.showNonEditableHandles) + { + if (e.type == EventType.Repaint) + { + var selectedColor = (isCurrentlySelectedCurve && isCurrentlySelectedKeyframe) + ? settings.selectionColor + : state.color; + + // Keyframe + EditorGUI.DrawRect(offset.Remove(hitRect), selectedColor); + + // Tangents + if (isCurrentlySelectedCurve && (!state.onlyShowHandlesOnSelection || (state.onlyShowHandlesOnSelection && isCurrentlySelectedKeyframe))) + { + Handles.color = selectedColor; + + if (k > 0 || state.loopInBounds) + { + Handles.DrawAAPolyLine(state.handleWidth, pos, inTangent); + EditorGUI.DrawRect(offset.Remove(inTangentHitRect), selectedColor); + } + + if (k < length - 1 || state.loopInBounds) + { + Handles.DrawAAPolyLine(state.handleWidth, pos, outTangent); + EditorGUI.DrawRect(offset.Remove(outTangentHitrect), selectedColor); + } + } + } + } + + // Events + if (state.editable) + { + // Keyframe move + if (m_EditMode == EditMode.Moving && e.type == EventType.MouseDrag && isCurrentlySelectedCurve && isCurrentlySelectedKeyframe) + { + EditMoveKeyframe(animCurve, keys, k); + } + + // Tangent editing + if (m_EditMode == EditMode.TangentEdit && e.type == EventType.MouseDrag && isCurrentlySelectedCurve && isCurrentlySelectedKeyframe) + { + bool alreadyBroken = !(Mathf.Approximately(keys[k].inTangent, keys[k].outTangent) || (float.IsInfinity(keys[k].inTangent) && float.IsInfinity(keys[k].outTangent))); + EditMoveTangent(animCurve, keys, k, m_TangentEditMode, e.shift || !(alreadyBroken || e.control)); + } + + // Keyframe selection & context menu + if (e.type == EventType.MouseDown && rect.Contains(e.mousePosition)) + { + if (hitRect.Contains(e.mousePosition)) + { + if (e.button == 0) + { + SelectKeyframe(curve, k); + m_EditMode = EditMode.Moving; + e.Use(); + } + else if (e.button == 1) + { + // Keyframe context menu + var menu = new GenericMenu(); + menu.AddItem(new GUIContent("Delete Key"), false, (x) => + { + var action = (MenuAction)x; + var curveValue = action.curve.animationCurveValue; + action.curve.serializedObject.Update(); + RemoveKeyframe(curveValue, action.index); + m_SelectedKeyframeIndex = -1; + SaveCurve(action.curve, curveValue); + action.curve.serializedObject.ApplyModifiedProperties(); + }, new MenuAction(curve, k)); + menu.ShowAsContext(); + e.Use(); + } + } + } + + // Tangent selection & edit mode + if (e.type == EventType.MouseDown && rect.Contains(e.mousePosition)) + { + if (inTangentHitRect.Contains(e.mousePosition) && (k > 0 || state.loopInBounds)) + { + SelectKeyframe(curve, k); + m_EditMode = EditMode.TangentEdit; + m_TangentEditMode = Tangent.In; + e.Use(); + } + else if (outTangentHitrect.Contains(e.mousePosition) && (k < length - 1 || state.loopInBounds)) + { + SelectKeyframe(curve, k); + m_EditMode = EditMode.TangentEdit; + m_TangentEditMode = Tangent.Out; + e.Use(); + } + } + + // Mouse up - clean up states + if (e.rawType == EventType.MouseUp && m_EditMode != EditMode.None) + { + m_EditMode = EditMode.None; + } + + // Set cursors + { + EditorGUIUtility.AddCursorRect(hitRect, MouseCursor.MoveArrow); + + if (k > 0 || state.loopInBounds) + EditorGUIUtility.AddCursorRect(inTangentHitRect, MouseCursor.RotateArrow); + + if (k < length - 1 || state.loopInBounds) + EditorGUIUtility.AddCursorRect(outTangentHitrect, MouseCursor.RotateArrow); + } + } + } + + Handles.color = Color.white; + SaveCurve(curve, animCurve); + } + + void OnGeneralUI(Rect rect) + { + var e = Event.current; + + // Selection + if (e.type == EventType.MouseDown) + { + GUI.FocusControl(null); + m_SelectedCurve = null; + m_SelectedKeyframeIndex = -1; + bool used = false; + + var hit = CanvasToCurve(e.mousePosition); + float curvePickValue = CurveToCanvas(hit).y; + + // Try and select a curve + foreach (var curve in m_Curves) + { + if (!curve.Value.editable || !curve.Value.visible) + continue; + + var prop = curve.Key; + var state = curve.Value; + var animCurve = prop.animationCurveValue; + float hitY = animCurve.length == 0 + ? state.zeroKeyConstantValue + : animCurve.Evaluate(hit.x); + + var curvePos = CurveToCanvas(new Vector3(hit.x, hitY)); + + if (Mathf.Abs(curvePos.y - curvePickValue) < settings.curvePickingDistance) + { + m_SelectedCurve = prop; + + if (e.clickCount == 2 && e.button == 0) + { + // Create a keyframe on double-click on this curve + EditCreateKeyframe(animCurve, hit, true, state.zeroKeyConstantValue); + SaveCurve(prop, animCurve); + } + else if (e.button == 1) + { + // Curve context menu + var menu = new GenericMenu(); + menu.AddItem(new GUIContent("Add Key"), false, (x) => + { + var action = (MenuAction)x; + var curveValue = action.curve.animationCurveValue; + action.curve.serializedObject.Update(); + EditCreateKeyframe(curveValue, hit, true, 0f); + SaveCurve(action.curve, curveValue); + action.curve.serializedObject.ApplyModifiedProperties(); + }, new MenuAction(prop, hit)); + menu.ShowAsContext(); + e.Use(); + used = true; + } + } + } + + if (e.clickCount == 2 && e.button == 0 && m_SelectedCurve == null) + { + // Create a keyframe on every curve on double-click + foreach (var curve in m_Curves) + { + if (!curve.Value.editable || !curve.Value.visible) + continue; + + var prop = curve.Key; + var state = curve.Value; + var animCurve = prop.animationCurveValue; + EditCreateKeyframe(animCurve, hit, e.alt, state.zeroKeyConstantValue); + SaveCurve(prop, animCurve); + } + } + else if (!used && e.button == 1) + { + // Global context menu + var menu = new GenericMenu(); + menu.AddItem(new GUIContent("Add Key At Position"), false, () => ContextMenuAddKey(hit, false)); + menu.AddItem(new GUIContent("Add Key On Curves"), false, () => ContextMenuAddKey(hit, true)); + menu.ShowAsContext(); + } + + e.Use(); + } + + // Delete selected key(s) + if (e.type == EventType.KeyDown && (e.keyCode == KeyCode.Delete || e.keyCode == KeyCode.Backspace)) + { + if (m_SelectedKeyframeIndex != -1 && m_SelectedCurve != null) + { + var animCurve = m_SelectedCurve.animationCurveValue; + var length = animCurve.length; + + if (m_Curves[m_SelectedCurve].minPointCount < length && length >= 0) + { + EditDeleteKeyframe(animCurve, m_SelectedKeyframeIndex); + m_SelectedKeyframeIndex = -1; + SaveCurve(m_SelectedCurve, animCurve); + } + + e.Use(); + } + } + } + + void SaveCurve(SerializedProperty prop, AnimationCurve curve) + { + prop.animationCurveValue = curve; + } + + void Invalidate() + { + m_Dirty = true; + } + + #endregion + + #region Keyframe manipulations + + void SelectKeyframe(SerializedProperty curve, int keyframeIndex) + { + m_SelectedKeyframeIndex = keyframeIndex; + m_SelectedCurve = curve; + Invalidate(); + } + + void ContextMenuAddKey(Vector3 hit, bool createOnCurve) + { + SerializedObject serializedObject = null; + + foreach (var curve in m_Curves) + { + if (!curve.Value.editable || !curve.Value.visible) + continue; + + var prop = curve.Key; + var state = curve.Value; + + if (serializedObject == null) + { + serializedObject = prop.serializedObject; + serializedObject.Update(); + } + + var animCurve = prop.animationCurveValue; + EditCreateKeyframe(animCurve, hit, createOnCurve, state.zeroKeyConstantValue); + SaveCurve(prop, animCurve); + } + + if (serializedObject != null) + serializedObject.ApplyModifiedProperties(); + + Invalidate(); + } + + void EditCreateKeyframe(AnimationCurve curve, Vector3 position, bool createOnCurve, float zeroKeyConstantValue) + { + float tangent = EvaluateTangent(curve, position.x); + + if (createOnCurve) + { + position.y = curve.length == 0 + ? zeroKeyConstantValue + : curve.Evaluate(position.x); + } + + AddKeyframe(curve, new Keyframe(position.x, position.y, tangent, tangent)); + } + + void EditDeleteKeyframe(AnimationCurve curve, int keyframeIndex) + { + RemoveKeyframe(curve, keyframeIndex); + } + + void AddKeyframe(AnimationCurve curve, Keyframe newValue) + { + curve.AddKey(newValue); + Invalidate(); + } + + void RemoveKeyframe(AnimationCurve curve, int keyframeIndex) + { + curve.RemoveKey(keyframeIndex); + Invalidate(); + } + + void SetKeyframe(AnimationCurve curve, int keyframeIndex, Keyframe newValue) + { + var keys = curve.keys; + + if (keyframeIndex > 0) + newValue.time = Mathf.Max(keys[keyframeIndex - 1].time + settings.keyTimeClampingDistance, newValue.time); + + if (keyframeIndex < keys.Length - 1) + newValue.time = Mathf.Min(keys[keyframeIndex + 1].time - settings.keyTimeClampingDistance, newValue.time); + + curve.MoveKey(keyframeIndex, newValue); + Invalidate(); + } + + void EditMoveKeyframe(AnimationCurve curve, Keyframe[] keys, int keyframeIndex) + { + var key = CanvasToCurve(Event.current.mousePosition); + float inTgt = keys[keyframeIndex].inTangent; + float outTgt = keys[keyframeIndex].outTangent; + SetKeyframe(curve, keyframeIndex, new Keyframe(key.x, key.y, inTgt, outTgt)); + } + + void EditMoveTangent(AnimationCurve curve, Keyframe[] keys, int keyframeIndex, Tangent targetTangent, bool linkTangents) + { + var pos = CanvasToCurve(Event.current.mousePosition); + + float time = keys[keyframeIndex].time; + float value = keys[keyframeIndex].value; + + pos -= new Vector3(time, value); + + if (targetTangent == Tangent.In && pos.x > 0f) + pos.x = 0f; + + if (targetTangent == Tangent.Out && pos.x < 0f) + pos.x = 0f; + + float tangent; + + if (Mathf.Approximately(pos.x, 0f)) + tangent = pos.y < 0f ? float.PositiveInfinity : float.NegativeInfinity; + else + tangent = pos.y / pos.x; + + float inTangent = keys[keyframeIndex].inTangent; + float outTangent = keys[keyframeIndex].outTangent; + + if (targetTangent == Tangent.In || linkTangents) + inTangent = tangent; + if (targetTangent == Tangent.Out || linkTangents) + outTangent = tangent; + + SetKeyframe(curve, keyframeIndex, new Keyframe(time, value, inTangent, outTangent)); + } + + #endregion + + #region Maths utilities + + Vector3 CurveToCanvas(Keyframe keyframe) + { + return CurveToCanvas(new Vector3(keyframe.time, keyframe.value)); + } + + Vector3 CurveToCanvas(Vector3 position) + { + var bounds = settings.bounds; + var output = new Vector3((position.x - bounds.x) / (bounds.xMax - bounds.x), (position.y - bounds.y) / (bounds.yMax - bounds.y)); + output.x = output.x * (m_CurveArea.xMax - m_CurveArea.xMin) + m_CurveArea.xMin; + output.y = (1f - output.y) * (m_CurveArea.yMax - m_CurveArea.yMin) + m_CurveArea.yMin; + return output; + } + + Vector3 CanvasToCurve(Vector3 position) + { + var bounds = settings.bounds; + var output = position; + output.x = (output.x - m_CurveArea.xMin) / (m_CurveArea.xMax - m_CurveArea.xMin); + output.y = (output.y - m_CurveArea.yMin) / (m_CurveArea.yMax - m_CurveArea.yMin); + output.x = Mathf.Lerp(bounds.x, bounds.xMax, output.x); + output.y = Mathf.Lerp(bounds.yMax, bounds.y, output.y); + return output; + } + + Vector3 CurveTangentToCanvas(float tangent) + { + if (!float.IsInfinity(tangent)) + { + var bounds = settings.bounds; + float ratio = (m_CurveArea.width / m_CurveArea.height) / ((bounds.xMax - bounds.x) / (bounds.yMax - bounds.y)); + return new Vector3(1f, -tangent / ratio).normalized; + } + + return float.IsPositiveInfinity(tangent) ? Vector3.up : Vector3.down; + } + + Vector3[] BezierSegment(Keyframe start, Keyframe end) + { + var segment = new Vector3[4]; + + segment[0] = CurveToCanvas(new Vector3(start.time, start.value)); + segment[3] = CurveToCanvas(new Vector3(end.time, end.value)); + + float middle = start.time + ((end.time - start.time) * 0.333333f); + float middle2 = start.time + ((end.time - start.time) * 0.666666f); + + segment[1] = CurveToCanvas(new Vector3(middle, ProjectTangent(start.time, start.value, start.outTangent, middle))); + segment[2] = CurveToCanvas(new Vector3(middle2, ProjectTangent(end.time, end.value, end.inTangent, middle2))); + + return segment; + } + + Vector3[] HardSegment(Keyframe start, Keyframe end) + { + var segment = new Vector3[3]; + + segment[0] = CurveToCanvas(start); + segment[1] = CurveToCanvas(new Vector3(end.time, start.value)); + segment[2] = CurveToCanvas(end); + + return segment; + } + + float ProjectTangent(float inPosition, float inValue, float inTangent, float projPosition) + { + return inValue + ((projPosition - inPosition) * inTangent); + } + + float EvaluateTangent(AnimationCurve curve, float time) + { + int prev = -1, next = 0; + for (int i = 0; i < curve.keys.Length; i++) + { + if (time > curve.keys[i].time) + { + prev = i; + next = i + 1; + } + else break; + } + + if (next == 0) + return 0f; + + if (prev == curve.keys.Length - 1) + return 0f; + + const float kD = 1e-3f; + float tp = Mathf.Max(time - kD, curve.keys[prev].time); + float tn = Mathf.Min(time + kD, curve.keys[next].time); + + float vp = curve.Evaluate(tp); + float vn = curve.Evaluate(tn); + + if (Mathf.Approximately(tn, tp)) + return (vn - vp > 0f) ? float.PositiveInfinity : float.NegativeInfinity; + + return (vn - vp) / (tn - tp); + } + + #endregion + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Utils/CurveEditor.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Utils/CurveEditor.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..284d6c71c9abea947b8ba0fa38b031a770451dee --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Utils/CurveEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: afb349ef0bffd144db2bdd25630f648e +timeCreated: 1472650750 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs b/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs new file mode 100644 index 0000000000000000000000000000000000000000..c0d4e1ecd5994fe001a4c6bc9249618c5979f8de --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs @@ -0,0 +1,194 @@ +using System; +using UnityEngine; +using System.Collections.Generic; +using System.Globalization; +using System.Reflection; +using UnityEngine.PostProcessing; + +namespace UnityEditor.PostProcessing +{ + public static class EditorGUIHelper + { + static EditorGUIHelper() + { + s_GUIContentCache = new Dictionary<string, GUIContent>(); + } + + #region GUIContent caching + + static Dictionary<string, GUIContent> s_GUIContentCache; + + public static GUIContent GetContent(string textAndTooltip) + { + if (string.IsNullOrEmpty(textAndTooltip)) + return GUIContent.none; + + GUIContent content; + + if (!s_GUIContentCache.TryGetValue(textAndTooltip, out content)) + { + var s = textAndTooltip.Split('|'); + content = new GUIContent(s[0]); + + if (s.Length > 1 && !string.IsNullOrEmpty(s[1])) + content.tooltip = s[1]; + + s_GUIContentCache.Add(textAndTooltip, content); + } + + return content; + } + + #endregion + + public static bool Header(string title, SerializedProperty group, Action resetAction) + { + var rect = GUILayoutUtility.GetRect(16f, 22f, FxStyles.header); + GUI.Box(rect, title, FxStyles.header); + + var display = group == null || group.isExpanded; + + var foldoutRect = new Rect(rect.x + 4f, rect.y + 2f, 13f, 13f); + var e = Event.current; + + var popupRect = new Rect(rect.x + rect.width - FxStyles.paneOptionsIcon.width - 5f, rect.y + FxStyles.paneOptionsIcon.height / 2f + 1f, FxStyles.paneOptionsIcon.width, FxStyles.paneOptionsIcon.height); + GUI.DrawTexture(popupRect, FxStyles.paneOptionsIcon); + + if (e.type == EventType.Repaint) + FxStyles.headerFoldout.Draw(foldoutRect, false, false, display, false); + + if (e.type == EventType.MouseDown) + { + if (popupRect.Contains(e.mousePosition)) + { + var popup = new GenericMenu(); + popup.AddItem(GetContent("Reset"), false, () => resetAction()); + popup.AddSeparator(string.Empty); + popup.AddItem(GetContent("Copy Settings"), false, () => CopySettings(group)); + + if (CanPaste(group)) + popup.AddItem(GetContent("Paste Settings"), false, () => PasteSettings(group)); + else + popup.AddDisabledItem(GetContent("Paste Settings")); + + popup.ShowAsContext(); + } + else if (rect.Contains(e.mousePosition) && group != null) + { + display = !display; + + if (group != null) + group.isExpanded = !group.isExpanded; + + e.Use(); + } + } + + return display; + } + + public static bool Header(string title, SerializedProperty group, SerializedProperty enabledField, Action resetAction) + { + var field = ReflectionUtils.GetFieldInfoFromPath(enabledField.serializedObject.targetObject, enabledField.propertyPath); + object parent = null; + PropertyInfo prop = null; + + if (field != null && field.IsDefined(typeof(GetSetAttribute), false)) + { + var attr = (GetSetAttribute)field.GetCustomAttributes(typeof(GetSetAttribute), false)[0]; + parent = ReflectionUtils.GetParentObject(enabledField.propertyPath, enabledField.serializedObject.targetObject); + prop = parent.GetType().GetProperty(attr.name); + } + + var display = group == null || group.isExpanded; + var enabled = enabledField.boolValue; + + var rect = GUILayoutUtility.GetRect(16f, 22f, FxStyles.header); + GUI.Box(rect, title, FxStyles.header); + + var toggleRect = new Rect(rect.x + 4f, rect.y + 4f, 13f, 13f); + var e = Event.current; + + var popupRect = new Rect(rect.x + rect.width - FxStyles.paneOptionsIcon.width - 5f, rect.y + FxStyles.paneOptionsIcon.height / 2f + 1f, FxStyles.paneOptionsIcon.width, FxStyles.paneOptionsIcon.height); + GUI.DrawTexture(popupRect, FxStyles.paneOptionsIcon); + + if (e.type == EventType.Repaint) + FxStyles.headerCheckbox.Draw(toggleRect, false, false, enabled, false); + + if (e.type == EventType.MouseDown) + { + const float kOffset = 2f; + toggleRect.x -= kOffset; + toggleRect.y -= kOffset; + toggleRect.width += kOffset * 2f; + toggleRect.height += kOffset * 2f; + + if (toggleRect.Contains(e.mousePosition)) + { + enabledField.boolValue = !enabledField.boolValue; + + if (prop != null) + prop.SetValue(parent, enabledField.boolValue, null); + + e.Use(); + } + else if (popupRect.Contains(e.mousePosition)) + { + var popup = new GenericMenu(); + popup.AddItem(GetContent("Reset"), false, () => resetAction()); + popup.AddSeparator(string.Empty); + popup.AddItem(GetContent("Copy Settings"), false, () => CopySettings(group)); + + if (CanPaste(group)) + popup.AddItem(GetContent("Paste Settings"), false, () => PasteSettings(group)); + else + popup.AddDisabledItem(GetContent("Paste Settings")); + + popup.ShowAsContext(); + } + else if (rect.Contains(e.mousePosition) && group != null) + { + display = !display; + group.isExpanded = !group.isExpanded; + e.Use(); + } + } + + return display; + } + + static void CopySettings(SerializedProperty settings) + { + var t = typeof(PostProcessingProfile); + var settingsStruct = ReflectionUtils.GetFieldValueFromPath(settings.serializedObject.targetObject, ref t, settings.propertyPath); + var serializedString = t.ToString() + '|' + JsonUtility.ToJson(settingsStruct); + EditorGUIUtility.systemCopyBuffer = serializedString; + } + + static bool CanPaste(SerializedProperty settings) + { + var data = EditorGUIUtility.systemCopyBuffer; + + if (string.IsNullOrEmpty(data)) + return false; + + var parts = data.Split('|'); + + if (string.IsNullOrEmpty(parts[0])) + return false; + + var field = ReflectionUtils.GetFieldInfoFromPath(settings.serializedObject.targetObject, settings.propertyPath); + return parts[0] == field.FieldType.ToString(); + } + + static void PasteSettings(SerializedProperty settings) + { + Undo.RecordObject(settings.serializedObject.targetObject, "Paste effect settings"); + var field = ReflectionUtils.GetFieldInfoFromPath(settings.serializedObject.targetObject, settings.propertyPath); + var json = EditorGUIUtility.systemCopyBuffer.Substring(field.FieldType.ToString().Length + 1); + var obj = JsonUtility.FromJson(json, field.FieldType); + var parent = ReflectionUtils.GetParentObject(settings.propertyPath, settings.serializedObject.targetObject); + field.SetValue(parent, obj, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, CultureInfo.CurrentCulture); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..fcd783eb394710fe2edb3a438a2a99106871e4c6 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorGUIHelper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7226e17fa48c86148a3d15584e21b4cb +timeCreated: 1460477750 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorResources.cs b/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorResources.cs new file mode 100644 index 0000000000000000000000000000000000000000..aea193cd8efed099fbad26194c9da76b776cd7f1 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorResources.cs @@ -0,0 +1,58 @@ +using UnityEngine; + +namespace UnityEditor.PostProcessing +{ + using UnityObject = Object; + + static class EditorResources + { + static string m_EditorResourcesPath = string.Empty; + + internal static string editorResourcesPath + { + get + { + if (string.IsNullOrEmpty(m_EditorResourcesPath)) + { + string path; + + if (SearchForEditorResourcesPath(out path)) + m_EditorResourcesPath = path; + else + Debug.LogError("Unable to locate editor resources. Make sure the PostProcessing package has been installed correctly."); + } + + return m_EditorResourcesPath; + } + } + + internal static T Load<T>(string name) + where T : UnityObject + { + return AssetDatabase.LoadAssetAtPath<T>(editorResourcesPath + name); + } + + static bool SearchForEditorResourcesPath(out string path) + { + path = string.Empty; + + string searchStr = "/PostProcessing/Editor Resources/"; + string str = null; + + foreach (var assetPath in AssetDatabase.GetAllAssetPaths()) + { + if (assetPath.Contains(searchStr)) + { + str = assetPath; + break; + } + } + + if (str == null) + return false; + + path = str.Substring(0, str.LastIndexOf(searchStr) + searchStr.Length); + return true; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorResources.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorResources.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4bfe35ee2be648d717eaea7e40cc51eb2b87fca1 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Utils/EditorResources.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a66d7b0165140a1439be89b5afc000fb +timeCreated: 1476177015 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Utils/FxStyles.cs b/Assets/Third Party Assets/PostProcessing/Editor/Utils/FxStyles.cs new file mode 100644 index 0000000000000000000000000000000000000000..e3a4dffc2a35fbf472e209148c6bf050039d8395 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Utils/FxStyles.cs @@ -0,0 +1,111 @@ +using UnityEngine; + +namespace UnityEditor.PostProcessing +{ + public static class FxStyles + { + public static GUIStyle tickStyleRight; + public static GUIStyle tickStyleLeft; + public static GUIStyle tickStyleCenter; + + public static GUIStyle preSlider; + public static GUIStyle preSliderThumb; + public static GUIStyle preButton; + public static GUIStyle preDropdown; + + public static GUIStyle preLabel; + public static GUIStyle hueCenterCursor; + public static GUIStyle hueRangeCursor; + + public static GUIStyle centeredBoldLabel; + public static GUIStyle wheelThumb; + public static Vector2 wheelThumbSize; + + public static GUIStyle header; + public static GUIStyle headerCheckbox; + public static GUIStyle headerFoldout; + + public static Texture2D playIcon; + public static Texture2D checkerIcon; + public static Texture2D paneOptionsIcon; + + public static GUIStyle centeredMiniLabel; + + static FxStyles() + { + tickStyleRight = new GUIStyle("Label") + { + alignment = TextAnchor.MiddleRight, + fontSize = 9 + }; + + tickStyleLeft = new GUIStyle("Label") + { + alignment = TextAnchor.MiddleLeft, + fontSize = 9 + }; + + tickStyleCenter = new GUIStyle("Label") + { + alignment = TextAnchor.MiddleCenter, + fontSize = 9 + }; + + preSlider = new GUIStyle("PreSlider"); + preSliderThumb = new GUIStyle("PreSliderThumb"); + preButton = new GUIStyle("PreButton"); + preDropdown = new GUIStyle("preDropdown"); + + preLabel = new GUIStyle("ShurikenLabel"); + + hueCenterCursor = new GUIStyle("ColorPicker2DThumb") + { + normal = { background = (Texture2D)EditorGUIUtility.LoadRequired("Builtin Skins/DarkSkin/Images/ShurikenPlus.png") }, + fixedWidth = 6, + fixedHeight = 6 + }; + + hueRangeCursor = new GUIStyle(hueCenterCursor) + { + normal = { background = (Texture2D)EditorGUIUtility.LoadRequired("Builtin Skins/DarkSkin/Images/CircularToggle_ON.png") } + }; + + wheelThumb = new GUIStyle("ColorPicker2DThumb"); + + centeredBoldLabel = new GUIStyle(GUI.skin.GetStyle("Label")) + { + alignment = TextAnchor.UpperCenter, + fontStyle = FontStyle.Bold + }; + + centeredMiniLabel = new GUIStyle(EditorStyles.centeredGreyMiniLabel) + { + alignment = TextAnchor.UpperCenter + }; + + wheelThumbSize = new Vector2( + !Mathf.Approximately(wheelThumb.fixedWidth, 0f) ? wheelThumb.fixedWidth : wheelThumb.padding.horizontal, + !Mathf.Approximately(wheelThumb.fixedHeight, 0f) ? wheelThumb.fixedHeight : wheelThumb.padding.vertical + ); + + header = new GUIStyle("ShurikenModuleTitle") + { + font = (new GUIStyle("Label")).font, + border = new RectOffset(15, 7, 4, 4), + fixedHeight = 22, + contentOffset = new Vector2(20f, -2f) + }; + + headerCheckbox = new GUIStyle("ShurikenCheckMark"); + headerFoldout = new GUIStyle("Foldout"); + + playIcon = (Texture2D)EditorGUIUtility.LoadRequired("Builtin Skins/DarkSkin/Images/IN foldout act.png"); + checkerIcon = (Texture2D)EditorGUIUtility.LoadRequired("Icons/CheckerFloor.png"); + + if (EditorGUIUtility.isProSkin) + paneOptionsIcon = (Texture2D)EditorGUIUtility.LoadRequired("Builtin Skins/DarkSkin/Images/pane options.png"); + else + paneOptionsIcon = (Texture2D)EditorGUIUtility.LoadRequired("Builtin Skins/LightSkin/Images/pane options.png"); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Utils/FxStyles.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Utils/FxStyles.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..c9c6a7e775bd2547bf3cbf617cefb8ce3e5ef957 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Utils/FxStyles.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8f31cf52f05e80c4ea48570d0c3c8f59 +timeCreated: 1461744717 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Utils/ReflectionUtils.cs b/Assets/Third Party Assets/PostProcessing/Editor/Utils/ReflectionUtils.cs new file mode 100644 index 0000000000000000000000000000000000000000..0dd92d1bbc3871aae3e23e1dd08380f42bff4026 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Utils/ReflectionUtils.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Reflection; +using System.Text; + +namespace UnityEditor.PostProcessing +{ + public static class ReflectionUtils + { + static Dictionary<KeyValuePair<object, string>, FieldInfo> s_FieldInfoFromPaths = new Dictionary<KeyValuePair<object, string>, FieldInfo>(); + + public static FieldInfo GetFieldInfoFromPath(object source, string path) + { + FieldInfo field = null; + var kvp = new KeyValuePair<object, string>(source, path); + + if (!s_FieldInfoFromPaths.TryGetValue(kvp, out field)) + { + var splittedPath = path.Split('.'); + var type = source.GetType(); + + foreach (var t in splittedPath) + { + field = type.GetField(t, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); + + if (field == null) + break; + + type = field.FieldType; + } + + s_FieldInfoFromPaths.Add(kvp, field); + } + + return field; + } + + public static string GetFieldPath<T, TValue>(Expression<Func<T, TValue>> expr) + { + MemberExpression me; + switch (expr.Body.NodeType) + { + case ExpressionType.Convert: + case ExpressionType.ConvertChecked: + var ue = expr.Body as UnaryExpression; + me = (ue != null ? ue.Operand : null) as MemberExpression; + break; + default: + me = expr.Body as MemberExpression; + break; + } + + var members = new List<string>(); + while (me != null) + { + members.Add(me.Member.Name); + me = me.Expression as MemberExpression; + } + + var sb = new StringBuilder(); + for (int i = members.Count - 1; i >= 0; i--) + { + sb.Append(members[i]); + if (i > 0) sb.Append('.'); + } + + return sb.ToString(); + } + + public static object GetFieldValue(object source, string name) + { + var type = source.GetType(); + + while (type != null) + { + var f = type.GetField(name, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); + if (f != null) + return f.GetValue(source); + + type = type.BaseType; + } + + return null; + } + + public static object GetFieldValueFromPath(object source, ref Type baseType, string path) + { + var splittedPath = path.Split('.'); + object srcObject = source; + + foreach (var t in splittedPath) + { + var fieldInfo = baseType.GetField(t, BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); + + if (fieldInfo == null) + { + baseType = null; + break; + } + + baseType = fieldInfo.FieldType; + srcObject = GetFieldValue(srcObject, t); + } + + return baseType == null + ? null + : srcObject; + } + + public static object GetParentObject(string path, object obj) + { + var fields = path.Split('.'); + + if (fields.Length == 1) + return obj; + + var info = obj.GetType().GetField(fields[0], BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); + obj = info.GetValue(obj); + + return GetParentObject(string.Join(".", fields, 1, fields.Length - 1), obj); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Editor/Utils/ReflectionUtils.cs.meta b/Assets/Third Party Assets/PostProcessing/Editor/Utils/ReflectionUtils.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..1d4e65604ab4967a48b236afc3420d19c8f28202 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Editor/Utils/ReflectionUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 71f7e805a7fc35046afbcf5c2639d116 +timeCreated: 1466604313 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime.meta b/Assets/Third Party Assets/PostProcessing/Runtime.meta new file mode 100644 index 0000000000000000000000000000000000000000..e63c98bc569d6fc4593934af03e0923f8b4fa981 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4b79d54138d9d1a498085393504c7d02 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Attributes.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes.meta new file mode 100644 index 0000000000000000000000000000000000000000..ace1c2f73eca59a9936c4f98cd0cd77ce6328d4f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 68327f748e8ffd94889a47317b7d327b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/GetSetAttribute.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/GetSetAttribute.cs new file mode 100644 index 0000000000000000000000000000000000000000..cc1bf419900e81cf509bafebd9b1b45c717cc347 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/GetSetAttribute.cs @@ -0,0 +1,13 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class GetSetAttribute : PropertyAttribute + { + public readonly string name; + public bool dirty; + + public GetSetAttribute(string name) + { + this.name = name; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/GetSetAttribute.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/GetSetAttribute.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..9730ca322fb89ad1c661b91347a1ea2db4ad8795 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/GetSetAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f17e8602928ea02419dae051ec79c5a2 +timeCreated: 1460383955 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/MinAttribute.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/MinAttribute.cs new file mode 100644 index 0000000000000000000000000000000000000000..34144ce63f46a32f0d4b98bd34cdbeab962cdc2d --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/MinAttribute.cs @@ -0,0 +1,12 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class MinAttribute : PropertyAttribute + { + public readonly float min; + + public MinAttribute(float min) + { + this.min = min; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/MinAttribute.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/MinAttribute.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a095a0bbe00e0d29f39173ca2237b6f7d01ad4c8 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/MinAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9af2f505033843c46a362e251937acb1 +timeCreated: 1462281908 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballAttribute.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballAttribute.cs new file mode 100644 index 0000000000000000000000000000000000000000..9acf912954624aa11c2c8d7e59e25bdeb85890af --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballAttribute.cs @@ -0,0 +1,12 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class TrackballAttribute : PropertyAttribute + { + public readonly string method; + + public TrackballAttribute(string method) + { + this.method = method; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballAttribute.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballAttribute.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..fe2ebc67706cd7927c93e9149678e872b1718ce5 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 65e30143f4e114f45b84a1d9cba8f469 +timeCreated: 1463400829 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballGroupAttribute.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballGroupAttribute.cs new file mode 100644 index 0000000000000000000000000000000000000000..c29c03dabb2db8e0e2fe90c8e2bfc4c3eec33b2a --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballGroupAttribute.cs @@ -0,0 +1,6 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class TrackballGroupAttribute : PropertyAttribute + { + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballGroupAttribute.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballGroupAttribute.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..74724e1f95b2e0328757cbeec59cdd46af612ac0 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Attributes/TrackballGroupAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aa62a51ebe4821e4b89a64d267b30a27 +timeCreated: 1460563239 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components.meta new file mode 100644 index 0000000000000000000000000000000000000000..8a6e94a64c42c98bea1099ae7bfee260e5b1aae0 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c1f765b2bd3d2ad49b2677f6478a9ba3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..45ca0bbf1e79dfaa806d7d9a63c76499bcabe06d --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs @@ -0,0 +1,185 @@ +using UnityEngine.Rendering; + +namespace UnityEngine.PostProcessing +{ + using DebugMode = BuiltinDebugViewsModel.Mode; + + public sealed class AmbientOcclusionComponent : PostProcessingComponentCommandBuffer<AmbientOcclusionModel> + { + static class Uniforms + { + internal static readonly int _Intensity = Shader.PropertyToID("_Intensity"); + internal static readonly int _Radius = Shader.PropertyToID("_Radius"); + internal static readonly int _FogParams = Shader.PropertyToID("_FogParams"); + internal static readonly int _Downsample = Shader.PropertyToID("_Downsample"); + internal static readonly int _SampleCount = Shader.PropertyToID("_SampleCount"); + internal static readonly int _OcclusionTexture1 = Shader.PropertyToID("_OcclusionTexture1"); + internal static readonly int _OcclusionTexture2 = Shader.PropertyToID("_OcclusionTexture2"); + internal static readonly int _OcclusionTexture = Shader.PropertyToID("_OcclusionTexture"); + internal static readonly int _MainTex = Shader.PropertyToID("_MainTex"); + internal static readonly int _TempRT = Shader.PropertyToID("_TempRT"); + } + + const string k_BlitShaderString = "Hidden/Post FX/Blit"; + const string k_ShaderString = "Hidden/Post FX/Ambient Occlusion"; + + readonly RenderTargetIdentifier[] m_MRT = + { + BuiltinRenderTextureType.GBuffer0, // Albedo, Occ + BuiltinRenderTextureType.CameraTarget // Ambient + }; + + enum OcclusionSource + { + DepthTexture, + DepthNormalsTexture, + GBuffer + } + + OcclusionSource occlusionSource + { + get + { + if (context.isGBufferAvailable && !model.settings.forceForwardCompatibility) + return OcclusionSource.GBuffer; + + if (model.settings.highPrecision && (!context.isGBufferAvailable || model.settings.forceForwardCompatibility)) + return OcclusionSource.DepthTexture; + + return OcclusionSource.DepthNormalsTexture; + } + } + + bool ambientOnlySupported + { + get { return context.isHdr && model.settings.ambientOnly && context.isGBufferAvailable && !model.settings.forceForwardCompatibility; } + } + + public override bool active + { + get + { + return model.enabled + && model.settings.intensity > 0f + && !context.interrupted; + } + } + + public override DepthTextureMode GetCameraFlags() + { + var flags = DepthTextureMode.None; + + if (occlusionSource == OcclusionSource.DepthTexture) + flags |= DepthTextureMode.Depth; + + if (occlusionSource != OcclusionSource.GBuffer) + flags |= DepthTextureMode.DepthNormals; + + return flags; + } + + public override string GetName() + { + return "Ambient Occlusion"; + } + + public override CameraEvent GetCameraEvent() + { + return ambientOnlySupported && !context.profile.debugViews.IsModeActive(DebugMode.AmbientOcclusion) + ? CameraEvent.BeforeReflections + : CameraEvent.BeforeImageEffectsOpaque; + } + + public override void PopulateCommandBuffer(CommandBuffer cb) + { + var settings = model.settings; + + // Material setup + var blitMaterial = context.materialFactory.Get(k_BlitShaderString); + + var material = context.materialFactory.Get(k_ShaderString); + material.shaderKeywords = null; + material.SetFloat(Uniforms._Intensity, settings.intensity); + material.SetFloat(Uniforms._Radius, settings.radius); + material.SetFloat(Uniforms._Downsample, settings.downsampling ? 0.5f : 1f); + material.SetInt(Uniforms._SampleCount, (int)settings.sampleCount); + + if (!context.isGBufferAvailable && RenderSettings.fog) + { + material.SetVector(Uniforms._FogParams, new Vector3(RenderSettings.fogDensity, RenderSettings.fogStartDistance, RenderSettings.fogEndDistance)); + + switch (RenderSettings.fogMode) + { + case FogMode.Linear: + material.EnableKeyword("FOG_LINEAR"); + break; + case FogMode.Exponential: + material.EnableKeyword("FOG_EXP"); + break; + case FogMode.ExponentialSquared: + material.EnableKeyword("FOG_EXP2"); + break; + } + } + else + { + material.EnableKeyword("FOG_OFF"); + } + + int tw = context.width; + int th = context.height; + int ts = settings.downsampling ? 2 : 1; + const RenderTextureFormat kFormat = RenderTextureFormat.ARGB32; + const RenderTextureReadWrite kRWMode = RenderTextureReadWrite.Linear; + const FilterMode kFilter = FilterMode.Bilinear; + + // AO buffer + var rtMask = Uniforms._OcclusionTexture1; + cb.GetTemporaryRT(rtMask, tw / ts, th / ts, 0, kFilter, kFormat, kRWMode); + + // AO estimation + cb.Blit((Texture)null, rtMask, material, (int)occlusionSource); + + // Blur buffer + var rtBlur = Uniforms._OcclusionTexture2; + + // Separable blur (horizontal pass) + cb.GetTemporaryRT(rtBlur, tw, th, 0, kFilter, kFormat, kRWMode); + cb.SetGlobalTexture(Uniforms._MainTex, rtMask); + cb.Blit(rtMask, rtBlur, material, occlusionSource == OcclusionSource.GBuffer ? 4 : 3); + cb.ReleaseTemporaryRT(rtMask); + + // Separable blur (vertical pass) + rtMask = Uniforms._OcclusionTexture; + cb.GetTemporaryRT(rtMask, tw, th, 0, kFilter, kFormat, kRWMode); + cb.SetGlobalTexture(Uniforms._MainTex, rtBlur); + cb.Blit(rtBlur, rtMask, material, 5); + cb.ReleaseTemporaryRT(rtBlur); + + if (context.profile.debugViews.IsModeActive(DebugMode.AmbientOcclusion)) + { + cb.SetGlobalTexture(Uniforms._MainTex, rtMask); + cb.Blit(rtMask, BuiltinRenderTextureType.CameraTarget, material, 8); + context.Interrupt(); + } + else if (ambientOnlySupported) + { + cb.SetRenderTarget(m_MRT, BuiltinRenderTextureType.CameraTarget); + cb.DrawMesh(GraphicsUtils.quad, Matrix4x4.identity, material, 0, 7); + } + else + { + var fbFormat = context.isHdr ? RenderTextureFormat.DefaultHDR : RenderTextureFormat.Default; + + int tempRT = Uniforms._TempRT; + cb.GetTemporaryRT(tempRT, context.width, context.height, 0, FilterMode.Bilinear, fbFormat); + cb.Blit(BuiltinRenderTextureType.CameraTarget, tempRT, blitMaterial, 0); + cb.SetGlobalTexture(Uniforms._MainTex, tempRT); + cb.Blit(tempRT, BuiltinRenderTextureType.CameraTarget, material, 6); + cb.ReleaseTemporaryRT(tempRT); + } + + cb.ReleaseTemporaryRT(rtMask); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4433821024c83564f6eda48958528f46afbb0336 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c6e33ce72d3776b408121f946283403d +timeCreated: 1467275948 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/BloomComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/BloomComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..53ac6fcff04d56dd581f9d2fa77f8c6a7018f9fc --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/BloomComponent.cs @@ -0,0 +1,143 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class BloomComponent : PostProcessingComponentRenderTexture<BloomModel> + { + static class Uniforms + { + internal static readonly int _AutoExposure = Shader.PropertyToID("_AutoExposure"); + internal static readonly int _Threshold = Shader.PropertyToID("_Threshold"); + internal static readonly int _Curve = Shader.PropertyToID("_Curve"); + internal static readonly int _PrefilterOffs = Shader.PropertyToID("_PrefilterOffs"); + internal static readonly int _SampleScale = Shader.PropertyToID("_SampleScale"); + internal static readonly int _BaseTex = Shader.PropertyToID("_BaseTex"); + internal static readonly int _BloomTex = Shader.PropertyToID("_BloomTex"); + internal static readonly int _Bloom_Settings = Shader.PropertyToID("_Bloom_Settings"); + internal static readonly int _Bloom_DirtTex = Shader.PropertyToID("_Bloom_DirtTex"); + internal static readonly int _Bloom_DirtIntensity = Shader.PropertyToID("_Bloom_DirtIntensity"); + } + + const int k_MaxPyramidBlurLevel = 16; + readonly RenderTexture[] m_BlurBuffer1 = new RenderTexture[k_MaxPyramidBlurLevel]; + readonly RenderTexture[] m_BlurBuffer2 = new RenderTexture[k_MaxPyramidBlurLevel]; + + public override bool active + { + get + { + return model.enabled + && model.settings.bloom.intensity > 0f + && !context.interrupted; + } + } + + public void Prepare(RenderTexture source, Material uberMaterial, Texture autoExposure) + { + var bloom = model.settings.bloom; + var lensDirt = model.settings.lensDirt; + var material = context.materialFactory.Get("Hidden/Post FX/Bloom"); + material.shaderKeywords = null; + + // Apply auto exposure before the prefiltering pass + material.SetTexture(Uniforms._AutoExposure, autoExposure); + + // Do bloom on a half-res buffer, full-res doesn't bring much and kills performances on + // fillrate limited platforms + var tw = context.width / 2; + var th = context.height / 2; + + // Blur buffer format + // TODO: Extend the use of RGBM to the whole chain for mobile platforms + var useRGBM = Application.isMobilePlatform; + var rtFormat = useRGBM + ? RenderTextureFormat.Default + : RenderTextureFormat.DefaultHDR; + + // Determine the iteration count + float logh = Mathf.Log(th, 2f) + bloom.radius - 8f; + int logh_i = (int)logh; + int iterations = Mathf.Clamp(logh_i, 1, k_MaxPyramidBlurLevel); + + // Uupdate the shader properties + float lthresh = bloom.thresholdLinear; + material.SetFloat(Uniforms._Threshold, lthresh); + + float knee = lthresh * bloom.softKnee + 1e-5f; + var curve = new Vector3(lthresh - knee, knee * 2f, 0.25f / knee); + material.SetVector(Uniforms._Curve, curve); + + material.SetFloat(Uniforms._PrefilterOffs, bloom.antiFlicker ? -0.5f : 0f); + + float sampleScale = 0.5f + logh - logh_i; + material.SetFloat(Uniforms._SampleScale, sampleScale); + + // TODO: Probably can disable antiFlicker if TAA is enabled - need to do some testing + if (bloom.antiFlicker) + material.EnableKeyword("ANTI_FLICKER"); + + // Prefilter pass + var prefiltered = context.renderTextureFactory.Get(tw, th, 0, rtFormat); + Graphics.Blit(source, prefiltered, material, 0); + + // Construct a mip pyramid + var last = prefiltered; + + for (int level = 0; level < iterations; level++) + { + m_BlurBuffer1[level] = context.renderTextureFactory.Get( + last.width / 2, last.height / 2, 0, rtFormat + ); + + int pass = (level == 0) ? 1 : 2; + Graphics.Blit(last, m_BlurBuffer1[level], material, pass); + + last = m_BlurBuffer1[level]; + } + + // Upsample and combine loop + for (int level = iterations - 2; level >= 0; level--) + { + var baseTex = m_BlurBuffer1[level]; + material.SetTexture(Uniforms._BaseTex, baseTex); + + m_BlurBuffer2[level] = context.renderTextureFactory.Get( + baseTex.width, baseTex.height, 0, rtFormat + ); + + Graphics.Blit(last, m_BlurBuffer2[level], material, 3); + last = m_BlurBuffer2[level]; + } + + var bloomTex = last; + + // Release the temporary buffers + for (int i = 0; i < k_MaxPyramidBlurLevel; i++) + { + if (m_BlurBuffer1[i] != null) + context.renderTextureFactory.Release(m_BlurBuffer1[i]); + + if (m_BlurBuffer2[i] != null && m_BlurBuffer2[i] != bloomTex) + context.renderTextureFactory.Release(m_BlurBuffer2[i]); + + m_BlurBuffer1[i] = null; + m_BlurBuffer2[i] = null; + } + + context.renderTextureFactory.Release(prefiltered); + + // Push everything to the uber material + uberMaterial.SetTexture(Uniforms._BloomTex, bloomTex); + uberMaterial.SetVector(Uniforms._Bloom_Settings, new Vector2(sampleScale, bloom.intensity)); + + if (lensDirt.intensity > 0f && lensDirt.texture != null) + { + uberMaterial.SetTexture(Uniforms._Bloom_DirtTex, lensDirt.texture); + uberMaterial.SetFloat(Uniforms._Bloom_DirtIntensity, lensDirt.intensity); + uberMaterial.EnableKeyword("BLOOM_LENS_DIRT"); + } + else + { + uberMaterial.EnableKeyword("BLOOM"); + } + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/BloomComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/BloomComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a67b1035e892530a6e0e6aa3032664bd02f4a7ef --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/BloomComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: acd4204a794b09048b928b1e987500c5 +timeCreated: 1473089954 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/BuiltinDebugViewsComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/BuiltinDebugViewsComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..269aeeef77a1d2712a769f6f9d79291b30c8759f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/BuiltinDebugViewsComponent.cs @@ -0,0 +1,258 @@ +using System.Collections.Generic; +using UnityEngine.Rendering; + +namespace UnityEngine.PostProcessing +{ + using Mode = BuiltinDebugViewsModel.Mode; + + public sealed class BuiltinDebugViewsComponent : PostProcessingComponentCommandBuffer<BuiltinDebugViewsModel> + { + static class Uniforms + { + internal static readonly int _DepthScale = Shader.PropertyToID("_DepthScale"); + internal static readonly int _TempRT = Shader.PropertyToID("_TempRT"); + internal static readonly int _Opacity = Shader.PropertyToID("_Opacity"); + internal static readonly int _MainTex = Shader.PropertyToID("_MainTex"); + internal static readonly int _TempRT2 = Shader.PropertyToID("_TempRT2"); + internal static readonly int _Amplitude = Shader.PropertyToID("_Amplitude"); + internal static readonly int _Scale = Shader.PropertyToID("_Scale"); + } + + const string k_ShaderString = "Hidden/Post FX/Builtin Debug Views"; + + enum Pass + { + Depth, + Normals, + MovecOpacity, + MovecImaging, + MovecArrows + } + + ArrowArray m_Arrows; + + class ArrowArray + { + public Mesh mesh { get; private set; } + + public int columnCount { get; private set; } + public int rowCount { get; private set; } + + public void BuildMesh(int columns, int rows) + { + // Base shape + var arrow = new Vector3[6] + { + new Vector3(0f, 0f, 0f), + new Vector3(0f, 1f, 0f), + new Vector3(0f, 1f, 0f), + new Vector3(-1f, 1f, 0f), + new Vector3(0f, 1f, 0f), + new Vector3(1f, 1f, 0f) + }; + + // make the vertex array + int vcount = 6 * columns * rows; + var vertices = new List<Vector3>(vcount); + var uvs = new List<Vector2>(vcount); + + for (int iy = 0; iy < rows; iy++) + { + for (int ix = 0; ix < columns; ix++) + { + var uv = new Vector2( + (0.5f + ix) / columns, + (0.5f + iy) / rows + ); + + for (int i = 0; i < 6; i++) + { + vertices.Add(arrow[i]); + uvs.Add(uv); + } + } + } + + // make the index array + var indices = new int[vcount]; + + for (int i = 0; i < vcount; i++) + indices[i] = i; + + // initialize the mesh object + mesh = new Mesh { hideFlags = HideFlags.DontSave }; + mesh.SetVertices(vertices); + mesh.SetUVs(0, uvs); + mesh.SetIndices(indices, MeshTopology.Lines, 0); + mesh.UploadMeshData(true); + + // update the properties + columnCount = columns; + rowCount = rows; + } + + public void Release() + { + GraphicsUtils.Destroy(mesh); + mesh = null; + } + } + + public override bool active + { + get + { + return model.IsModeActive(Mode.Depth) + || model.IsModeActive(Mode.Normals) + || model.IsModeActive(Mode.MotionVectors); + } + } + + public override DepthTextureMode GetCameraFlags() + { + var mode = model.settings.mode; + var flags = DepthTextureMode.None; + + switch (mode) + { + case Mode.Normals: + flags |= DepthTextureMode.DepthNormals; + break; + case Mode.MotionVectors: + flags |= DepthTextureMode.MotionVectors | DepthTextureMode.Depth; + break; + case Mode.Depth: + flags |= DepthTextureMode.Depth; + break; + } + + return flags; + } + + public override CameraEvent GetCameraEvent() + { + return model.settings.mode == Mode.MotionVectors + ? CameraEvent.BeforeImageEffects + : CameraEvent.BeforeImageEffectsOpaque; + } + + public override string GetName() + { + return "Builtin Debug Views"; + } + + public override void PopulateCommandBuffer(CommandBuffer cb) + { + var settings = model.settings; + var material = context.materialFactory.Get(k_ShaderString); + material.shaderKeywords = null; + + if (context.isGBufferAvailable) + material.EnableKeyword("SOURCE_GBUFFER"); + + switch (settings.mode) + { + case Mode.Depth: + DepthPass(cb); + break; + case Mode.Normals: + DepthNormalsPass(cb); + break; + case Mode.MotionVectors: + MotionVectorsPass(cb); + break; + } + + context.Interrupt(); + } + + void DepthPass(CommandBuffer cb) + { + var material = context.materialFactory.Get(k_ShaderString); + var settings = model.settings.depth; + + cb.SetGlobalFloat(Uniforms._DepthScale, 1f / settings.scale); + cb.Blit((Texture)null, BuiltinRenderTextureType.CameraTarget, material, (int)Pass.Depth); + } + + void DepthNormalsPass(CommandBuffer cb) + { + var material = context.materialFactory.Get(k_ShaderString); + cb.Blit((Texture)null, BuiltinRenderTextureType.CameraTarget, material, (int)Pass.Normals); + } + + void MotionVectorsPass(CommandBuffer cb) + { +#if UNITY_EDITOR + // Don't render motion vectors preview when the editor is not playing as it can in some + // cases results in ugly artifacts (i.e. when resizing the game view). + if (!Application.isPlaying) + return; +#endif + + var material = context.materialFactory.Get(k_ShaderString); + var settings = model.settings.motionVectors; + + // Blit the original source image + int tempRT = Uniforms._TempRT; + cb.GetTemporaryRT(tempRT, context.width, context.height, 0, FilterMode.Bilinear); + cb.SetGlobalFloat(Uniforms._Opacity, settings.sourceOpacity); + cb.SetGlobalTexture(Uniforms._MainTex, BuiltinRenderTextureType.CameraTarget); + cb.Blit(BuiltinRenderTextureType.CameraTarget, tempRT, material, (int)Pass.MovecOpacity); + + // Motion vectors (imaging) + if (settings.motionImageOpacity > 0f && settings.motionImageAmplitude > 0f) + { + int tempRT2 = Uniforms._TempRT2; + cb.GetTemporaryRT(tempRT2, context.width, context.height, 0, FilterMode.Bilinear); + cb.SetGlobalFloat(Uniforms._Opacity, settings.motionImageOpacity); + cb.SetGlobalFloat(Uniforms._Amplitude, settings.motionImageAmplitude); + cb.SetGlobalTexture(Uniforms._MainTex, tempRT); + cb.Blit(tempRT, tempRT2, material, (int)Pass.MovecImaging); + cb.ReleaseTemporaryRT(tempRT); + tempRT = tempRT2; + } + + // Motion vectors (arrows) + if (settings.motionVectorsOpacity > 0f && settings.motionVectorsAmplitude > 0f) + { + PrepareArrows(); + + float sy = 1f / settings.motionVectorsResolution; + float sx = sy * context.height / context.width; + + cb.SetGlobalVector(Uniforms._Scale, new Vector2(sx, sy)); + cb.SetGlobalFloat(Uniforms._Opacity, settings.motionVectorsOpacity); + cb.SetGlobalFloat(Uniforms._Amplitude, settings.motionVectorsAmplitude); + cb.DrawMesh(m_Arrows.mesh, Matrix4x4.identity, material, 0, (int)Pass.MovecArrows); + } + + cb.SetGlobalTexture(Uniforms._MainTex, tempRT); + cb.Blit(tempRT, BuiltinRenderTextureType.CameraTarget); + cb.ReleaseTemporaryRT(tempRT); + } + + void PrepareArrows() + { + int row = model.settings.motionVectors.motionVectorsResolution; + int col = row * Screen.width / Screen.height; + + if (m_Arrows == null) + m_Arrows = new ArrowArray(); + + if (m_Arrows.columnCount != col || m_Arrows.rowCount != row) + { + m_Arrows.Release(); + m_Arrows.BuildMesh(col, row); + } + } + + public override void OnDisable() + { + if (m_Arrows != null) + m_Arrows.Release(); + + m_Arrows = null; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/BuiltinDebugViewsComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/BuiltinDebugViewsComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e8625d3625c40d0f44db5c943f2bfc3da3c9ab7e --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/BuiltinDebugViewsComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fd834b6165e82e64f9da2d4ed9f4e236 +timeCreated: 1473163679 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/ChromaticAberrationComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ChromaticAberrationComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..821a29f599b95792ad3f720622a208c2820ebbe5 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ChromaticAberrationComponent.cs @@ -0,0 +1,63 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class ChromaticAberrationComponent : PostProcessingComponentRenderTexture<ChromaticAberrationModel> + { + static class Uniforms + { + internal static readonly int _ChromaticAberration_Amount = Shader.PropertyToID("_ChromaticAberration_Amount"); + internal static readonly int _ChromaticAberration_Spectrum = Shader.PropertyToID("_ChromaticAberration_Spectrum"); + } + + Texture2D m_SpectrumLut; + + public override bool active + { + get + { + return model.enabled + && model.settings.intensity > 0f + && !context.interrupted; + } + } + + public override void OnDisable() + { + GraphicsUtils.Destroy(m_SpectrumLut); + m_SpectrumLut = null; + } + + public override void Prepare(Material uberMaterial) + { + var settings = model.settings; + var spectralLut = settings.spectralTexture; + + if (spectralLut == null) + { + if (m_SpectrumLut == null) + { + m_SpectrumLut = new Texture2D(3, 1, TextureFormat.RGB24, false) + { + name = "Chromatic Aberration Spectrum Lookup", + filterMode = FilterMode.Bilinear, + wrapMode = TextureWrapMode.Clamp, + anisoLevel = 0, + hideFlags = HideFlags.DontSave + }; + + var pixels = new Color[3]; + pixels[0] = new Color(1f, 0f, 0f); + pixels[1] = new Color(0f, 1f, 0f); + pixels[2] = new Color(0f, 0f, 1f); + m_SpectrumLut.SetPixels(pixels); + m_SpectrumLut.Apply(); + } + + spectralLut = m_SpectrumLut; + } + + uberMaterial.EnableKeyword("CHROMATIC_ABERRATION"); + uberMaterial.SetFloat(Uniforms._ChromaticAberration_Amount, settings.intensity * 0.03f); + uberMaterial.SetTexture(Uniforms._ChromaticAberration_Spectrum, spectralLut); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/ChromaticAberrationComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ChromaticAberrationComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..c059230503452ca5417610b802f63b64138acf9f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ChromaticAberrationComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b9c65642df654a84d84ded1b07448a4c +timeCreated: 1473085971 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/ColorGradingComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ColorGradingComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..3948e7b7b2038eaa41fee90cc1978fe1113983a8 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ColorGradingComponent.cs @@ -0,0 +1,436 @@ +namespace UnityEngine.PostProcessing +{ + using DebugMode = BuiltinDebugViewsModel.Mode; + + public sealed class ColorGradingComponent : PostProcessingComponentRenderTexture<ColorGradingModel> + { + static class Uniforms + { + internal static readonly int _LutParams = Shader.PropertyToID("_LutParams"); + internal static readonly int _NeutralTonemapperParams1 = Shader.PropertyToID("_NeutralTonemapperParams1"); + internal static readonly int _NeutralTonemapperParams2 = Shader.PropertyToID("_NeutralTonemapperParams2"); + internal static readonly int _HueShift = Shader.PropertyToID("_HueShift"); + internal static readonly int _Saturation = Shader.PropertyToID("_Saturation"); + internal static readonly int _Contrast = Shader.PropertyToID("_Contrast"); + internal static readonly int _Balance = Shader.PropertyToID("_Balance"); + internal static readonly int _Lift = Shader.PropertyToID("_Lift"); + internal static readonly int _InvGamma = Shader.PropertyToID("_InvGamma"); + internal static readonly int _Gain = Shader.PropertyToID("_Gain"); + internal static readonly int _Slope = Shader.PropertyToID("_Slope"); + internal static readonly int _Power = Shader.PropertyToID("_Power"); + internal static readonly int _Offset = Shader.PropertyToID("_Offset"); + internal static readonly int _ChannelMixerRed = Shader.PropertyToID("_ChannelMixerRed"); + internal static readonly int _ChannelMixerGreen = Shader.PropertyToID("_ChannelMixerGreen"); + internal static readonly int _ChannelMixerBlue = Shader.PropertyToID("_ChannelMixerBlue"); + internal static readonly int _Curves = Shader.PropertyToID("_Curves"); + internal static readonly int _LogLut = Shader.PropertyToID("_LogLut"); + internal static readonly int _LogLut_Params = Shader.PropertyToID("_LogLut_Params"); + internal static readonly int _ExposureEV = Shader.PropertyToID("_ExposureEV"); + } + + const int k_InternalLogLutSize = 32; + const int k_CurvePrecision = 128; + const float k_CurveStep = 1f / k_CurvePrecision; + + Texture2D m_GradingCurves; + Color[] m_pixels = new Color[k_CurvePrecision * 2]; + + public override bool active + { + get + { + return model.enabled + && !context.interrupted; + } + } + + // An analytical model of chromaticity of the standard illuminant, by Judd et al. + // http://en.wikipedia.org/wiki/Standard_illuminant#Illuminant_series_D + // Slightly modifed to adjust it with the D65 white point (x=0.31271, y=0.32902). + float StandardIlluminantY(float x) + { + return 2.87f * x - 3f * x * x - 0.27509507f; + } + + // CIE xy chromaticity to CAT02 LMS. + // http://en.wikipedia.org/wiki/LMS_color_space#CAT02 + Vector3 CIExyToLMS(float x, float y) + { + float Y = 1f; + float X = Y * x / y; + float Z = Y * (1f - x - y) / y; + + float L = 0.7328f * X + 0.4296f * Y - 0.1624f * Z; + float M = -0.7036f * X + 1.6975f * Y + 0.0061f * Z; + float S = 0.0030f * X + 0.0136f * Y + 0.9834f * Z; + + return new Vector3(L, M, S); + } + + Vector3 CalculateColorBalance(float temperature, float tint) + { + // Range ~[-1.8;1.8] ; using higher ranges is unsafe + float t1 = temperature / 55f; + float t2 = tint / 55f; + + // Get the CIE xy chromaticity of the reference white point. + // Note: 0.31271 = x value on the D65 white point + float x = 0.31271f - t1 * (t1 < 0f ? 0.1f : 0.05f); + float y = StandardIlluminantY(x) + t2 * 0.05f; + + // Calculate the coefficients in the LMS space. + var w1 = new Vector3(0.949237f, 1.03542f, 1.08728f); // D65 white point + var w2 = CIExyToLMS(x, y); + return new Vector3(w1.x / w2.x, w1.y / w2.y, w1.z / w2.z); + } + + static Color NormalizeColor(Color c) + { + float sum = (c.r + c.g + c.b) / 3f; + + if (Mathf.Approximately(sum, 0f)) + return new Color(1f, 1f, 1f, c.a); + + return new Color + { + r = c.r / sum, + g = c.g / sum, + b = c.b / sum, + a = c.a + }; + } + + static Vector3 ClampVector(Vector3 v, float min, float max) + { + return new Vector3( + Mathf.Clamp(v.x, min, max), + Mathf.Clamp(v.y, min, max), + Mathf.Clamp(v.z, min, max) + ); + } + + public static Vector3 GetLiftValue(Color lift) + { + const float kLiftScale = 0.1f; + + var nLift = NormalizeColor(lift); + float avgLift = (nLift.r + nLift.g + nLift.b) / 3f; + + // Getting some artifacts when going into the negatives using a very low offset (lift.a) with non ACES-tonemapping + float liftR = (nLift.r - avgLift) * kLiftScale + lift.a; + float liftG = (nLift.g - avgLift) * kLiftScale + lift.a; + float liftB = (nLift.b - avgLift) * kLiftScale + lift.a; + + return ClampVector(new Vector3(liftR, liftG, liftB), -1f, 1f); + } + + public static Vector3 GetGammaValue(Color gamma) + { + const float kGammaScale = 0.5f; + const float kMinGamma = 0.01f; + + var nGamma = NormalizeColor(gamma); + float avgGamma = (nGamma.r + nGamma.g + nGamma.b) / 3f; + + gamma.a *= gamma.a < 0f ? 0.8f : 5f; + float gammaR = Mathf.Pow(2f, (nGamma.r - avgGamma) * kGammaScale) + gamma.a; + float gammaG = Mathf.Pow(2f, (nGamma.g - avgGamma) * kGammaScale) + gamma.a; + float gammaB = Mathf.Pow(2f, (nGamma.b - avgGamma) * kGammaScale) + gamma.a; + + float invGammaR = 1f / Mathf.Max(kMinGamma, gammaR); + float invGammaG = 1f / Mathf.Max(kMinGamma, gammaG); + float invGammaB = 1f / Mathf.Max(kMinGamma, gammaB); + + return ClampVector(new Vector3(invGammaR, invGammaG, invGammaB), 0f, 5f); + } + + public static Vector3 GetGainValue(Color gain) + { + const float kGainScale = 0.5f; + + var nGain = NormalizeColor(gain); + float avgGain = (nGain.r + nGain.g + nGain.b) / 3f; + + gain.a *= gain.a > 0f ? 3f : 1f; + float gainR = Mathf.Pow(2f, (nGain.r - avgGain) * kGainScale) + gain.a; + float gainG = Mathf.Pow(2f, (nGain.g - avgGain) * kGainScale) + gain.a; + float gainB = Mathf.Pow(2f, (nGain.b - avgGain) * kGainScale) + gain.a; + + return ClampVector(new Vector3(gainR, gainG, gainB), 0f, 4f); + } + + public static void CalculateLiftGammaGain(Color lift, Color gamma, Color gain, out Vector3 outLift, out Vector3 outGamma, out Vector3 outGain) + { + outLift = GetLiftValue(lift); + outGamma = GetGammaValue(gamma); + outGain = GetGainValue(gain); + } + + public static Vector3 GetSlopeValue(Color slope) + { + const float kSlopeScale = 0.1f; + + var nSlope = NormalizeColor(slope); + float avgSlope = (nSlope.r + nSlope.g + nSlope.b) / 3f; + + slope.a *= 0.5f; + float slopeR = (nSlope.r - avgSlope) * kSlopeScale + slope.a + 1f; + float slopeG = (nSlope.g - avgSlope) * kSlopeScale + slope.a + 1f; + float slopeB = (nSlope.b - avgSlope) * kSlopeScale + slope.a + 1f; + + return ClampVector(new Vector3(slopeR, slopeG, slopeB), 0f, 2f); + } + + public static Vector3 GetPowerValue(Color power) + { + const float kPowerScale = 0.1f; + const float minPower = 0.01f; + + var nPower = NormalizeColor(power); + float avgPower = (nPower.r + nPower.g + nPower.b) / 3f; + + power.a *= 0.5f; + float powerR = (nPower.r - avgPower) * kPowerScale + power.a + 1f; + float powerG = (nPower.g - avgPower) * kPowerScale + power.a + 1f; + float powerB = (nPower.b - avgPower) * kPowerScale + power.a + 1f; + + float invPowerR = 1f / Mathf.Max(minPower, powerR); + float invPowerG = 1f / Mathf.Max(minPower, powerG); + float invPowerB = 1f / Mathf.Max(minPower, powerB); + + return ClampVector(new Vector3(invPowerR, invPowerG, invPowerB), 0.5f, 2.5f); + } + + public static Vector3 GetOffsetValue(Color offset) + { + const float kOffsetScale = 0.05f; + + var nOffset = NormalizeColor(offset); + float avgOffset = (nOffset.r + nOffset.g + nOffset.b) / 3f; + + offset.a *= 0.5f; + float offsetR = (nOffset.r - avgOffset) * kOffsetScale + offset.a; + float offsetG = (nOffset.g - avgOffset) * kOffsetScale + offset.a; + float offsetB = (nOffset.b - avgOffset) * kOffsetScale + offset.a; + + return ClampVector(new Vector3(offsetR, offsetG, offsetB), -0.8f, 0.8f); + } + + public static void CalculateSlopePowerOffset(Color slope, Color power, Color offset, out Vector3 outSlope, out Vector3 outPower, out Vector3 outOffset) + { + outSlope = GetSlopeValue(slope); + outPower = GetPowerValue(power); + outOffset = GetOffsetValue(offset); + } + + TextureFormat GetCurveFormat() + { + if (SystemInfo.SupportsTextureFormat(TextureFormat.RGBAHalf)) + return TextureFormat.RGBAHalf; + + return TextureFormat.RGBA32; + } + + Texture2D GetCurveTexture() + { + if (m_GradingCurves == null) + { + m_GradingCurves = new Texture2D(k_CurvePrecision, 2, GetCurveFormat(), false, true) + { + name = "Internal Curves Texture", + hideFlags = HideFlags.DontSave, + anisoLevel = 0, + wrapMode = TextureWrapMode.Clamp, + filterMode = FilterMode.Bilinear + }; + } + + var curves = model.settings.curves; + curves.hueVShue.Cache(); + curves.hueVSsat.Cache(); + + for (int i = 0; i < k_CurvePrecision; i++) + { + float t = i * k_CurveStep; + + // HSL + float x = curves.hueVShue.Evaluate(t); + float y = curves.hueVSsat.Evaluate(t); + float z = curves.satVSsat.Evaluate(t); + float w = curves.lumVSsat.Evaluate(t); + m_pixels[i] = new Color(x, y, z, w); + + // YRGB + float m = curves.master.Evaluate(t); + float r = curves.red.Evaluate(t); + float g = curves.green.Evaluate(t); + float b = curves.blue.Evaluate(t); + m_pixels[i + k_CurvePrecision] = new Color(r, g, b, m); + } + + m_GradingCurves.SetPixels(m_pixels); + m_GradingCurves.Apply(false, false); + + return m_GradingCurves; + } + + bool IsLogLutValid(RenderTexture lut) + { + return lut != null && lut.IsCreated() && lut.height == k_InternalLogLutSize; + } + + RenderTextureFormat GetLutFormat() + { + if (SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGBHalf)) + return RenderTextureFormat.ARGBHalf; + + return RenderTextureFormat.ARGB32; + } + + void GenerateLut() + { + var settings = model.settings; + + if (!IsLogLutValid(model.bakedLut)) + { + GraphicsUtils.Destroy(model.bakedLut); + + model.bakedLut = new RenderTexture(k_InternalLogLutSize * k_InternalLogLutSize, k_InternalLogLutSize, 0, GetLutFormat()) + { + name = "Color Grading Log LUT", + hideFlags = HideFlags.DontSave, + filterMode = FilterMode.Bilinear, + wrapMode = TextureWrapMode.Clamp, + anisoLevel = 0 + }; + } + + var lutMaterial = context.materialFactory.Get("Hidden/Post FX/Lut Generator"); + lutMaterial.SetVector(Uniforms._LutParams, new Vector4( + k_InternalLogLutSize, + 0.5f / (k_InternalLogLutSize * k_InternalLogLutSize), + 0.5f / k_InternalLogLutSize, + k_InternalLogLutSize / (k_InternalLogLutSize - 1f)) + ); + + // Tonemapping + lutMaterial.shaderKeywords = null; + + var tonemapping = settings.tonemapping; + switch (tonemapping.tonemapper) + { + case ColorGradingModel.Tonemapper.Neutral: + { + lutMaterial.EnableKeyword("TONEMAPPING_NEUTRAL"); + + const float scaleFactor = 20f; + const float scaleFactorHalf = scaleFactor * 0.5f; + + float inBlack = tonemapping.neutralBlackIn * scaleFactor + 1f; + float outBlack = tonemapping.neutralBlackOut * scaleFactorHalf + 1f; + float inWhite = tonemapping.neutralWhiteIn / scaleFactor; + float outWhite = 1f - tonemapping.neutralWhiteOut / scaleFactor; + float blackRatio = inBlack / outBlack; + float whiteRatio = inWhite / outWhite; + + const float a = 0.2f; + float b = Mathf.Max(0f, Mathf.LerpUnclamped(0.57f, 0.37f, blackRatio)); + float c = Mathf.LerpUnclamped(0.01f, 0.24f, whiteRatio); + float d = Mathf.Max(0f, Mathf.LerpUnclamped(0.02f, 0.20f, blackRatio)); + const float e = 0.02f; + const float f = 0.30f; + + lutMaterial.SetVector(Uniforms._NeutralTonemapperParams1, new Vector4(a, b, c, d)); + lutMaterial.SetVector(Uniforms._NeutralTonemapperParams2, new Vector4(e, f, tonemapping.neutralWhiteLevel, tonemapping.neutralWhiteClip / scaleFactorHalf)); + break; + } + + case ColorGradingModel.Tonemapper.ACES: + { + lutMaterial.EnableKeyword("TONEMAPPING_FILMIC"); + break; + } + } + + // Color balance & basic grading settings + lutMaterial.SetFloat(Uniforms._HueShift, settings.basic.hueShift / 360f); + lutMaterial.SetFloat(Uniforms._Saturation, settings.basic.saturation); + lutMaterial.SetFloat(Uniforms._Contrast, settings.basic.contrast); + lutMaterial.SetVector(Uniforms._Balance, CalculateColorBalance(settings.basic.temperature, settings.basic.tint)); + + // Lift / Gamma / Gain + Vector3 lift, gamma, gain; + CalculateLiftGammaGain( + settings.colorWheels.linear.lift, + settings.colorWheels.linear.gamma, + settings.colorWheels.linear.gain, + out lift, out gamma, out gain + ); + + lutMaterial.SetVector(Uniforms._Lift, lift); + lutMaterial.SetVector(Uniforms._InvGamma, gamma); + lutMaterial.SetVector(Uniforms._Gain, gain); + + // Slope / Power / Offset + Vector3 slope, power, offset; + CalculateSlopePowerOffset( + settings.colorWheels.log.slope, + settings.colorWheels.log.power, + settings.colorWheels.log.offset, + out slope, out power, out offset + ); + + lutMaterial.SetVector(Uniforms._Slope, slope); + lutMaterial.SetVector(Uniforms._Power, power); + lutMaterial.SetVector(Uniforms._Offset, offset); + + // Channel mixer + lutMaterial.SetVector(Uniforms._ChannelMixerRed, settings.channelMixer.red); + lutMaterial.SetVector(Uniforms._ChannelMixerGreen, settings.channelMixer.green); + lutMaterial.SetVector(Uniforms._ChannelMixerBlue, settings.channelMixer.blue); + + // Selective grading & YRGB curves + lutMaterial.SetTexture(Uniforms._Curves, GetCurveTexture()); + + // Generate the lut + Graphics.Blit(null, model.bakedLut, lutMaterial, 0); + } + + public override void Prepare(Material uberMaterial) + { + if (model.isDirty || !IsLogLutValid(model.bakedLut)) + { + GenerateLut(); + model.isDirty = false; + } + + uberMaterial.EnableKeyword( + context.profile.debugViews.IsModeActive(DebugMode.PreGradingLog) + ? "COLOR_GRADING_LOG_VIEW" + : "COLOR_GRADING" + ); + + var bakedLut = model.bakedLut; + uberMaterial.SetTexture(Uniforms._LogLut, bakedLut); + uberMaterial.SetVector(Uniforms._LogLut_Params, new Vector3(1f / bakedLut.width, 1f / bakedLut.height, bakedLut.height - 1f)); + + float ev = Mathf.Exp(model.settings.basic.postExposure * 0.69314718055994530941723212145818f); + uberMaterial.SetFloat(Uniforms._ExposureEV, ev); + } + + public void OnGUI() + { + var bakedLut = model.bakedLut; + var rect = new Rect(context.viewport.x * Screen.width + 8f, 8f, bakedLut.width, bakedLut.height); + GUI.DrawTexture(rect, bakedLut); + } + + public override void OnDisable() + { + GraphicsUtils.Destroy(m_GradingCurves); + GraphicsUtils.Destroy(model.bakedLut); + m_GradingCurves = null; + model.bakedLut = null; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/ColorGradingComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ColorGradingComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..59e7758a79ca1b69fcbe4c4a935aebfa60307612 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ColorGradingComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9baf73db7c9fc1b478f4a0a1000c86f5 +timeCreated: 1473086520 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/DepthOfFieldComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/DepthOfFieldComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..c79a3335256f67a330afab9b1c437b5565458ffe --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/DepthOfFieldComponent.cs @@ -0,0 +1,165 @@ +using UnityEngine.Rendering; + +namespace UnityEngine.PostProcessing +{ + using DebugMode = BuiltinDebugViewsModel.Mode; + + public sealed class DepthOfFieldComponent : PostProcessingComponentRenderTexture<DepthOfFieldModel> + { + static class Uniforms + { + internal static readonly int _DepthOfFieldTex = Shader.PropertyToID("_DepthOfFieldTex"); + internal static readonly int _DepthOfFieldCoCTex = Shader.PropertyToID("_DepthOfFieldCoCTex"); + internal static readonly int _Distance = Shader.PropertyToID("_Distance"); + internal static readonly int _LensCoeff = Shader.PropertyToID("_LensCoeff"); + internal static readonly int _MaxCoC = Shader.PropertyToID("_MaxCoC"); + internal static readonly int _RcpMaxCoC = Shader.PropertyToID("_RcpMaxCoC"); + internal static readonly int _RcpAspect = Shader.PropertyToID("_RcpAspect"); + internal static readonly int _MainTex = Shader.PropertyToID("_MainTex"); + internal static readonly int _CoCTex = Shader.PropertyToID("_CoCTex"); + internal static readonly int _TaaParams = Shader.PropertyToID("_TaaParams"); + internal static readonly int _DepthOfFieldParams = Shader.PropertyToID("_DepthOfFieldParams"); + } + + const string k_ShaderString = "Hidden/Post FX/Depth Of Field"; + + public override bool active + { + get + { + return model.enabled + && !context.interrupted; + } + } + + public override DepthTextureMode GetCameraFlags() + { + return DepthTextureMode.Depth; + } + + RenderTexture m_CoCHistory; + + // Height of the 35mm full-frame format (36mm x 24mm) + const float k_FilmHeight = 0.024f; + + float CalculateFocalLength() + { + var settings = model.settings; + + if (!settings.useCameraFov) + return settings.focalLength / 1000f; + + float fov = context.camera.fieldOfView * Mathf.Deg2Rad; + return 0.5f * k_FilmHeight / Mathf.Tan(0.5f * fov); + } + + float CalculateMaxCoCRadius(int screenHeight) + { + // Estimate the allowable maximum radius of CoC from the kernel + // size (the equation below was empirically derived). + float radiusInPixels = (float)model.settings.kernelSize * 4f + 6f; + + // Applying a 5% limit to the CoC radius to keep the size of + // TileMax/NeighborMax small enough. + return Mathf.Min(0.05f, radiusInPixels / screenHeight); + } + + bool CheckHistory(int width, int height) + { + return m_CoCHistory != null && m_CoCHistory.IsCreated() && + m_CoCHistory.width == width && m_CoCHistory.height == height; + } + + RenderTextureFormat SelectFormat(RenderTextureFormat primary, RenderTextureFormat secondary) + { + if (SystemInfo.SupportsRenderTextureFormat(primary)) return primary; + if (SystemInfo.SupportsRenderTextureFormat(secondary)) return secondary; + return RenderTextureFormat.Default; + } + + public void Prepare(RenderTexture source, Material uberMaterial, bool antialiasCoC, Vector2 taaJitter, float taaBlending) + { + var settings = model.settings; + var colorFormat = RenderTextureFormat.DefaultHDR; + var cocFormat = SelectFormat(RenderTextureFormat.R8, RenderTextureFormat.RHalf); + + // Avoid using R8 on OSX with Metal. #896121, https://goo.gl/MgKqu6 + #if (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) && !UNITY_2017_1_OR_NEWER + if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal) + cocFormat = SelectFormat(RenderTextureFormat.RHalf, RenderTextureFormat.Default); + #endif + + // Material setup + var f = CalculateFocalLength(); + var s1 = Mathf.Max(settings.focusDistance, f); + var aspect = (float)source.width / source.height; + var coeff = f * f / (settings.aperture * (s1 - f) * k_FilmHeight * 2); + var maxCoC = CalculateMaxCoCRadius(source.height); + + var material = context.materialFactory.Get(k_ShaderString); + material.SetFloat(Uniforms._Distance, s1); + material.SetFloat(Uniforms._LensCoeff, coeff); + material.SetFloat(Uniforms._MaxCoC, maxCoC); + material.SetFloat(Uniforms._RcpMaxCoC, 1f / maxCoC); + material.SetFloat(Uniforms._RcpAspect, 1f / aspect); + + // CoC calculation pass + var rtCoC = context.renderTextureFactory.Get(context.width, context.height, 0, cocFormat, RenderTextureReadWrite.Linear); + Graphics.Blit(null, rtCoC, material, 0); + + if (antialiasCoC) + { + // CoC temporal filter pass + material.SetTexture(Uniforms._CoCTex, rtCoC); + + var blend = CheckHistory(context.width, context.height) ? taaBlending : 0f; + material.SetVector(Uniforms._TaaParams, new Vector3(taaJitter.x, taaJitter.y, blend)); + + var rtFiltered = RenderTexture.GetTemporary(context.width, context.height, 0, cocFormat); + Graphics.Blit(m_CoCHistory, rtFiltered, material, 1); + + context.renderTextureFactory.Release(rtCoC); + if (m_CoCHistory != null) RenderTexture.ReleaseTemporary(m_CoCHistory); + + m_CoCHistory = rtCoC = rtFiltered; + } + + // Downsampling and prefiltering pass + var rt1 = context.renderTextureFactory.Get(context.width / 2, context.height / 2, 0, colorFormat); + material.SetTexture(Uniforms._CoCTex, rtCoC); + Graphics.Blit(source, rt1, material, 2); + + // Bokeh simulation pass + var rt2 = context.renderTextureFactory.Get(context.width / 2, context.height / 2, 0, colorFormat); + Graphics.Blit(rt1, rt2, material, 3 + (int)settings.kernelSize); + + // Postfilter pass + Graphics.Blit(rt2, rt1, material, 7); + + // Give the results to the uber shader. + uberMaterial.SetVector(Uniforms._DepthOfFieldParams, new Vector3(s1, coeff, maxCoC)); + + if (context.profile.debugViews.IsModeActive(DebugMode.FocusPlane)) + { + uberMaterial.EnableKeyword("DEPTH_OF_FIELD_COC_VIEW"); + context.Interrupt(); + } + else + { + uberMaterial.SetTexture(Uniforms._DepthOfFieldTex, rt1); + uberMaterial.SetTexture(Uniforms._DepthOfFieldCoCTex, rtCoC); + uberMaterial.EnableKeyword("DEPTH_OF_FIELD"); + } + + context.renderTextureFactory.Release(rt2); + } + + public override void OnDisable() + { + if (m_CoCHistory != null) + RenderTexture.ReleaseTemporary(m_CoCHistory); + + m_CoCHistory = null; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/DepthOfFieldComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/DepthOfFieldComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..f4191ba9d809c2e2cd0b7ceadafdd9a7bf532fe7 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/DepthOfFieldComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d862c8701bf34c342b95cf9058d0b70c +timeCreated: 1468410915 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/DitheringComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/DitheringComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..a0b594be0fc3cf78bcb35cfc8d303faaf1363120 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/DitheringComponent.cs @@ -0,0 +1,71 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class DitheringComponent : PostProcessingComponentRenderTexture<DitheringModel> + { + static class Uniforms + { + internal static readonly int _DitheringTex = Shader.PropertyToID("_DitheringTex"); + internal static readonly int _DitheringCoords = Shader.PropertyToID("_DitheringCoords"); + } + + public override bool active + { + get + { + return model.enabled + && !context.interrupted; + } + } + + // Holds 64 64x64 Alpha8 textures (256kb total) + Texture2D[] noiseTextures; + int textureIndex = 0; + + const int k_TextureCount = 64; + + public override void OnDisable() + { + noiseTextures = null; + } + + void LoadNoiseTextures() + { + noiseTextures = new Texture2D[k_TextureCount]; + + for (int i = 0; i < k_TextureCount; i++) + noiseTextures[i] = Resources.Load<Texture2D>("Bluenoise64/LDR_LLL1_" + i); + } + + public override void Prepare(Material uberMaterial) + { + float rndOffsetX; + float rndOffsetY; + +#if POSTFX_DEBUG_STATIC_DITHERING + textureIndex = 0; + rndOffsetX = 0f; + rndOffsetY = 0f; +#else + if (++textureIndex >= k_TextureCount) + textureIndex = 0; + + rndOffsetX = Random.value; + rndOffsetY = Random.value; +#endif + + if (noiseTextures == null) + LoadNoiseTextures(); + + var noiseTex = noiseTextures[textureIndex]; + + uberMaterial.EnableKeyword("DITHERING"); + uberMaterial.SetTexture(Uniforms._DitheringTex, noiseTex); + uberMaterial.SetVector(Uniforms._DitheringCoords, new Vector4( + (float)context.width / (float)noiseTex.width, + (float)context.height / (float)noiseTex.height, + rndOffsetX, + rndOffsetY + )); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/DitheringComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/DitheringComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..7c6dd3bb07c805a8d530026ad05035d576ff8c91 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/DitheringComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 35ceb4b3cfab56d43a3f0efeb9d68c43 +timeCreated: 1485179235 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/EyeAdaptationComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/EyeAdaptationComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..2d07ba6f07be2f19bd5fd6ee324a76f625f0215c --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/EyeAdaptationComponent.cs @@ -0,0 +1,185 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class EyeAdaptationComponent : PostProcessingComponentRenderTexture<EyeAdaptationModel> + { + static class Uniforms + { + internal static readonly int _Params = Shader.PropertyToID("_Params"); + internal static readonly int _Speed = Shader.PropertyToID("_Speed"); + internal static readonly int _ScaleOffsetRes = Shader.PropertyToID("_ScaleOffsetRes"); + internal static readonly int _ExposureCompensation = Shader.PropertyToID("_ExposureCompensation"); + internal static readonly int _AutoExposure = Shader.PropertyToID("_AutoExposure"); + internal static readonly int _DebugWidth = Shader.PropertyToID("_DebugWidth"); + } + + ComputeShader m_EyeCompute; + ComputeBuffer m_HistogramBuffer; + + readonly RenderTexture[] m_AutoExposurePool = new RenderTexture[2]; + int m_AutoExposurePingPing; + RenderTexture m_CurrentAutoExposure; + + RenderTexture m_DebugHistogram; + + static uint[] s_EmptyHistogramBuffer; + + bool m_FirstFrame = true; + + // Don't forget to update 'EyeAdaptation.cginc' if you change these values ! + const int k_HistogramBins = 64; + const int k_HistogramThreadX = 16; + const int k_HistogramThreadY = 16; + + public override bool active + { + get + { + return model.enabled + && SystemInfo.supportsComputeShaders + && !context.interrupted; + } + } + + public void ResetHistory() + { + m_FirstFrame = true; + } + + public override void OnEnable() + { + m_FirstFrame = true; + } + + public override void OnDisable() + { + foreach (var rt in m_AutoExposurePool) + GraphicsUtils.Destroy(rt); + + if (m_HistogramBuffer != null) + m_HistogramBuffer.Release(); + + m_HistogramBuffer = null; + + if (m_DebugHistogram != null) + m_DebugHistogram.Release(); + + m_DebugHistogram = null; + } + + Vector4 GetHistogramScaleOffsetRes() + { + var settings = model.settings; + float diff = settings.logMax - settings.logMin; + float scale = 1f / diff; + float offset = -settings.logMin * scale; + return new Vector4(scale, offset, Mathf.Floor(context.width / 2f), Mathf.Floor(context.height / 2f)); + } + + public Texture Prepare(RenderTexture source, Material uberMaterial) + { + var settings = model.settings; + + // Setup compute + if (m_EyeCompute == null) + m_EyeCompute = Resources.Load<ComputeShader>("Shaders/EyeHistogram"); + + var material = context.materialFactory.Get("Hidden/Post FX/Eye Adaptation"); + material.shaderKeywords = null; + + if (m_HistogramBuffer == null) + m_HistogramBuffer = new ComputeBuffer(k_HistogramBins, sizeof(uint)); + + if (s_EmptyHistogramBuffer == null) + s_EmptyHistogramBuffer = new uint[k_HistogramBins]; + + // Downscale the framebuffer, we don't need an absolute precision for auto exposure and it + // helps making it more stable + var scaleOffsetRes = GetHistogramScaleOffsetRes(); + + var rt = context.renderTextureFactory.Get((int)scaleOffsetRes.z, (int)scaleOffsetRes.w, 0, source.format); + Graphics.Blit(source, rt); + + if (m_AutoExposurePool[0] == null || !m_AutoExposurePool[0].IsCreated()) + m_AutoExposurePool[0] = new RenderTexture(1, 1, 0, RenderTextureFormat.RFloat); + + if (m_AutoExposurePool[1] == null || !m_AutoExposurePool[1].IsCreated()) + m_AutoExposurePool[1] = new RenderTexture(1, 1, 0, RenderTextureFormat.RFloat); + + // Clears the buffer on every frame as we use it to accumulate luminance values on each frame + m_HistogramBuffer.SetData(s_EmptyHistogramBuffer); + + // Gets a log histogram + int kernel = m_EyeCompute.FindKernel("KEyeHistogram"); + m_EyeCompute.SetBuffer(kernel, "_Histogram", m_HistogramBuffer); + m_EyeCompute.SetTexture(kernel, "_Source", rt); + m_EyeCompute.SetVector("_ScaleOffsetRes", scaleOffsetRes); + m_EyeCompute.Dispatch(kernel, Mathf.CeilToInt(rt.width / (float)k_HistogramThreadX), Mathf.CeilToInt(rt.height / (float)k_HistogramThreadY), 1); + + // Cleanup + context.renderTextureFactory.Release(rt); + + // Make sure filtering values are correct to avoid apocalyptic consequences + const float minDelta = 1e-2f; + settings.highPercent = Mathf.Clamp(settings.highPercent, 1f + minDelta, 99f); + settings.lowPercent = Mathf.Clamp(settings.lowPercent, 1f, settings.highPercent - minDelta); + + // Compute auto exposure + material.SetBuffer("_Histogram", m_HistogramBuffer); // No (int, buffer) overload for SetBuffer ? + material.SetVector(Uniforms._Params, new Vector4(settings.lowPercent * 0.01f, settings.highPercent * 0.01f, Mathf.Exp(settings.minLuminance * 0.69314718055994530941723212145818f), Mathf.Exp(settings.maxLuminance * 0.69314718055994530941723212145818f))); + material.SetVector(Uniforms._Speed, new Vector2(settings.speedDown, settings.speedUp)); + material.SetVector(Uniforms._ScaleOffsetRes, scaleOffsetRes); + material.SetFloat(Uniforms._ExposureCompensation, settings.keyValue); + + if (settings.dynamicKeyValue) + material.EnableKeyword("AUTO_KEY_VALUE"); + + if (m_FirstFrame || !Application.isPlaying) + { + // We don't want eye adaptation when not in play mode because the GameView isn't + // animated, thus making it harder to tweak. Just use the final audo exposure value. + m_CurrentAutoExposure = m_AutoExposurePool[0]; + Graphics.Blit(null, m_CurrentAutoExposure, material, (int)EyeAdaptationModel.EyeAdaptationType.Fixed); + + // Copy current exposure to the other pingpong target to avoid adapting from black + Graphics.Blit(m_AutoExposurePool[0], m_AutoExposurePool[1]); + } + else + { + int pp = m_AutoExposurePingPing; + var src = m_AutoExposurePool[++pp % 2]; + var dst = m_AutoExposurePool[++pp % 2]; + Graphics.Blit(src, dst, material, (int)settings.adaptationType); + m_AutoExposurePingPing = ++pp % 2; + m_CurrentAutoExposure = dst; + } + + // Generate debug histogram + if (context.profile.debugViews.IsModeActive(BuiltinDebugViewsModel.Mode.EyeAdaptation)) + { + if (m_DebugHistogram == null || !m_DebugHistogram.IsCreated()) + { + m_DebugHistogram = new RenderTexture(256, 128, 0, RenderTextureFormat.ARGB32) + { + filterMode = FilterMode.Point, + wrapMode = TextureWrapMode.Clamp + }; + } + + material.SetFloat(Uniforms._DebugWidth, m_DebugHistogram.width); + Graphics.Blit(null, m_DebugHistogram, material, 2); + } + + m_FirstFrame = false; + return m_CurrentAutoExposure; + } + + public void OnGUI() + { + if (m_DebugHistogram == null || !m_DebugHistogram.IsCreated()) + return; + + var rect = new Rect(context.viewport.x * Screen.width + 8f, 8f, m_DebugHistogram.width, m_DebugHistogram.height); + GUI.DrawTexture(rect, m_DebugHistogram); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/EyeAdaptationComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/EyeAdaptationComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..aef3d46b248ae8b4dc371e5a6df4ee0c2ac1a094 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/EyeAdaptationComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c227d71a4040d304c943c26e0914bdeb +timeCreated: 1473088756 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/FogComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/FogComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..f04691e784a78e850414adff7b2b43f40e0d5a78 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/FogComponent.cs @@ -0,0 +1,79 @@ +using UnityEngine.Rendering; + +namespace UnityEngine.PostProcessing +{ + public sealed class FogComponent : PostProcessingComponentCommandBuffer<FogModel> + { + static class Uniforms + { + internal static readonly int _FogColor = Shader.PropertyToID("_FogColor"); + internal static readonly int _Density = Shader.PropertyToID("_Density"); + internal static readonly int _Start = Shader.PropertyToID("_Start"); + internal static readonly int _End = Shader.PropertyToID("_End"); + internal static readonly int _TempRT = Shader.PropertyToID("_TempRT"); + } + + const string k_ShaderString = "Hidden/Post FX/Fog"; + + public override bool active + { + get + { + return model.enabled + && context.isGBufferAvailable // In forward fog is already done at shader level + && RenderSettings.fog + && !context.interrupted; + } + } + + public override string GetName() + { + return "Fog"; + } + + public override DepthTextureMode GetCameraFlags() + { + return DepthTextureMode.Depth; + } + + public override CameraEvent GetCameraEvent() + { + return CameraEvent.AfterImageEffectsOpaque; + } + + public override void PopulateCommandBuffer(CommandBuffer cb) + { + var settings = model.settings; + + var material = context.materialFactory.Get(k_ShaderString); + material.shaderKeywords = null; + var fogColor = GraphicsUtils.isLinearColorSpace ? RenderSettings.fogColor.linear : RenderSettings.fogColor; + material.SetColor(Uniforms._FogColor, fogColor); + material.SetFloat(Uniforms._Density, RenderSettings.fogDensity); + material.SetFloat(Uniforms._Start, RenderSettings.fogStartDistance); + material.SetFloat(Uniforms._End, RenderSettings.fogEndDistance); + + switch (RenderSettings.fogMode) + { + case FogMode.Linear: + material.EnableKeyword("FOG_LINEAR"); + break; + case FogMode.Exponential: + material.EnableKeyword("FOG_EXP"); + break; + case FogMode.ExponentialSquared: + material.EnableKeyword("FOG_EXP2"); + break; + } + + var fbFormat = context.isHdr + ? RenderTextureFormat.DefaultHDR + : RenderTextureFormat.Default; + + cb.GetTemporaryRT(Uniforms._TempRT, context.width, context.height, 24, FilterMode.Bilinear, fbFormat); + cb.Blit(BuiltinRenderTextureType.CameraTarget, Uniforms._TempRT); + cb.Blit(Uniforms._TempRT, BuiltinRenderTextureType.CameraTarget, material, settings.excludeSkybox ? 1 : 0); + cb.ReleaseTemporaryRT(Uniforms._TempRT); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/FogComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/FogComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..3044a43af65c20808f8e119c4bab1ef6494793dc --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/FogComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d0363c1cc7de62b4989190994103f5e2 +timeCreated: 1487334918 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/FxaaComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/FxaaComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..d3b03dd9cf129804e27e16ff9fe615f50128463c --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/FxaaComponent.cs @@ -0,0 +1,48 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class FxaaComponent : PostProcessingComponentRenderTexture<AntialiasingModel> + { + static class Uniforms + { + internal static readonly int _QualitySettings = Shader.PropertyToID("_QualitySettings"); + internal static readonly int _ConsoleSettings = Shader.PropertyToID("_ConsoleSettings"); + } + + public override bool active + { + get + { + return model.enabled + && model.settings.method == AntialiasingModel.Method.Fxaa + && !context.interrupted; + } + } + + public void Render(RenderTexture source, RenderTexture destination) + { + var settings = model.settings.fxaaSettings; + var material = context.materialFactory.Get("Hidden/Post FX/FXAA"); + var qualitySettings = AntialiasingModel.FxaaQualitySettings.presets[(int)settings.preset]; + var consoleSettings = AntialiasingModel.FxaaConsoleSettings.presets[(int)settings.preset]; + + material.SetVector(Uniforms._QualitySettings, + new Vector3( + qualitySettings.subpixelAliasingRemovalAmount, + qualitySettings.edgeDetectionThreshold, + qualitySettings.minimumRequiredLuminance + ) + ); + + material.SetVector(Uniforms._ConsoleSettings, + new Vector4( + consoleSettings.subpixelSpreadAmount, + consoleSettings.edgeSharpnessAmount, + consoleSettings.edgeDetectionThreshold, + consoleSettings.minimumRequiredLuminance + ) + ); + + Graphics.Blit(source, destination, material, 0); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/FxaaComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/FxaaComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..43737d720de6889548c6be97686d53959c72ef8a --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/FxaaComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d4e1109c5030ca04e9a28243a35155ff +timeCreated: 1473088423 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/GrainComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/GrainComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..10c2a475d301101ad2aafa0f7893fe44478374b0 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/GrainComponent.cs @@ -0,0 +1,79 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class GrainComponent : PostProcessingComponentRenderTexture<GrainModel> + { + static class Uniforms + { + internal static readonly int _Grain_Params1 = Shader.PropertyToID("_Grain_Params1"); + internal static readonly int _Grain_Params2 = Shader.PropertyToID("_Grain_Params2"); + internal static readonly int _GrainTex = Shader.PropertyToID("_GrainTex"); + internal static readonly int _Phase = Shader.PropertyToID("_Phase"); + } + + public override bool active + { + get + { + return model.enabled + && model.settings.intensity > 0f + && SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGBHalf) + && !context.interrupted; + } + } + + RenderTexture m_GrainLookupRT; + + public override void OnDisable() + { + GraphicsUtils.Destroy(m_GrainLookupRT); + m_GrainLookupRT = null; + } + + public override void Prepare(Material uberMaterial) + { + var settings = model.settings; + + uberMaterial.EnableKeyword("GRAIN"); + + float rndOffsetX; + float rndOffsetY; + +#if POSTFX_DEBUG_STATIC_GRAIN + // Chosen by a fair dice roll + float time = 4f; + rndOffsetX = 0f; + rndOffsetY = 0f; +#else + float time = Time.realtimeSinceStartup; + rndOffsetX = Random.value; + rndOffsetY = Random.value; +#endif + + // Generate the grain lut for the current frame first + if (m_GrainLookupRT == null || !m_GrainLookupRT.IsCreated()) + { + GraphicsUtils.Destroy(m_GrainLookupRT); + + m_GrainLookupRT = new RenderTexture(192, 192, 0, RenderTextureFormat.ARGBHalf) + { + filterMode = FilterMode.Bilinear, + wrapMode = TextureWrapMode.Repeat, + anisoLevel = 0, + name = "Grain Lookup Texture" + }; + + m_GrainLookupRT.Create(); + } + + var grainMaterial = context.materialFactory.Get("Hidden/Post FX/Grain Generator"); + grainMaterial.SetFloat(Uniforms._Phase, time / 20f); + + Graphics.Blit((Texture)null, m_GrainLookupRT, grainMaterial, settings.colored ? 1 : 0); + + // Send everything to the uber shader + uberMaterial.SetTexture(Uniforms._GrainTex, m_GrainLookupRT); + uberMaterial.SetVector(Uniforms._Grain_Params1, new Vector2(settings.luminanceContribution, settings.intensity * 20f)); + uberMaterial.SetVector(Uniforms._Grain_Params2, new Vector4((float)context.width / (float)m_GrainLookupRT.width / settings.size, (float)context.height / (float)m_GrainLookupRT.height / settings.size, rndOffsetX, rndOffsetY)); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/GrainComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/GrainComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..494b43f96515553f52565acf54814daf8b0985f6 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/GrainComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6ff793ec42153c34799eed059982bac3 +timeCreated: 1473084716 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/MotionBlurComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/MotionBlurComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..4f7938185ae664bc6676260ec2075dc361fb7536 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/MotionBlurComponent.cs @@ -0,0 +1,444 @@ +using UnityEngine.Rendering; + +namespace UnityEngine.PostProcessing +{ + using Settings = MotionBlurModel.Settings; + + public sealed class MotionBlurComponent : PostProcessingComponentCommandBuffer<MotionBlurModel> + { + static class Uniforms + { + internal static readonly int _VelocityScale = Shader.PropertyToID("_VelocityScale"); + internal static readonly int _MaxBlurRadius = Shader.PropertyToID("_MaxBlurRadius"); + internal static readonly int _RcpMaxBlurRadius = Shader.PropertyToID("_RcpMaxBlurRadius"); + internal static readonly int _VelocityTex = Shader.PropertyToID("_VelocityTex"); + internal static readonly int _MainTex = Shader.PropertyToID("_MainTex"); + internal static readonly int _Tile2RT = Shader.PropertyToID("_Tile2RT"); + internal static readonly int _Tile4RT = Shader.PropertyToID("_Tile4RT"); + internal static readonly int _Tile8RT = Shader.PropertyToID("_Tile8RT"); + internal static readonly int _TileMaxOffs = Shader.PropertyToID("_TileMaxOffs"); + internal static readonly int _TileMaxLoop = Shader.PropertyToID("_TileMaxLoop"); + internal static readonly int _TileVRT = Shader.PropertyToID("_TileVRT"); + internal static readonly int _NeighborMaxTex = Shader.PropertyToID("_NeighborMaxTex"); + internal static readonly int _LoopCount = Shader.PropertyToID("_LoopCount"); + internal static readonly int _TempRT = Shader.PropertyToID("_TempRT"); + + internal static readonly int _History1LumaTex = Shader.PropertyToID("_History1LumaTex"); + internal static readonly int _History2LumaTex = Shader.PropertyToID("_History2LumaTex"); + internal static readonly int _History3LumaTex = Shader.PropertyToID("_History3LumaTex"); + internal static readonly int _History4LumaTex = Shader.PropertyToID("_History4LumaTex"); + + internal static readonly int _History1ChromaTex = Shader.PropertyToID("_History1ChromaTex"); + internal static readonly int _History2ChromaTex = Shader.PropertyToID("_History2ChromaTex"); + internal static readonly int _History3ChromaTex = Shader.PropertyToID("_History3ChromaTex"); + internal static readonly int _History4ChromaTex = Shader.PropertyToID("_History4ChromaTex"); + + internal static readonly int _History1Weight = Shader.PropertyToID("_History1Weight"); + internal static readonly int _History2Weight = Shader.PropertyToID("_History2Weight"); + internal static readonly int _History3Weight = Shader.PropertyToID("_History3Weight"); + internal static readonly int _History4Weight = Shader.PropertyToID("_History4Weight"); + } + + enum Pass + { + VelocitySetup, + TileMax1, + TileMax2, + TileMaxV, + NeighborMax, + Reconstruction, + FrameCompression, + FrameBlendingChroma, + FrameBlendingRaw + } + + public class ReconstructionFilter + { + // Texture format for storing 2D vectors. + RenderTextureFormat m_VectorRTFormat = RenderTextureFormat.RGHalf; + + // Texture format for storing packed velocity/depth. + RenderTextureFormat m_PackedRTFormat = RenderTextureFormat.ARGB2101010; + + public ReconstructionFilter() + { + CheckTextureFormatSupport(); + } + + void CheckTextureFormatSupport() + { + // If 2:10:10:10 isn't supported, use ARGB32 instead. + if (!SystemInfo.SupportsRenderTextureFormat(m_PackedRTFormat)) + m_PackedRTFormat = RenderTextureFormat.ARGB32; + } + + public bool IsSupported() + { + return SystemInfo.supportsMotionVectors; + } + + public void ProcessImage(PostProcessingContext context, CommandBuffer cb, ref Settings settings, RenderTargetIdentifier source, RenderTargetIdentifier destination, Material material) + { + const float kMaxBlurRadius = 5f; + + // Calculate the maximum blur radius in pixels. + int maxBlurPixels = (int)(kMaxBlurRadius * context.height / 100); + + // Calculate the TileMax size. + // It should be a multiple of 8 and larger than maxBlur. + int tileSize = ((maxBlurPixels - 1) / 8 + 1) * 8; + + // Pass 1 - Velocity/depth packing + var velocityScale = settings.shutterAngle / 360f; + cb.SetGlobalFloat(Uniforms._VelocityScale, velocityScale); + cb.SetGlobalFloat(Uniforms._MaxBlurRadius, maxBlurPixels); + cb.SetGlobalFloat(Uniforms._RcpMaxBlurRadius, 1f / maxBlurPixels); + + int vbuffer = Uniforms._VelocityTex; + cb.GetTemporaryRT(vbuffer, context.width, context.height, 0, FilterMode.Point, m_PackedRTFormat, RenderTextureReadWrite.Linear); + cb.Blit((Texture)null, vbuffer, material, (int)Pass.VelocitySetup); + + // Pass 2 - First TileMax filter (1/2 downsize) + int tile2 = Uniforms._Tile2RT; + cb.GetTemporaryRT(tile2, context.width / 2, context.height / 2, 0, FilterMode.Point, m_VectorRTFormat, RenderTextureReadWrite.Linear); + cb.SetGlobalTexture(Uniforms._MainTex, vbuffer); + cb.Blit(vbuffer, tile2, material, (int)Pass.TileMax1); + + // Pass 3 - Second TileMax filter (1/2 downsize) + int tile4 = Uniforms._Tile4RT; + cb.GetTemporaryRT(tile4, context.width / 4, context.height / 4, 0, FilterMode.Point, m_VectorRTFormat, RenderTextureReadWrite.Linear); + cb.SetGlobalTexture(Uniforms._MainTex, tile2); + cb.Blit(tile2, tile4, material, (int)Pass.TileMax2); + cb.ReleaseTemporaryRT(tile2); + + // Pass 4 - Third TileMax filter (1/2 downsize) + int tile8 = Uniforms._Tile8RT; + cb.GetTemporaryRT(tile8, context.width / 8, context.height / 8, 0, FilterMode.Point, m_VectorRTFormat, RenderTextureReadWrite.Linear); + cb.SetGlobalTexture(Uniforms._MainTex, tile4); + cb.Blit(tile4, tile8, material, (int)Pass.TileMax2); + cb.ReleaseTemporaryRT(tile4); + + // Pass 5 - Fourth TileMax filter (reduce to tileSize) + var tileMaxOffs = Vector2.one * (tileSize / 8f - 1f) * -0.5f; + cb.SetGlobalVector(Uniforms._TileMaxOffs, tileMaxOffs); + cb.SetGlobalFloat(Uniforms._TileMaxLoop, (int)(tileSize / 8f)); + + int tile = Uniforms._TileVRT; + cb.GetTemporaryRT(tile, context.width / tileSize, context.height / tileSize, 0, FilterMode.Point, m_VectorRTFormat, RenderTextureReadWrite.Linear); + cb.SetGlobalTexture(Uniforms._MainTex, tile8); + cb.Blit(tile8, tile, material, (int)Pass.TileMaxV); + cb.ReleaseTemporaryRT(tile8); + + // Pass 6 - NeighborMax filter + int neighborMax = Uniforms._NeighborMaxTex; + int neighborMaxWidth = context.width / tileSize; + int neighborMaxHeight = context.height / tileSize; + cb.GetTemporaryRT(neighborMax, neighborMaxWidth, neighborMaxHeight, 0, FilterMode.Point, m_VectorRTFormat, RenderTextureReadWrite.Linear); + cb.SetGlobalTexture(Uniforms._MainTex, tile); + cb.Blit(tile, neighborMax, material, (int)Pass.NeighborMax); + cb.ReleaseTemporaryRT(tile); + + // Pass 7 - Reconstruction pass + cb.SetGlobalFloat(Uniforms._LoopCount, Mathf.Clamp(settings.sampleCount / 2, 1, 64)); + cb.SetGlobalTexture(Uniforms._MainTex, source); + + cb.Blit(source, destination, material, (int)Pass.Reconstruction); + + cb.ReleaseTemporaryRT(vbuffer); + cb.ReleaseTemporaryRT(neighborMax); + } + } + + public class FrameBlendingFilter + { + struct Frame + { + public RenderTexture lumaTexture; + public RenderTexture chromaTexture; + + float m_Time; + RenderTargetIdentifier[] m_MRT; + + public float CalculateWeight(float strength, float currentTime) + { + if (Mathf.Approximately(m_Time, 0f)) + return 0f; + + var coeff = Mathf.Lerp(80f, 16f, strength); + return Mathf.Exp((m_Time - currentTime) * coeff); + } + + public void Release() + { + if (lumaTexture != null) + RenderTexture.ReleaseTemporary(lumaTexture); + + if (chromaTexture != null) + RenderTexture.ReleaseTemporary(chromaTexture); + + lumaTexture = null; + chromaTexture = null; + } + + public void MakeRecord(CommandBuffer cb, RenderTargetIdentifier source, int width, int height, Material material) + { + Release(); + + lumaTexture = RenderTexture.GetTemporary(width, height, 0, RenderTextureFormat.R8, RenderTextureReadWrite.Linear); + chromaTexture = RenderTexture.GetTemporary(width, height, 0, RenderTextureFormat.R8, RenderTextureReadWrite.Linear); + + lumaTexture.filterMode = FilterMode.Point; + chromaTexture.filterMode = FilterMode.Point; + + if (m_MRT == null) + m_MRT = new RenderTargetIdentifier[2]; + + m_MRT[0] = lumaTexture; + m_MRT[1] = chromaTexture; + + cb.SetGlobalTexture(Uniforms._MainTex, source); + cb.SetRenderTarget(m_MRT, lumaTexture); + cb.DrawMesh(GraphicsUtils.quad, Matrix4x4.identity, material, 0, (int)Pass.FrameCompression); + + m_Time = Time.time; + } + + public void MakeRecordRaw(CommandBuffer cb, RenderTargetIdentifier source, int width, int height, RenderTextureFormat format) + { + Release(); + + lumaTexture = RenderTexture.GetTemporary(width, height, 0, format); + lumaTexture.filterMode = FilterMode.Point; + + cb.SetGlobalTexture(Uniforms._MainTex, source); + cb.Blit(source, lumaTexture); + + m_Time = Time.time; + } + } + + bool m_UseCompression; + RenderTextureFormat m_RawTextureFormat; + + Frame[] m_FrameList; + int m_LastFrameCount; + + public FrameBlendingFilter() + { + m_UseCompression = CheckSupportCompression(); + m_RawTextureFormat = GetPreferredRenderTextureFormat(); + m_FrameList = new Frame[4]; + } + + public void Dispose() + { + foreach (var frame in m_FrameList) + frame.Release(); + } + + public void PushFrame(CommandBuffer cb, RenderTargetIdentifier source, int width, int height, Material material) + { + // Push only when actual update (do nothing while pausing) + var frameCount = Time.frameCount; + if (frameCount == m_LastFrameCount) return; + + // Update the frame record. + var index = frameCount % m_FrameList.Length; + + if (m_UseCompression) + m_FrameList[index].MakeRecord(cb, source, width, height, material); + else + m_FrameList[index].MakeRecordRaw(cb, source, width, height, m_RawTextureFormat); + + m_LastFrameCount = frameCount; + } + + public void BlendFrames(CommandBuffer cb, float strength, RenderTargetIdentifier source, RenderTargetIdentifier destination, Material material) + { + var t = Time.time; + + var f1 = GetFrameRelative(-1); + var f2 = GetFrameRelative(-2); + var f3 = GetFrameRelative(-3); + var f4 = GetFrameRelative(-4); + + cb.SetGlobalTexture(Uniforms._History1LumaTex, f1.lumaTexture); + cb.SetGlobalTexture(Uniforms._History2LumaTex, f2.lumaTexture); + cb.SetGlobalTexture(Uniforms._History3LumaTex, f3.lumaTexture); + cb.SetGlobalTexture(Uniforms._History4LumaTex, f4.lumaTexture); + + cb.SetGlobalTexture(Uniforms._History1ChromaTex, f1.chromaTexture); + cb.SetGlobalTexture(Uniforms._History2ChromaTex, f2.chromaTexture); + cb.SetGlobalTexture(Uniforms._History3ChromaTex, f3.chromaTexture); + cb.SetGlobalTexture(Uniforms._History4ChromaTex, f4.chromaTexture); + + cb.SetGlobalFloat(Uniforms._History1Weight, f1.CalculateWeight(strength, t)); + cb.SetGlobalFloat(Uniforms._History2Weight, f2.CalculateWeight(strength, t)); + cb.SetGlobalFloat(Uniforms._History3Weight, f3.CalculateWeight(strength, t)); + cb.SetGlobalFloat(Uniforms._History4Weight, f4.CalculateWeight(strength, t)); + + cb.SetGlobalTexture(Uniforms._MainTex, source); + cb.Blit(source, destination, material, m_UseCompression ? (int)Pass.FrameBlendingChroma : (int)Pass.FrameBlendingRaw); + } + + // Check if the platform has the capability of compression. + static bool CheckSupportCompression() + { + return + SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.R8) && + SystemInfo.supportedRenderTargetCount > 1; + } + + // Determine which 16-bit render texture format is available. + static RenderTextureFormat GetPreferredRenderTextureFormat() + { + RenderTextureFormat[] formats = + { + RenderTextureFormat.RGB565, + RenderTextureFormat.ARGB1555, + RenderTextureFormat.ARGB4444 + }; + + foreach (var f in formats) + if (SystemInfo.SupportsRenderTextureFormat(f)) return f; + + return RenderTextureFormat.Default; + } + + // Retrieve a frame record with relative indexing. + // Use a negative index to refer to previous frames. + Frame GetFrameRelative(int offset) + { + var index = (Time.frameCount + m_FrameList.Length + offset) % m_FrameList.Length; + return m_FrameList[index]; + } + } + + ReconstructionFilter m_ReconstructionFilter; + public ReconstructionFilter reconstructionFilter + { + get + { + if (m_ReconstructionFilter == null) + m_ReconstructionFilter = new ReconstructionFilter(); + + return m_ReconstructionFilter; + } + } + + FrameBlendingFilter m_FrameBlendingFilter; + public FrameBlendingFilter frameBlendingFilter + { + get + { + if (m_FrameBlendingFilter == null) + m_FrameBlendingFilter = new FrameBlendingFilter(); + + return m_FrameBlendingFilter; + } + } + + bool m_FirstFrame = true; + + public override bool active + { + get + { + var settings = model.settings; + return model.enabled + && ((settings.shutterAngle > 0f && reconstructionFilter.IsSupported()) || settings.frameBlending > 0f) + && SystemInfo.graphicsDeviceType != GraphicsDeviceType.OpenGLES2 // No movecs on GLES2 platforms + && !context.interrupted; + } + } + + public override string GetName() + { + return "Motion Blur"; + } + + public void ResetHistory() + { + if (m_FrameBlendingFilter != null) + m_FrameBlendingFilter.Dispose(); + + m_FrameBlendingFilter = null; + } + + public override DepthTextureMode GetCameraFlags() + { + return DepthTextureMode.Depth | DepthTextureMode.MotionVectors; + } + + public override CameraEvent GetCameraEvent() + { + return CameraEvent.BeforeImageEffects; + } + + public override void OnEnable() + { + m_FirstFrame = true; + } + + public override void PopulateCommandBuffer(CommandBuffer cb) + { +#if UNITY_EDITOR + // Don't render motion blur preview when the editor is not playing as it can in some + // cases results in ugly artifacts (i.e. when resizing the game view). + if (!Application.isPlaying) + return; +#endif + + // Skip rendering in the first frame as motion vectors won't be abvailable until the + // next one + if (m_FirstFrame) + { + m_FirstFrame = false; + return; + } + + var material = context.materialFactory.Get("Hidden/Post FX/Motion Blur"); + var blitMaterial = context.materialFactory.Get("Hidden/Post FX/Blit"); + var settings = model.settings; + + var fbFormat = context.isHdr + ? RenderTextureFormat.DefaultHDR + : RenderTextureFormat.Default; + + int tempRT = Uniforms._TempRT; + cb.GetTemporaryRT(tempRT, context.width, context.height, 0, FilterMode.Point, fbFormat); + + if (settings.shutterAngle > 0f && settings.frameBlending > 0f) + { + // Motion blur + frame blending + reconstructionFilter.ProcessImage(context, cb, ref settings, BuiltinRenderTextureType.CameraTarget, tempRT, material); + frameBlendingFilter.BlendFrames(cb, settings.frameBlending, tempRT, BuiltinRenderTextureType.CameraTarget, material); + frameBlendingFilter.PushFrame(cb, tempRT, context.width, context.height, material); + } + else if (settings.shutterAngle > 0f) + { + // No frame blending + cb.SetGlobalTexture(Uniforms._MainTex, BuiltinRenderTextureType.CameraTarget); + cb.Blit(BuiltinRenderTextureType.CameraTarget, tempRT, blitMaterial, 0); + reconstructionFilter.ProcessImage(context, cb, ref settings, tempRT, BuiltinRenderTextureType.CameraTarget, material); + } + else if (settings.frameBlending > 0f) + { + // Frame blending only + cb.SetGlobalTexture(Uniforms._MainTex, BuiltinRenderTextureType.CameraTarget); + cb.Blit(BuiltinRenderTextureType.CameraTarget, tempRT, blitMaterial, 0); + frameBlendingFilter.BlendFrames(cb, settings.frameBlending, tempRT, BuiltinRenderTextureType.CameraTarget, material); + frameBlendingFilter.PushFrame(cb, tempRT, context.width, context.height, material); + } + + // Cleaning up + cb.ReleaseTemporaryRT(tempRT); + } + + public override void OnDisable() + { + if (m_FrameBlendingFilter != null) + m_FrameBlendingFilter.Dispose(); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/MotionBlurComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/MotionBlurComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2d1818da2c708a651f095f1c99a4135c569abb99 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/MotionBlurComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9a9ae59cbb7c53e40851df7f32805098 +timeCreated: 1468325905 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/ScreenSpaceReflectionComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ScreenSpaceReflectionComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..7411f85158d9abea50c9f8e26557e4f51a9dc660 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ScreenSpaceReflectionComponent.cs @@ -0,0 +1,239 @@ +using UnityEngine.Rendering; + +namespace UnityEngine.PostProcessing +{ + using SSRResolution = ScreenSpaceReflectionModel.SSRResolution; + using SSRReflectionBlendType = ScreenSpaceReflectionModel.SSRReflectionBlendType; + + public sealed class ScreenSpaceReflectionComponent : PostProcessingComponentCommandBuffer<ScreenSpaceReflectionModel> + { + static class Uniforms + { + internal static readonly int _RayStepSize = Shader.PropertyToID("_RayStepSize"); + internal static readonly int _AdditiveReflection = Shader.PropertyToID("_AdditiveReflection"); + internal static readonly int _BilateralUpsampling = Shader.PropertyToID("_BilateralUpsampling"); + internal static readonly int _TreatBackfaceHitAsMiss = Shader.PropertyToID("_TreatBackfaceHitAsMiss"); + internal static readonly int _AllowBackwardsRays = Shader.PropertyToID("_AllowBackwardsRays"); + internal static readonly int _TraceBehindObjects = Shader.PropertyToID("_TraceBehindObjects"); + internal static readonly int _MaxSteps = Shader.PropertyToID("_MaxSteps"); + internal static readonly int _FullResolutionFiltering = Shader.PropertyToID("_FullResolutionFiltering"); + internal static readonly int _HalfResolution = Shader.PropertyToID("_HalfResolution"); + internal static readonly int _HighlightSuppression = Shader.PropertyToID("_HighlightSuppression"); + internal static readonly int _PixelsPerMeterAtOneMeter = Shader.PropertyToID("_PixelsPerMeterAtOneMeter"); + internal static readonly int _ScreenEdgeFading = Shader.PropertyToID("_ScreenEdgeFading"); + internal static readonly int _ReflectionBlur = Shader.PropertyToID("_ReflectionBlur"); + internal static readonly int _MaxRayTraceDistance = Shader.PropertyToID("_MaxRayTraceDistance"); + internal static readonly int _FadeDistance = Shader.PropertyToID("_FadeDistance"); + internal static readonly int _LayerThickness = Shader.PropertyToID("_LayerThickness"); + internal static readonly int _SSRMultiplier = Shader.PropertyToID("_SSRMultiplier"); + internal static readonly int _FresnelFade = Shader.PropertyToID("_FresnelFade"); + internal static readonly int _FresnelFadePower = Shader.PropertyToID("_FresnelFadePower"); + internal static readonly int _ReflectionBufferSize = Shader.PropertyToID("_ReflectionBufferSize"); + internal static readonly int _ScreenSize = Shader.PropertyToID("_ScreenSize"); + internal static readonly int _InvScreenSize = Shader.PropertyToID("_InvScreenSize"); + internal static readonly int _ProjInfo = Shader.PropertyToID("_ProjInfo"); + internal static readonly int _CameraClipInfo = Shader.PropertyToID("_CameraClipInfo"); + internal static readonly int _ProjectToPixelMatrix = Shader.PropertyToID("_ProjectToPixelMatrix"); + internal static readonly int _WorldToCameraMatrix = Shader.PropertyToID("_WorldToCameraMatrix"); + internal static readonly int _CameraToWorldMatrix = Shader.PropertyToID("_CameraToWorldMatrix"); + internal static readonly int _Axis = Shader.PropertyToID("_Axis"); + internal static readonly int _CurrentMipLevel = Shader.PropertyToID("_CurrentMipLevel"); + internal static readonly int _NormalAndRoughnessTexture = Shader.PropertyToID("_NormalAndRoughnessTexture"); + internal static readonly int _HitPointTexture = Shader.PropertyToID("_HitPointTexture"); + internal static readonly int _BlurTexture = Shader.PropertyToID("_BlurTexture"); + internal static readonly int _FilteredReflections = Shader.PropertyToID("_FilteredReflections"); + internal static readonly int _FinalReflectionTexture = Shader.PropertyToID("_FinalReflectionTexture"); + internal static readonly int _TempTexture = Shader.PropertyToID("_TempTexture"); + } + + // Unexposed variables + bool k_HighlightSuppression = false; + bool k_TraceBehindObjects = true; + bool k_TreatBackfaceHitAsMiss = false; + bool k_BilateralUpsample = true; + + enum PassIndex + { + RayTraceStep = 0, + CompositeFinal = 1, + Blur = 2, + CompositeSSR = 3, + MinMipGeneration = 4, + HitPointToReflections = 5, + BilateralKeyPack = 6, + BlitDepthAsCSZ = 7, + PoissonBlur = 8, + } + + readonly int[] m_ReflectionTextures = new int[5]; + + // Not really needed as SSR only works in deferred right now + public override DepthTextureMode GetCameraFlags() + { + return DepthTextureMode.Depth; + } + + public override bool active + { + get + { + return model.enabled + && context.isGBufferAvailable + && !context.interrupted; + } + } + + public override void OnEnable() + { + m_ReflectionTextures[0] = Shader.PropertyToID("_ReflectionTexture0"); + m_ReflectionTextures[1] = Shader.PropertyToID("_ReflectionTexture1"); + m_ReflectionTextures[2] = Shader.PropertyToID("_ReflectionTexture2"); + m_ReflectionTextures[3] = Shader.PropertyToID("_ReflectionTexture3"); + m_ReflectionTextures[4] = Shader.PropertyToID("_ReflectionTexture4"); + } + + public override string GetName() + { + return "Screen Space Reflection"; + } + + public override CameraEvent GetCameraEvent() + { + return CameraEvent.AfterFinalPass; + } + + public override void PopulateCommandBuffer(CommandBuffer cb) + { + var settings = model.settings; + var camera = context.camera; + + // Material setup + int downsampleAmount = (settings.reflection.reflectionQuality == SSRResolution.High) ? 1 : 2; + + var rtW = context.width / downsampleAmount; + var rtH = context.height / downsampleAmount; + + float sWidth = context.width; + float sHeight = context.height; + + float sx = sWidth / 2f; + float sy = sHeight / 2f; + + var material = context.materialFactory.Get("Hidden/Post FX/Screen Space Reflection"); + + material.SetInt(Uniforms._RayStepSize, settings.reflection.stepSize); + material.SetInt(Uniforms._AdditiveReflection, settings.reflection.blendType == SSRReflectionBlendType.Additive ? 1 : 0); + material.SetInt(Uniforms._BilateralUpsampling, k_BilateralUpsample ? 1 : 0); + material.SetInt(Uniforms._TreatBackfaceHitAsMiss, k_TreatBackfaceHitAsMiss ? 1 : 0); + material.SetInt(Uniforms._AllowBackwardsRays, settings.reflection.reflectBackfaces ? 1 : 0); + material.SetInt(Uniforms._TraceBehindObjects, k_TraceBehindObjects ? 1 : 0); + material.SetInt(Uniforms._MaxSteps, settings.reflection.iterationCount); + material.SetInt(Uniforms._FullResolutionFiltering, 0); + material.SetInt(Uniforms._HalfResolution, (settings.reflection.reflectionQuality != SSRResolution.High) ? 1 : 0); + material.SetInt(Uniforms._HighlightSuppression, k_HighlightSuppression ? 1 : 0); + + // The height in pixels of a 1m object if viewed from 1m away. + float pixelsPerMeterAtOneMeter = sWidth / (-2f * Mathf.Tan(camera.fieldOfView / 180f * Mathf.PI * 0.5f)); + + material.SetFloat(Uniforms._PixelsPerMeterAtOneMeter, pixelsPerMeterAtOneMeter); + material.SetFloat(Uniforms._ScreenEdgeFading, settings.screenEdgeMask.intensity); + material.SetFloat(Uniforms._ReflectionBlur, settings.reflection.reflectionBlur); + material.SetFloat(Uniforms._MaxRayTraceDistance, settings.reflection.maxDistance); + material.SetFloat(Uniforms._FadeDistance, settings.intensity.fadeDistance); + material.SetFloat(Uniforms._LayerThickness, settings.reflection.widthModifier); + material.SetFloat(Uniforms._SSRMultiplier, settings.intensity.reflectionMultiplier); + material.SetFloat(Uniforms._FresnelFade, settings.intensity.fresnelFade); + material.SetFloat(Uniforms._FresnelFadePower, settings.intensity.fresnelFadePower); + + var P = camera.projectionMatrix; + var projInfo = new Vector4( + -2f / (sWidth * P[0]), + -2f / (sHeight * P[5]), + (1f - P[2]) / P[0], + (1f + P[6]) / P[5] + ); + + var cameraClipInfo = float.IsPositiveInfinity(camera.farClipPlane) ? + new Vector3(camera.nearClipPlane, -1f, 1f) : + new Vector3(camera.nearClipPlane * camera.farClipPlane, camera.nearClipPlane - camera.farClipPlane, camera.farClipPlane); + + material.SetVector(Uniforms._ReflectionBufferSize, new Vector2(rtW, rtH)); + material.SetVector(Uniforms._ScreenSize, new Vector2(sWidth, sHeight)); + material.SetVector(Uniforms._InvScreenSize, new Vector2(1f / sWidth, 1f / sHeight)); + material.SetVector(Uniforms._ProjInfo, projInfo); // used for unprojection + + material.SetVector(Uniforms._CameraClipInfo, cameraClipInfo); + + var warpToScreenSpaceMatrix = new Matrix4x4(); + warpToScreenSpaceMatrix.SetRow(0, new Vector4(sx, 0f, 0f, sx)); + warpToScreenSpaceMatrix.SetRow(1, new Vector4(0f, sy, 0f, sy)); + warpToScreenSpaceMatrix.SetRow(2, new Vector4(0f, 0f, 1f, 0f)); + warpToScreenSpaceMatrix.SetRow(3, new Vector4(0f, 0f, 0f, 1f)); + + var projectToPixelMatrix = warpToScreenSpaceMatrix * P; + + material.SetMatrix(Uniforms._ProjectToPixelMatrix, projectToPixelMatrix); + material.SetMatrix(Uniforms._WorldToCameraMatrix, camera.worldToCameraMatrix); + material.SetMatrix(Uniforms._CameraToWorldMatrix, camera.worldToCameraMatrix.inverse); + + // Command buffer setup + var intermediateFormat = context.isHdr ? RenderTextureFormat.ARGBHalf : RenderTextureFormat.ARGB32; + const int maxMip = 5; + + var kNormalAndRoughnessTexture = Uniforms._NormalAndRoughnessTexture; + var kHitPointTexture = Uniforms._HitPointTexture; + var kBlurTexture = Uniforms._BlurTexture; + var kFilteredReflections = Uniforms._FilteredReflections; + var kFinalReflectionTexture = Uniforms._FinalReflectionTexture; + var kTempTexture = Uniforms._TempTexture; + + // RGB: Normals, A: Roughness. + // Has the nice benefit of allowing us to control the filtering mode as well. + cb.GetTemporaryRT(kNormalAndRoughnessTexture, -1, -1, 0, FilterMode.Point, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear); + + cb.GetTemporaryRT(kHitPointTexture, rtW, rtH, 0, FilterMode.Bilinear, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear); + + for (int i = 0; i < maxMip; ++i) + { + // We explicitly interpolate during bilateral upsampling. + cb.GetTemporaryRT(m_ReflectionTextures[i], rtW >> i, rtH >> i, 0, FilterMode.Bilinear, intermediateFormat); + } + + cb.GetTemporaryRT(kFilteredReflections, rtW, rtH, 0, k_BilateralUpsample ? FilterMode.Point : FilterMode.Bilinear, intermediateFormat); + cb.GetTemporaryRT(kFinalReflectionTexture, rtW, rtH, 0, FilterMode.Point, intermediateFormat); + + cb.Blit(BuiltinRenderTextureType.CameraTarget, kNormalAndRoughnessTexture, material, (int)PassIndex.BilateralKeyPack); + cb.Blit(BuiltinRenderTextureType.CameraTarget, kHitPointTexture, material, (int)PassIndex.RayTraceStep); + cb.Blit(BuiltinRenderTextureType.CameraTarget, kFilteredReflections, material, (int)PassIndex.HitPointToReflections); + cb.Blit(kFilteredReflections, m_ReflectionTextures[0], material, (int)PassIndex.PoissonBlur); + + for (int i = 1; i < maxMip; ++i) + { + int inputTex = m_ReflectionTextures[i - 1]; + + int lowMip = i; + + cb.GetTemporaryRT(kBlurTexture, rtW >> lowMip, rtH >> lowMip, 0, FilterMode.Bilinear, intermediateFormat); + cb.SetGlobalVector(Uniforms._Axis, new Vector4(1.0f, 0.0f, 0.0f, 0.0f)); + cb.SetGlobalFloat(Uniforms._CurrentMipLevel, i - 1.0f); + + cb.Blit(inputTex, kBlurTexture, material, (int)PassIndex.Blur); + + cb.SetGlobalVector(Uniforms._Axis, new Vector4(0.0f, 1.0f, 0.0f, 0.0f)); + + inputTex = m_ReflectionTextures[i]; + cb.Blit(kBlurTexture, inputTex, material, (int)PassIndex.Blur); + cb.ReleaseTemporaryRT(kBlurTexture); + } + + cb.Blit(m_ReflectionTextures[0], kFinalReflectionTexture, material, (int)PassIndex.CompositeSSR); + + cb.GetTemporaryRT(kTempTexture, camera.pixelWidth, camera.pixelHeight, 0, FilterMode.Bilinear, intermediateFormat); + + cb.Blit(BuiltinRenderTextureType.CameraTarget, kTempTexture, material, (int)PassIndex.CompositeFinal); + cb.Blit(kTempTexture, BuiltinRenderTextureType.CameraTarget); + + cb.ReleaseTemporaryRT(kTempTexture); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/ScreenSpaceReflectionComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ScreenSpaceReflectionComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..2c4ad1c42ae46cceba5a7de0f9bc4d0e3a4aa111 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/ScreenSpaceReflectionComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dd75f795d6a798f44a7801082f6a703f +timeCreated: 1467626205 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/TaaComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/TaaComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..afd9d4908ca4630bf7af1ce4869d6704c57d37d3 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/TaaComponent.cs @@ -0,0 +1,216 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + public sealed class TaaComponent : PostProcessingComponentRenderTexture<AntialiasingModel> + { + static class Uniforms + { + internal static int _Jitter = Shader.PropertyToID("_Jitter"); + internal static int _SharpenParameters = Shader.PropertyToID("_SharpenParameters"); + internal static int _FinalBlendParameters = Shader.PropertyToID("_FinalBlendParameters"); + internal static int _HistoryTex = Shader.PropertyToID("_HistoryTex"); + internal static int _MainTex = Shader.PropertyToID("_MainTex"); + } + + const string k_ShaderString = "Hidden/Post FX/Temporal Anti-aliasing"; + const int k_SampleCount = 8; + + readonly RenderBuffer[] m_MRT = new RenderBuffer[2]; + + int m_SampleIndex = 0; + bool m_ResetHistory = true; + + RenderTexture m_HistoryTexture; + + public override bool active + { + get + { + return model.enabled + && model.settings.method == AntialiasingModel.Method.Taa + && SystemInfo.supportsMotionVectors + && SystemInfo.supportedRenderTargetCount >= 2 + && !context.interrupted; + } + } + + public override DepthTextureMode GetCameraFlags() + { + return DepthTextureMode.Depth | DepthTextureMode.MotionVectors; + } + + public Vector2 jitterVector { get; private set; } + + public void ResetHistory() + { + m_ResetHistory = true; + } + + public void SetProjectionMatrix(Func<Vector2, Matrix4x4> jitteredFunc) + { + var settings = model.settings.taaSettings; + + var jitter = GenerateRandomOffset(); + jitter *= settings.jitterSpread; + + context.camera.nonJitteredProjectionMatrix = context.camera.projectionMatrix; + + if (jitteredFunc != null) + { + context.camera.projectionMatrix = jitteredFunc(jitter); + } + else + { + context.camera.projectionMatrix = context.camera.orthographic + ? GetOrthographicProjectionMatrix(jitter) + : GetPerspectiveProjectionMatrix(jitter); + } + +#if UNITY_5_5_OR_NEWER + context.camera.useJitteredProjectionMatrixForTransparentRendering = false; +#endif + + jitter.x /= context.width; + jitter.y /= context.height; + + var material = context.materialFactory.Get(k_ShaderString); + material.SetVector(Uniforms._Jitter, jitter); + + jitterVector = jitter; + } + + public void Render(RenderTexture source, RenderTexture destination) + { + var material = context.materialFactory.Get(k_ShaderString); + material.shaderKeywords = null; + + var settings = model.settings.taaSettings; + + if (m_ResetHistory || m_HistoryTexture == null || m_HistoryTexture.width != source.width || m_HistoryTexture.height != source.height) + { + if (m_HistoryTexture) + RenderTexture.ReleaseTemporary(m_HistoryTexture); + + m_HistoryTexture = RenderTexture.GetTemporary(source.width, source.height, 0, source.format); + m_HistoryTexture.name = "TAA History"; + + Graphics.Blit(source, m_HistoryTexture, material, 2); + } + + const float kMotionAmplification = 100f * 60f; + material.SetVector(Uniforms._SharpenParameters, new Vector4(settings.sharpen, 0f, 0f, 0f)); + material.SetVector(Uniforms._FinalBlendParameters, new Vector4(settings.stationaryBlending, settings.motionBlending, kMotionAmplification, 0f)); + material.SetTexture(Uniforms._MainTex, source); + material.SetTexture(Uniforms._HistoryTex, m_HistoryTexture); + + var tempHistory = RenderTexture.GetTemporary(source.width, source.height, 0, source.format); + tempHistory.name = "TAA History"; + + m_MRT[0] = destination.colorBuffer; + m_MRT[1] = tempHistory.colorBuffer; + + Graphics.SetRenderTarget(m_MRT, source.depthBuffer); + GraphicsUtils.Blit(material, context.camera.orthographic ? 1 : 0); + + RenderTexture.ReleaseTemporary(m_HistoryTexture); + m_HistoryTexture = tempHistory; + + m_ResetHistory = false; + } + + float GetHaltonValue(int index, int radix) + { + float result = 0f; + float fraction = 1f / (float)radix; + + while (index > 0) + { + result += (float)(index % radix) * fraction; + + index /= radix; + fraction /= (float)radix; + } + + return result; + } + + Vector2 GenerateRandomOffset() + { + var offset = new Vector2( + GetHaltonValue(m_SampleIndex & 1023, 2), + GetHaltonValue(m_SampleIndex & 1023, 3)); + + if (++m_SampleIndex >= k_SampleCount) + m_SampleIndex = 0; + + return offset; + } + + // Adapted heavily from PlayDead's TAA code + // https://github.com/playdeadgames/temporal/blob/master/Assets/Scripts/Extensions.cs + Matrix4x4 GetPerspectiveProjectionMatrix(Vector2 offset) + { + float vertical = Mathf.Tan(0.5f * Mathf.Deg2Rad * context.camera.fieldOfView); + float horizontal = vertical * context.camera.aspect; + + offset.x *= horizontal / (0.5f * context.width); + offset.y *= vertical / (0.5f * context.height); + + float left = (offset.x - horizontal) * context.camera.nearClipPlane; + float right = (offset.x + horizontal) * context.camera.nearClipPlane; + float top = (offset.y + vertical) * context.camera.nearClipPlane; + float bottom = (offset.y - vertical) * context.camera.nearClipPlane; + + var matrix = new Matrix4x4(); + + matrix[0, 0] = (2f * context.camera.nearClipPlane) / (right - left); + matrix[0, 1] = 0f; + matrix[0, 2] = (right + left) / (right - left); + matrix[0, 3] = 0f; + + matrix[1, 0] = 0f; + matrix[1, 1] = (2f * context.camera.nearClipPlane) / (top - bottom); + matrix[1, 2] = (top + bottom) / (top - bottom); + matrix[1, 3] = 0f; + + matrix[2, 0] = 0f; + matrix[2, 1] = 0f; + matrix[2, 2] = -(context.camera.farClipPlane + context.camera.nearClipPlane) / (context.camera.farClipPlane - context.camera.nearClipPlane); + matrix[2, 3] = -(2f * context.camera.farClipPlane * context.camera.nearClipPlane) / (context.camera.farClipPlane - context.camera.nearClipPlane); + + matrix[3, 0] = 0f; + matrix[3, 1] = 0f; + matrix[3, 2] = -1f; + matrix[3, 3] = 0f; + + return matrix; + } + + Matrix4x4 GetOrthographicProjectionMatrix(Vector2 offset) + { + float vertical = context.camera.orthographicSize; + float horizontal = vertical * context.camera.aspect; + + offset.x *= horizontal / (0.5f * context.width); + offset.y *= vertical / (0.5f * context.height); + + float left = offset.x - horizontal; + float right = offset.x + horizontal; + float top = offset.y + vertical; + float bottom = offset.y - vertical; + + return Matrix4x4.Ortho(left, right, bottom, top, context.camera.nearClipPlane, context.camera.farClipPlane); + } + + public override void OnDisable() + { + if (m_HistoryTexture != null) + RenderTexture.ReleaseTemporary(m_HistoryTexture); + + m_HistoryTexture = null; + m_SampleIndex = 0; + ResetHistory(); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/TaaComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/TaaComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..e0553ba96cf5a8eaf2bacc4a04246fc2c9514bc7 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/TaaComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f28703283e17be54180fd04a7c70e1d5 +timeCreated: 1472806965 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/UserLutComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/UserLutComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..0dd05de22464e490e6d2bc2410f5d62bb8406979 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/UserLutComponent.cs @@ -0,0 +1,39 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class UserLutComponent : PostProcessingComponentRenderTexture<UserLutModel> + { + static class Uniforms + { + internal static readonly int _UserLut = Shader.PropertyToID("_UserLut"); + internal static readonly int _UserLut_Params = Shader.PropertyToID("_UserLut_Params"); + } + + public override bool active + { + get + { + var settings = model.settings; + return model.enabled + && settings.lut != null + && settings.contribution > 0f + && settings.lut.height == (int)Mathf.Sqrt(settings.lut.width) + && !context.interrupted; + } + } + + public override void Prepare(Material uberMaterial) + { + var settings = model.settings; + uberMaterial.EnableKeyword("USER_LUT"); + uberMaterial.SetTexture(Uniforms._UserLut, settings.lut); + uberMaterial.SetVector(Uniforms._UserLut_Params, new Vector4(1f / settings.lut.width, 1f / settings.lut.height, settings.lut.height - 1f, settings.contribution)); + } + + public void OnGUI() + { + var settings = model.settings; + var rect = new Rect(context.viewport.x * Screen.width + 8f, 8f, settings.lut.width, settings.lut.height); + GUI.DrawTexture(rect, settings.lut); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/UserLutComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/UserLutComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..58e6f50998e823919937114cfa04feed05cdaee9 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/UserLutComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 63cb071fb8442a14f85c02e6ddba9b72 +timeCreated: 1473086193 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/VignetteComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Components/VignetteComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..58148ddfc07904160bced1ca98b51927c9257c73 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/VignetteComponent.cs @@ -0,0 +1,46 @@ +namespace UnityEngine.PostProcessing +{ + public sealed class VignetteComponent : PostProcessingComponentRenderTexture<VignetteModel> + { + static class Uniforms + { + internal static readonly int _Vignette_Color = Shader.PropertyToID("_Vignette_Color"); + internal static readonly int _Vignette_Center = Shader.PropertyToID("_Vignette_Center"); + internal static readonly int _Vignette_Settings = Shader.PropertyToID("_Vignette_Settings"); + internal static readonly int _Vignette_Mask = Shader.PropertyToID("_Vignette_Mask"); + internal static readonly int _Vignette_Opacity = Shader.PropertyToID("_Vignette_Opacity"); + } + + public override bool active + { + get + { + return model.enabled + && !context.interrupted; + } + } + + public override void Prepare(Material uberMaterial) + { + var settings = model.settings; + uberMaterial.SetColor(Uniforms._Vignette_Color, settings.color); + + if (settings.mode == VignetteModel.Mode.Classic) + { + uberMaterial.SetVector(Uniforms._Vignette_Center, settings.center); + uberMaterial.EnableKeyword("VIGNETTE_CLASSIC"); + float roundness = (1f - settings.roundness) * 6f + settings.roundness; + uberMaterial.SetVector(Uniforms._Vignette_Settings, new Vector4(settings.intensity * 3f, settings.smoothness * 5f, roundness, settings.rounded ? 1f : 0f)); + } + else if (settings.mode == VignetteModel.Mode.Masked) + { + if (settings.mask != null && settings.opacity > 0f) + { + uberMaterial.EnableKeyword("VIGNETTE_MASKED"); + uberMaterial.SetTexture(Uniforms._Vignette_Mask, settings.mask); + uberMaterial.SetFloat(Uniforms._Vignette_Opacity, settings.opacity); + } + } + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Components/VignetteComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Components/VignetteComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..33806e20f0a4c4063780e65b15c40d9f50ddc94f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Components/VignetteComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 39074aa97f4be23438147346f081c7f3 +timeCreated: 1473083872 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models.meta new file mode 100644 index 0000000000000000000000000000000000000000..5c9db227d99814620d26d35197092b570ad496e8 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d5a699332eb8a9499077fa4bcd4e0a0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/AmbientOcclusionModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/AmbientOcclusionModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..189d447c267f1fff4243000b104706b6e474c766 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/AmbientOcclusionModel.cs @@ -0,0 +1,71 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class AmbientOcclusionModel : PostProcessingModel + { + public enum SampleCount + { + Lowest = 3, + Low = 6, + Medium = 10, + High = 16 + } + + [Serializable] + public struct Settings + { + [Range(0, 4), Tooltip("Degree of darkness produced by the effect.")] + public float intensity; + + [Min(1e-4f), Tooltip("Radius of sample points, which affects extent of darkened areas.")] + public float radius; + + [Tooltip("Number of sample points, which affects quality and performance.")] + public SampleCount sampleCount; + + [Tooltip("Halves the resolution of the effect to increase performance at the cost of visual quality.")] + public bool downsampling; + + [Tooltip("Forces compatibility with Forward rendered objects when working with the Deferred rendering path.")] + public bool forceForwardCompatibility; + + [Tooltip("Enables the ambient-only mode in that the effect only affects ambient lighting. This mode is only available with the Deferred rendering path and HDR rendering.")] + public bool ambientOnly; + + [Tooltip("Toggles the use of a higher precision depth texture with the forward rendering path (may impact performances). Has no effect with the deferred rendering path.")] + public bool highPrecision; + + public static Settings defaultSettings + { + get + { + return new Settings + { + intensity = 1f, + radius = 0.3f, + sampleCount = SampleCount.Medium, + downsampling = true, + forceForwardCompatibility = false, + ambientOnly = false, + highPrecision = false + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/AmbientOcclusionModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/AmbientOcclusionModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..fadb8b3dc21986ac121c4cc26e67d7f1ddb94e84 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/AmbientOcclusionModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 564228afc5cbd5f49beb80038b4b7af2 +timeCreated: 1462280796 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/AntialiasingModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/AntialiasingModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..05e73a78f7a539fd939c0ffea1956407e5c51146 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/AntialiasingModel.cs @@ -0,0 +1,242 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class AntialiasingModel : PostProcessingModel + { + public enum Method + { + Fxaa, + Taa + } + + // Most settings aren't exposed to the user anymore, presets are enough. Still, I'm leaving + // the tooltip attributes in case an user wants to customize each preset. + + #region FXAA Settings + public enum FxaaPreset + { + ExtremePerformance, + Performance, + Default, + Quality, + ExtremeQuality + } + + [Serializable] + public struct FxaaQualitySettings + { + [Tooltip("The amount of desired sub-pixel aliasing removal. Effects the sharpeness of the output.")] + [Range(0f, 1f)] + public float subpixelAliasingRemovalAmount; + + [Tooltip("The minimum amount of local contrast required to qualify a region as containing an edge.")] + [Range(0.063f, 0.333f)] + public float edgeDetectionThreshold; + + [Tooltip("Local contrast adaptation value to disallow the algorithm from executing on the darker regions.")] + [Range(0f, 0.0833f)] + public float minimumRequiredLuminance; + + public static FxaaQualitySettings[] presets = + { + // ExtremePerformance + new FxaaQualitySettings + { + subpixelAliasingRemovalAmount = 0f, + edgeDetectionThreshold = 0.333f, + minimumRequiredLuminance = 0.0833f + }, + + // Performance + new FxaaQualitySettings + { + subpixelAliasingRemovalAmount = 0.25f, + edgeDetectionThreshold = 0.25f, + minimumRequiredLuminance = 0.0833f + }, + + // Default + new FxaaQualitySettings + { + subpixelAliasingRemovalAmount = 0.75f, + edgeDetectionThreshold = 0.166f, + minimumRequiredLuminance = 0.0833f + }, + + // Quality + new FxaaQualitySettings + { + subpixelAliasingRemovalAmount = 1f, + edgeDetectionThreshold = 0.125f, + minimumRequiredLuminance = 0.0625f + }, + + // ExtremeQuality + new FxaaQualitySettings + { + subpixelAliasingRemovalAmount = 1f, + edgeDetectionThreshold = 0.063f, + minimumRequiredLuminance = 0.0312f + } + }; + } + + [Serializable] + public struct FxaaConsoleSettings + { + [Tooltip("The amount of spread applied to the sampling coordinates while sampling for subpixel information.")] + [Range(0.33f, 0.5f)] + public float subpixelSpreadAmount; + + [Tooltip("This value dictates how sharp the edges in the image are kept; a higher value implies sharper edges.")] + [Range(2f, 8f)] + public float edgeSharpnessAmount; + + [Tooltip("The minimum amount of local contrast required to qualify a region as containing an edge.")] + [Range(0.125f, 0.25f)] + public float edgeDetectionThreshold; + + [Tooltip("Local contrast adaptation value to disallow the algorithm from executing on the darker regions.")] + [Range(0.04f, 0.06f)] + public float minimumRequiredLuminance; + + public static FxaaConsoleSettings[] presets = + { + // ExtremePerformance + new FxaaConsoleSettings + { + subpixelSpreadAmount = 0.33f, + edgeSharpnessAmount = 8f, + edgeDetectionThreshold = 0.25f, + minimumRequiredLuminance = 0.06f + }, + + // Performance + new FxaaConsoleSettings + { + subpixelSpreadAmount = 0.33f, + edgeSharpnessAmount = 8f, + edgeDetectionThreshold = 0.125f, + minimumRequiredLuminance = 0.06f + }, + + // Default + new FxaaConsoleSettings + { + subpixelSpreadAmount = 0.5f, + edgeSharpnessAmount = 8f, + edgeDetectionThreshold = 0.125f, + minimumRequiredLuminance = 0.05f + }, + + // Quality + new FxaaConsoleSettings + { + subpixelSpreadAmount = 0.5f, + edgeSharpnessAmount = 4f, + edgeDetectionThreshold = 0.125f, + minimumRequiredLuminance = 0.04f + }, + + // ExtremeQuality + new FxaaConsoleSettings + { + subpixelSpreadAmount = 0.5f, + edgeSharpnessAmount = 2f, + edgeDetectionThreshold = 0.125f, + minimumRequiredLuminance = 0.04f + } + }; + } + + [Serializable] + public struct FxaaSettings + { + public FxaaPreset preset; + + public static FxaaSettings defaultSettings + { + get + { + return new FxaaSettings + { + preset = FxaaPreset.Default + }; + } + } + } + #endregion + + #region TAA Settings + [Serializable] + public struct TaaSettings + { + [Tooltip("The diameter (in texels) inside which jitter samples are spread. Smaller values result in crisper but more aliased output, while larger values result in more stable but blurrier output.")] + [Range(0.1f, 1f)] + public float jitterSpread; + + [Tooltip("Controls the amount of sharpening applied to the color buffer.")] + [Range(0f, 3f)] + public float sharpen; + + [Tooltip("The blend coefficient for a stationary fragment. Controls the percentage of history sample blended into the final color.")] + [Range(0f, 0.99f)] + public float stationaryBlending; + + [Tooltip("The blend coefficient for a fragment with significant motion. Controls the percentage of history sample blended into the final color.")] + [Range(0f, 0.99f)] + public float motionBlending; + + public static TaaSettings defaultSettings + { + get + { + return new TaaSettings + { + jitterSpread = 0.75f, + sharpen = 0.3f, + stationaryBlending = 0.95f, + motionBlending = 0.85f + }; + } + } + } + #endregion + + [Serializable] + public struct Settings + { + public Method method; + public FxaaSettings fxaaSettings; + public TaaSettings taaSettings; + + public static Settings defaultSettings + { + get + { + return new Settings + { + method = Method.Fxaa, + fxaaSettings = FxaaSettings.defaultSettings, + taaSettings = TaaSettings.defaultSettings + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/AntialiasingModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/AntialiasingModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..85ccaece700c450f5549a5d407214cdcf2c3729e --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/AntialiasingModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cb9a239ec5f20ca4cb5d0391441588de +timeCreated: 1467126855 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/BloomModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/BloomModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..bddae5e18fcee338e93694ab677516dec0bd0229 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/BloomModel.cs @@ -0,0 +1,102 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class BloomModel : PostProcessingModel + { + [Serializable] + public struct BloomSettings + { + [Min(0f), Tooltip("Strength of the bloom filter.")] + public float intensity; + + [Min(0f), Tooltip("Filters out pixels under this level of brightness.")] + public float threshold; + + public float thresholdLinear + { + set { threshold = Mathf.LinearToGammaSpace(value); } + get { return Mathf.GammaToLinearSpace(threshold); } + } + + [Range(0f, 1f), Tooltip("Makes transition between under/over-threshold gradual (0 = hard threshold, 1 = soft threshold).")] + public float softKnee; + + [Range(1f, 7f), Tooltip("Changes extent of veiling effects in a screen resolution-independent fashion.")] + public float radius; + + [Tooltip("Reduces flashing noise with an additional filter.")] + public bool antiFlicker; + + public static BloomSettings defaultSettings + { + get + { + return new BloomSettings + { + intensity = 0.5f, + threshold = 1.1f, + softKnee = 0.5f, + radius = 4f, + antiFlicker = false, + }; + } + } + } + + [Serializable] + public struct LensDirtSettings + { + [Tooltip("Dirtiness texture to add smudges or dust to the lens.")] + public Texture texture; + + [Min(0f), Tooltip("Amount of lens dirtiness.")] + public float intensity; + + public static LensDirtSettings defaultSettings + { + get + { + return new LensDirtSettings + { + texture = null, + intensity = 3f + }; + } + } + } + + [Serializable] + public struct Settings + { + public BloomSettings bloom; + public LensDirtSettings lensDirt; + + public static Settings defaultSettings + { + get + { + return new Settings + { + bloom = BloomSettings.defaultSettings, + lensDirt = LensDirtSettings.defaultSettings + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/BloomModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/BloomModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..4f60ccdb0ce1f1af4accaf52428b5c05e410d9a3 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/BloomModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e215a6ec29d100f489c186f289526f06 +timeCreated: 1467126855 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/BuiltinDebugViewsModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/BuiltinDebugViewsModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..473fdb8620f5da525d18e874195bc2a10ccbdf64 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/BuiltinDebugViewsModel.cs @@ -0,0 +1,133 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class BuiltinDebugViewsModel : PostProcessingModel + { + [Serializable] + public struct DepthSettings + { + [Range(0f, 1f), Tooltip("Scales the camera far plane before displaying the depth map.")] + public float scale; + + public static DepthSettings defaultSettings + { + get + { + return new DepthSettings + { + scale = 1f + }; + } + } + } + + [Serializable] + public struct MotionVectorsSettings + { + [Range(0f, 1f), Tooltip("Opacity of the source render.")] + public float sourceOpacity; + + [Range(0f, 1f), Tooltip("Opacity of the per-pixel motion vector colors.")] + public float motionImageOpacity; + + [Min(0f), Tooltip("Because motion vectors are mainly very small vectors, you can use this setting to make them more visible.")] + public float motionImageAmplitude; + + [Range(0f, 1f), Tooltip("Opacity for the motion vector arrows.")] + public float motionVectorsOpacity; + + [Range(8, 64), Tooltip("The arrow density on screen.")] + public int motionVectorsResolution; + + [Min(0f), Tooltip("Tweaks the arrows length.")] + public float motionVectorsAmplitude; + + public static MotionVectorsSettings defaultSettings + { + get + { + return new MotionVectorsSettings + { + sourceOpacity = 1f, + + motionImageOpacity = 0f, + motionImageAmplitude = 16f, + + motionVectorsOpacity = 1f, + motionVectorsResolution = 24, + motionVectorsAmplitude = 64f + }; + } + } + } + + public enum Mode + { + None, + + Depth, + Normals, + MotionVectors, + + AmbientOcclusion, + EyeAdaptation, + FocusPlane, + PreGradingLog, + LogLut, + UserLut + } + + [Serializable] + public struct Settings + { + public Mode mode; + public DepthSettings depth; + public MotionVectorsSettings motionVectors; + + public static Settings defaultSettings + { + get + { + return new Settings + { + mode = Mode.None, + depth = DepthSettings.defaultSettings, + motionVectors = MotionVectorsSettings.defaultSettings + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public bool willInterrupt + { + get + { + return !IsModeActive(Mode.None) + && !IsModeActive(Mode.EyeAdaptation) + && !IsModeActive(Mode.PreGradingLog) + && !IsModeActive(Mode.LogLut) + && !IsModeActive(Mode.UserLut); + } + } + + public override void Reset() + { + settings = Settings.defaultSettings; + } + + public bool IsModeActive(Mode mode) + { + return m_Settings.mode == mode; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/BuiltinDebugViewsModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/BuiltinDebugViewsModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..986298f392b951f0a31109f2c3360b85b212e4df --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/BuiltinDebugViewsModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 33d6d1a4b7b3dec40819019a25605191 +timeCreated: 1467970684 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/ChromaticAberrationModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ChromaticAberrationModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..27881677eabbc5aef054784a31ba3b8153934a0e --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ChromaticAberrationModel.cs @@ -0,0 +1,43 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class ChromaticAberrationModel : PostProcessingModel + { + [Serializable] + public struct Settings + { + [Tooltip("Shift the hue of chromatic aberrations.")] + public Texture2D spectralTexture; + + [Range(0f, 1f), Tooltip("Amount of tangential distortion.")] + public float intensity; + + public static Settings defaultSettings + { + get + { + return new Settings + { + spectralTexture = null, + intensity = 0.1f + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/ChromaticAberrationModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ChromaticAberrationModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..55c74015e0e2979b54abb71698cbd45037e4729f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ChromaticAberrationModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8da01668697617e43879715e835a2367 +timeCreated: 1467126855 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/ColorGradingModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ColorGradingModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..7933f9f4109336e7b1311c7da2c3afb8e9b3a2aa --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ColorGradingModel.cs @@ -0,0 +1,311 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class ColorGradingModel : PostProcessingModel + { + public enum Tonemapper + { + None, + + /// <summary> + /// ACES Filmic reference tonemapper. + /// </summary> + ACES, + + /// <summary> + /// Neutral tonemapper (based off John Hable's & Jim Hejl's work). + /// </summary> + Neutral + } + + [Serializable] + public struct TonemappingSettings + { + [Tooltip("Tonemapping algorithm to use at the end of the color grading process. Use \"Neutral\" if you need a customizable tonemapper or \"Filmic\" to give a standard filmic look to your scenes.")] + public Tonemapper tonemapper; + + // Neutral settings + [Range(-0.1f, 0.1f)] + public float neutralBlackIn; + + [Range(1f, 20f)] + public float neutralWhiteIn; + + [Range(-0.09f, 0.1f)] + public float neutralBlackOut; + + [Range(1f, 19f)] + public float neutralWhiteOut; + + [Range(0.1f, 20f)] + public float neutralWhiteLevel; + + [Range(1f, 10f)] + public float neutralWhiteClip; + + public static TonemappingSettings defaultSettings + { + get + { + return new TonemappingSettings + { + tonemapper = Tonemapper.Neutral, + + neutralBlackIn = 0.02f, + neutralWhiteIn = 10f, + neutralBlackOut = 0f, + neutralWhiteOut = 10f, + neutralWhiteLevel = 5.3f, + neutralWhiteClip = 10f + }; + } + } + } + + [Serializable] + public struct BasicSettings + { + [Tooltip("Adjusts the overall exposure of the scene in EV units. This is applied after HDR effect and right before tonemapping so it won't affect previous effects in the chain.")] + public float postExposure; + + [Range(-100f, 100f), Tooltip("Sets the white balance to a custom color temperature.")] + public float temperature; + + [Range(-100f, 100f), Tooltip("Sets the white balance to compensate for a green or magenta tint.")] + public float tint; + + [Range(-180f, 180f), Tooltip("Shift the hue of all colors.")] + public float hueShift; + + [Range(0f, 2f), Tooltip("Pushes the intensity of all colors.")] + public float saturation; + + [Range(0f, 2f), Tooltip("Expands or shrinks the overall range of tonal values.")] + public float contrast; + + public static BasicSettings defaultSettings + { + get + { + return new BasicSettings + { + postExposure = 0f, + + temperature = 0f, + tint = 0f, + + hueShift = 0f, + saturation = 1f, + contrast = 1f, + }; + } + } + } + + [Serializable] + public struct ChannelMixerSettings + { + public Vector3 red; + public Vector3 green; + public Vector3 blue; + + [HideInInspector] + public int currentEditingChannel; // Used only in the editor + + public static ChannelMixerSettings defaultSettings + { + get + { + return new ChannelMixerSettings + { + red = new Vector3(1f, 0f, 0f), + green = new Vector3(0f, 1f, 0f), + blue = new Vector3(0f, 0f, 1f), + currentEditingChannel = 0 + }; + } + } + } + + [Serializable] + public struct LogWheelsSettings + { + [Trackball("GetSlopeValue")] + public Color slope; + + [Trackball("GetPowerValue")] + public Color power; + + [Trackball("GetOffsetValue")] + public Color offset; + + public static LogWheelsSettings defaultSettings + { + get + { + return new LogWheelsSettings + { + slope = Color.clear, + power = Color.clear, + offset = Color.clear + }; + } + } + } + + [Serializable] + public struct LinearWheelsSettings + { + [Trackball("GetLiftValue")] + public Color lift; + + [Trackball("GetGammaValue")] + public Color gamma; + + [Trackball("GetGainValue")] + public Color gain; + + public static LinearWheelsSettings defaultSettings + { + get + { + return new LinearWheelsSettings + { + lift = Color.clear, + gamma = Color.clear, + gain = Color.clear + }; + } + } + } + + public enum ColorWheelMode + { + Linear, + Log + } + + [Serializable] + public struct ColorWheelsSettings + { + public ColorWheelMode mode; + + [TrackballGroup] + public LogWheelsSettings log; + + [TrackballGroup] + public LinearWheelsSettings linear; + + public static ColorWheelsSettings defaultSettings + { + get + { + return new ColorWheelsSettings + { + mode = ColorWheelMode.Log, + log = LogWheelsSettings.defaultSettings, + linear = LinearWheelsSettings.defaultSettings + }; + } + } + } + + [Serializable] + public struct CurvesSettings + { + public ColorGradingCurve master; + public ColorGradingCurve red; + public ColorGradingCurve green; + public ColorGradingCurve blue; + public ColorGradingCurve hueVShue; + public ColorGradingCurve hueVSsat; + public ColorGradingCurve satVSsat; + public ColorGradingCurve lumVSsat; + + // Used only in the editor + [HideInInspector] public int e_CurrentEditingCurve; + [HideInInspector] public bool e_CurveY; + [HideInInspector] public bool e_CurveR; + [HideInInspector] public bool e_CurveG; + [HideInInspector] public bool e_CurveB; + + public static CurvesSettings defaultSettings + { + get + { + return new CurvesSettings + { + master = new ColorGradingCurve(new AnimationCurve(new Keyframe(0f, 0f, 1f, 1f), new Keyframe(1f, 1f, 1f, 1f)), 0f, false, new Vector2(0f, 1f)), + red = new ColorGradingCurve(new AnimationCurve(new Keyframe(0f, 0f, 1f, 1f), new Keyframe(1f, 1f, 1f, 1f)), 0f, false, new Vector2(0f, 1f)), + green = new ColorGradingCurve(new AnimationCurve(new Keyframe(0f, 0f, 1f, 1f), new Keyframe(1f, 1f, 1f, 1f)), 0f, false, new Vector2(0f, 1f)), + blue = new ColorGradingCurve(new AnimationCurve(new Keyframe(0f, 0f, 1f, 1f), new Keyframe(1f, 1f, 1f, 1f)), 0f, false, new Vector2(0f, 1f)), + + hueVShue = new ColorGradingCurve(new AnimationCurve(), 0.5f, true, new Vector2(0f, 1f)), + hueVSsat = new ColorGradingCurve(new AnimationCurve(), 0.5f, true, new Vector2(0f, 1f)), + satVSsat = new ColorGradingCurve(new AnimationCurve(), 0.5f, false, new Vector2(0f, 1f)), + lumVSsat = new ColorGradingCurve(new AnimationCurve(), 0.5f, false, new Vector2(0f, 1f)), + + e_CurrentEditingCurve = 0, + e_CurveY = true, + e_CurveR = false, + e_CurveG = false, + e_CurveB = false + }; + } + } + } + + [Serializable] + public struct Settings + { + public TonemappingSettings tonemapping; + public BasicSettings basic; + public ChannelMixerSettings channelMixer; + public ColorWheelsSettings colorWheels; + public CurvesSettings curves; + + public static Settings defaultSettings + { + get + { + return new Settings + { + tonemapping = TonemappingSettings.defaultSettings, + basic = BasicSettings.defaultSettings, + channelMixer = ChannelMixerSettings.defaultSettings, + colorWheels = ColorWheelsSettings.defaultSettings, + curves = CurvesSettings.defaultSettings + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set + { + m_Settings = value; + OnValidate(); + } + } + + public bool isDirty { get; internal set; } + public RenderTexture bakedLut { get; internal set; } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + OnValidate(); + } + + public override void OnValidate() + { + isDirty = true; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/ColorGradingModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ColorGradingModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..dffabd0a60cb460b19947a2e8b179a6ea805f369 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ColorGradingModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fe146bcdc1fb8ae4ab7dd803982d3489 +timeCreated: 1467126855 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/DepthOfFieldModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/DepthOfFieldModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..bde86cb115c0ff24ccc573f952a6ede6800ea332 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/DepthOfFieldModel.cs @@ -0,0 +1,63 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class DepthOfFieldModel : PostProcessingModel + { + public enum KernelSize + { + Small, + Medium, + Large, + VeryLarge + } + + [Serializable] + public struct Settings + { + [Min(0.1f), Tooltip("Distance to the point of focus.")] + public float focusDistance; + + [Range(0.05f, 32f), Tooltip("Ratio of aperture (known as f-stop or f-number). The smaller the value is, the shallower the depth of field is.")] + public float aperture; + + [Range(1f, 300f), Tooltip("Distance between the lens and the film. The larger the value is, the shallower the depth of field is.")] + public float focalLength; + + [Tooltip("Calculate the focal length automatically from the field-of-view value set on the camera. Using this setting isn't recommended.")] + public bool useCameraFov; + + [Tooltip("Convolution kernel size of the bokeh filter, which determines the maximum radius of bokeh. It also affects the performance (the larger the kernel is, the longer the GPU time is required).")] + public KernelSize kernelSize; + + public static Settings defaultSettings + { + get + { + return new Settings + { + focusDistance = 10f, + aperture = 5.6f, + focalLength = 50f, + useCameraFov = false, + kernelSize = KernelSize.Medium + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/DepthOfFieldModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/DepthOfFieldModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..77a8911ecbecd18f8d9baedf346b0936a7a88e7e --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/DepthOfFieldModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2626b17c595c71e43811d654eb28d30d +timeCreated: 1467126855 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/DitheringModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/DitheringModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..7fd6afb46199e7ff22843ddef167fb6f597a2abd --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/DitheringModel.cs @@ -0,0 +1,30 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class DitheringModel : PostProcessingModel + { + [Serializable] + public struct Settings + { + public static Settings defaultSettings + { + get { return new Settings(); } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/DitheringModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/DitheringModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a89cb14f0cfc92e2b4bfcb4eec76b16f5a8664d9 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/DitheringModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 41209882cdbcf31429d2a457a2164801 +timeCreated: 1485179235 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/EyeAdaptationModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/EyeAdaptationModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..aa2020b815473b27886f56b340d1856ae5eb2732 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/EyeAdaptationModel.cs @@ -0,0 +1,88 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class EyeAdaptationModel : PostProcessingModel + { + public enum EyeAdaptationType + { + Progressive, + Fixed + } + + [Serializable] + public struct Settings + { + [Range(1f, 99f), Tooltip("Filters the dark part of the histogram when computing the average luminance to avoid very dark pixels from contributing to the auto exposure. Unit is in percent.")] + public float lowPercent; + + [Range(1f, 99f), Tooltip("Filters the bright part of the histogram when computing the average luminance to avoid very dark pixels from contributing to the auto exposure. Unit is in percent.")] + public float highPercent; + + [Tooltip("Minimum average luminance to consider for auto exposure (in EV).")] + public float minLuminance; + + [Tooltip("Maximum average luminance to consider for auto exposure (in EV).")] + public float maxLuminance; + + [Min(0f), Tooltip("Exposure bias. Use this to offset the global exposure of the scene.")] + public float keyValue; + + [Tooltip("Set this to true to let Unity handle the key value automatically based on average luminance.")] + public bool dynamicKeyValue; + + [Tooltip("Use \"Progressive\" if you want the auto exposure to be animated. Use \"Fixed\" otherwise.")] + public EyeAdaptationType adaptationType; + + [Min(0f), Tooltip("Adaptation speed from a dark to a light environment.")] + public float speedUp; + + [Min(0f), Tooltip("Adaptation speed from a light to a dark environment.")] + public float speedDown; + + [Range(-16, -1), Tooltip("Lower bound for the brightness range of the generated histogram (in EV). The bigger the spread between min & max, the lower the precision will be.")] + public int logMin; + + [Range(1, 16), Tooltip("Upper bound for the brightness range of the generated histogram (in EV). The bigger the spread between min & max, the lower the precision will be.")] + public int logMax; + + public static Settings defaultSettings + { + get + { + return new Settings + { + lowPercent = 45f, + highPercent = 95f, + + minLuminance = -5f, + maxLuminance = 1f, + keyValue = 0.25f, + dynamicKeyValue = true, + + adaptationType = EyeAdaptationType.Progressive, + speedUp = 2f, + speedDown = 1f, + + logMin = -8, + logMax = 4 + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/EyeAdaptationModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/EyeAdaptationModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..54680eb9fcfc4693745f7041c0ea38dc3da45a8f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/EyeAdaptationModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: edf6d216ca4b60942a0c533c14f26d53 +timeCreated: 1467126855 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/FogModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/FogModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..81effcb8afad2764074fcff77a8bc8f819b326b1 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/FogModel.cs @@ -0,0 +1,39 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class FogModel : PostProcessingModel + { + [Serializable] + public struct Settings + { + [Tooltip("Should the fog affect the skybox?")] + public bool excludeSkybox; + + public static Settings defaultSettings + { + get + { + return new Settings + { + excludeSkybox = true + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/FogModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/FogModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6e73dd0cfa6173df7d8e79fd4689121382a2c588 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/FogModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1e20e66aa2deb7943993c444137d9acd +timeCreated: 1487328709 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/GrainModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/GrainModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..f2d1b56cafad889d851fd695d542f54a91a4024f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/GrainModel.cs @@ -0,0 +1,51 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class GrainModel : PostProcessingModel + { + [Serializable] + public struct Settings + { + [Tooltip("Enable the use of colored grain.")] + public bool colored; + + [Range(0f, 1f), Tooltip("Grain strength. Higher means more visible grain.")] + public float intensity; + + [Range(0.3f, 3f), Tooltip("Grain particle size.")] + public float size; + + [Range(0f, 1f), Tooltip("Controls the noisiness response curve based on scene luminance. Lower values mean less noise in dark areas.")] + public float luminanceContribution; + + public static Settings defaultSettings + { + get + { + return new Settings + { + colored = true, + intensity = 0.5f, + size = 1f, + luminanceContribution = 0.8f + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/GrainModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/GrainModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..0e63ba0e744c495f754096d5fcc5d37430572ea9 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/GrainModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f4fbcdb7f7a3c76489f32ffea74e6bb3 +timeCreated: 1467126855 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/MotionBlurModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/MotionBlurModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..4fd3171778fce66541793a594db404367985602c --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/MotionBlurModel.cs @@ -0,0 +1,47 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class MotionBlurModel : PostProcessingModel + { + [Serializable] + public struct Settings + { + [Range(0f, 360f), Tooltip("The angle of rotary shutter. Larger values give longer exposure.")] + public float shutterAngle; + + [Range(4, 32), Tooltip("The amount of sample points, which affects quality and performances.")] + public int sampleCount; + + [Range(0f, 1f), Tooltip("The strength of multiple frame blending. The opacity of preceding frames are determined from this coefficient and time differences.")] + public float frameBlending; + + public static Settings defaultSettings + { + get + { + return new Settings + { + shutterAngle = 270f, + sampleCount = 10, + frameBlending = 0f + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/MotionBlurModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/MotionBlurModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6f497f947054e2b2ca2bbd438809af5474dffe39 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/MotionBlurModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bb4df227c906dd342bd34767914d292c +timeCreated: 1468325392 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/ScreenSpaceReflectionModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ScreenSpaceReflectionModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..b697cd2b9eb4c1775f63c5677131739cff900c14 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ScreenSpaceReflectionModel.cs @@ -0,0 +1,140 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class ScreenSpaceReflectionModel : PostProcessingModel + { + public enum SSRResolution + { + High = 0, + Low = 2 + } + + public enum SSRReflectionBlendType + { + PhysicallyBased, + Additive + } + + [Serializable] + public struct IntensitySettings + { + [Tooltip("Nonphysical multiplier for the SSR reflections. 1.0 is physically based.")] + [Range(0.0f, 2.0f)] + public float reflectionMultiplier; + + [Tooltip("How far away from the maxDistance to begin fading SSR.")] + [Range(0.0f, 1000.0f)] + public float fadeDistance; + + [Tooltip("Amplify Fresnel fade out. Increase if floor reflections look good close to the surface and bad farther 'under' the floor.")] + [Range(0.0f, 1.0f)] + public float fresnelFade; + + [Tooltip("Higher values correspond to a faster Fresnel fade as the reflection changes from the grazing angle.")] + [Range(0.1f, 10.0f)] + public float fresnelFadePower; + } + + [Serializable] + public struct ReflectionSettings + { + // When enabled, we just add our reflections on top of the existing ones. This is physically incorrect, but several + // popular demos and games have taken this approach, and it does hide some artifacts. + [Tooltip("How the reflections are blended into the render.")] + public SSRReflectionBlendType blendType; + + [Tooltip("Half resolution SSRR is much faster, but less accurate.")] + public SSRResolution reflectionQuality; + + [Tooltip("Maximum reflection distance in world units.")] + [Range(0.1f, 300.0f)] + public float maxDistance; + + /// REFLECTIONS + [Tooltip("Max raytracing length.")] + [Range(16, 1024)] + public int iterationCount; + + [Tooltip("Log base 2 of ray tracing coarse step size. Higher traces farther, lower gives better quality silhouettes.")] + [Range(1, 16)] + public int stepSize; + + [Tooltip("Typical thickness of columns, walls, furniture, and other objects that reflection rays might pass behind.")] + [Range(0.01f, 10.0f)] + public float widthModifier; + + [Tooltip("Blurriness of reflections.")] + [Range(0.1f, 8.0f)] + public float reflectionBlur; + + [Tooltip("Disable for a performance gain in scenes where most glossy objects are horizontal, like floors, water, and tables. Leave on for scenes with glossy vertical objects.")] + public bool reflectBackfaces; + } + + [Serializable] + public struct ScreenEdgeMask + { + [Tooltip("Higher = fade out SSRR near the edge of the screen so that reflections don't pop under camera motion.")] + [Range(0.0f, 1.0f)] + public float intensity; + } + + [Serializable] + public struct Settings + { + public ReflectionSettings reflection; + public IntensitySettings intensity; + public ScreenEdgeMask screenEdgeMask; + + public static Settings defaultSettings + { + get + { + return new Settings + { + reflection = new ReflectionSettings + { + blendType = SSRReflectionBlendType.PhysicallyBased, + reflectionQuality = SSRResolution.Low, + maxDistance = 100f, + iterationCount = 256, + stepSize = 3, + widthModifier = 0.5f, + reflectionBlur = 1f, + reflectBackfaces = false + }, + + intensity = new IntensitySettings + { + reflectionMultiplier = 1f, + fadeDistance = 100f, + + fresnelFade = 1f, + fresnelFadePower = 1f, + }, + + screenEdgeMask = new ScreenEdgeMask + { + intensity = 0.03f + } + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/ScreenSpaceReflectionModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ScreenSpaceReflectionModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..b761a8518c72a9cec0cbae3aa9e5b14887d811cf --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/ScreenSpaceReflectionModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e841012229e57cd408a146561435e90d +timeCreated: 1467126855 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/UserLutModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/UserLutModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..d0efc2d8dda86815859451cc04e5e7e7520cdcaf --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/UserLutModel.cs @@ -0,0 +1,43 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class UserLutModel : PostProcessingModel + { + [Serializable] + public struct Settings + { + [Tooltip("Custom lookup texture (strip format, e.g. 256x16).")] + public Texture2D lut; + + [Range(0f, 1f), Tooltip("Blending factor.")] + public float contribution; + + public static Settings defaultSettings + { + get + { + return new Settings + { + lut = null, + contribution = 1f + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/UserLutModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/UserLutModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..a40ad00777ed4d4548f03f164dd6b3872ae3a279 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/UserLutModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3a7afd753a89c4140b80c855e15f69d6 +timeCreated: 1467126855 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/VignetteModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Models/VignetteModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..33b082efb8de76d546f116db4dae70d655c7dc77 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/VignetteModel.cs @@ -0,0 +1,78 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public class VignetteModel : PostProcessingModel + { + public enum Mode + { + Classic, + Masked + } + + [Serializable] + public struct Settings + { + [Tooltip("Use the \"Classic\" mode for parametric controls. Use the \"Masked\" mode to use your own texture mask.")] + public Mode mode; + + [ColorUsage(false)] + [Tooltip("Vignette color. Use the alpha channel for transparency.")] + public Color color; + + [Tooltip("Sets the vignette center point (screen center is [0.5,0.5]).")] + public Vector2 center; + + [Range(0f, 1f), Tooltip("Amount of vignetting on screen.")] + public float intensity; + + [Range(0.01f, 1f), Tooltip("Smoothness of the vignette borders.")] + public float smoothness; + + [Range(0f, 1f), Tooltip("Lower values will make a square-ish vignette.")] + public float roundness; + + [Tooltip("A black and white mask to use as a vignette.")] + public Texture mask; + + [Range(0f, 1f), Tooltip("Mask opacity.")] + public float opacity; + + [Tooltip("Should the vignette be perfectly round or be dependent on the current aspect ratio?")] + public bool rounded; + + public static Settings defaultSettings + { + get + { + return new Settings + { + mode = Mode.Classic, + color = new Color(0f, 0f, 0f, 1f), + center = new Vector2(0.5f, 0.5f), + intensity = 0.45f, + smoothness = 0.2f, + roundness = 1f, + mask = null, + opacity = 1f, + rounded = false + }; + } + } + } + + [SerializeField] + Settings m_Settings = Settings.defaultSettings; + public Settings settings + { + get { return m_Settings; } + set { m_Settings = value; } + } + + public override void Reset() + { + m_Settings = Settings.defaultSettings; + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Models/VignetteModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Models/VignetteModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..638aaa77366f30fb20b1261f43320d16549ee9f2 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Models/VignetteModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d7aa967ba692363448f1b25d0728b9bd +timeCreated: 1467126855 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingBehaviour.cs b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingBehaviour.cs new file mode 100644 index 0000000000000000000000000000000000000000..6f292d242838098857a11d9f5a6acb551ad147f7 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingBehaviour.cs @@ -0,0 +1,470 @@ +using System; +using System.Collections.Generic; +using UnityEngine.Rendering; + +namespace UnityEngine.PostProcessing +{ + using DebugMode = BuiltinDebugViewsModel.Mode; + +#if UNITY_5_4_OR_NEWER + [ImageEffectAllowedInSceneView] +#endif + [RequireComponent(typeof(Camera)), DisallowMultipleComponent, ExecuteInEditMode] + [AddComponentMenu("Effects/Post-Processing Behaviour", -1)] + public class PostProcessingBehaviour : MonoBehaviour + { + // Inspector fields + public PostProcessingProfile profile; + + public Func<Vector2, Matrix4x4> jitteredMatrixFunc; + + // Internal helpers + Dictionary<Type, KeyValuePair<CameraEvent, CommandBuffer>> m_CommandBuffers; + List<PostProcessingComponentBase> m_Components; + Dictionary<PostProcessingComponentBase, bool> m_ComponentStates; + + MaterialFactory m_MaterialFactory; + RenderTextureFactory m_RenderTextureFactory; + PostProcessingContext m_Context; + Camera m_Camera; + PostProcessingProfile m_PreviousProfile; + + bool m_RenderingInSceneView = false; + + // Effect components + BuiltinDebugViewsComponent m_DebugViews; + AmbientOcclusionComponent m_AmbientOcclusion; + ScreenSpaceReflectionComponent m_ScreenSpaceReflection; + FogComponent m_FogComponent; + MotionBlurComponent m_MotionBlur; + TaaComponent m_Taa; + EyeAdaptationComponent m_EyeAdaptation; + DepthOfFieldComponent m_DepthOfField; + BloomComponent m_Bloom; + ChromaticAberrationComponent m_ChromaticAberration; + ColorGradingComponent m_ColorGrading; + UserLutComponent m_UserLut; + GrainComponent m_Grain; + VignetteComponent m_Vignette; + DitheringComponent m_Dithering; + FxaaComponent m_Fxaa; + + void OnEnable() + { + m_CommandBuffers = new Dictionary<Type, KeyValuePair<CameraEvent, CommandBuffer>>(); + m_MaterialFactory = new MaterialFactory(); + m_RenderTextureFactory = new RenderTextureFactory(); + m_Context = new PostProcessingContext(); + + // Keep a list of all post-fx for automation purposes + m_Components = new List<PostProcessingComponentBase>(); + + // Component list + m_DebugViews = AddComponent(new BuiltinDebugViewsComponent()); + m_AmbientOcclusion = AddComponent(new AmbientOcclusionComponent()); + m_ScreenSpaceReflection = AddComponent(new ScreenSpaceReflectionComponent()); + m_FogComponent = AddComponent(new FogComponent()); + m_MotionBlur = AddComponent(new MotionBlurComponent()); + m_Taa = AddComponent(new TaaComponent()); + m_EyeAdaptation = AddComponent(new EyeAdaptationComponent()); + m_DepthOfField = AddComponent(new DepthOfFieldComponent()); + m_Bloom = AddComponent(new BloomComponent()); + m_ChromaticAberration = AddComponent(new ChromaticAberrationComponent()); + m_ColorGrading = AddComponent(new ColorGradingComponent()); + m_UserLut = AddComponent(new UserLutComponent()); + m_Grain = AddComponent(new GrainComponent()); + m_Vignette = AddComponent(new VignetteComponent()); + m_Dithering = AddComponent(new DitheringComponent()); + m_Fxaa = AddComponent(new FxaaComponent()); + + // Prepare state observers + m_ComponentStates = new Dictionary<PostProcessingComponentBase, bool>(); + + foreach (var component in m_Components) + m_ComponentStates.Add(component, false); + + useGUILayout = false; + } + + void OnPreCull() + { + // All the per-frame initialization logic has to be done in OnPreCull instead of Update + // because [ImageEffectAllowedInSceneView] doesn't trigger Update events... + + m_Camera = GetComponent<Camera>(); + + if (profile == null || m_Camera == null) + return; + +#if UNITY_EDITOR + // Track the scene view camera to disable some effects we don't want to see in the + // scene view + // Currently disabled effects : + // - Temporal Antialiasing + // - Depth of Field + // - Motion blur + m_RenderingInSceneView = UnityEditor.SceneView.currentDrawingSceneView != null + && UnityEditor.SceneView.currentDrawingSceneView.camera == m_Camera; +#endif + + // Prepare context + var context = m_Context.Reset(); + context.profile = profile; + context.renderTextureFactory = m_RenderTextureFactory; + context.materialFactory = m_MaterialFactory; + context.camera = m_Camera; + + // Prepare components + m_DebugViews.Init(context, profile.debugViews); + m_AmbientOcclusion.Init(context, profile.ambientOcclusion); + m_ScreenSpaceReflection.Init(context, profile.screenSpaceReflection); + m_FogComponent.Init(context, profile.fog); + m_MotionBlur.Init(context, profile.motionBlur); + m_Taa.Init(context, profile.antialiasing); + m_EyeAdaptation.Init(context, profile.eyeAdaptation); + m_DepthOfField.Init(context, profile.depthOfField); + m_Bloom.Init(context, profile.bloom); + m_ChromaticAberration.Init(context, profile.chromaticAberration); + m_ColorGrading.Init(context, profile.colorGrading); + m_UserLut.Init(context, profile.userLut); + m_Grain.Init(context, profile.grain); + m_Vignette.Init(context, profile.vignette); + m_Dithering.Init(context, profile.dithering); + m_Fxaa.Init(context, profile.antialiasing); + + // Handles profile change and 'enable' state observers + if (m_PreviousProfile != profile) + { + DisableComponents(); + m_PreviousProfile = profile; + } + + CheckObservers(); + + // Find out which camera flags are needed before rendering begins + // Note that motion vectors will only be available one frame after being enabled + var flags = context.camera.depthTextureMode; + foreach (var component in m_Components) + { + if (component.active) + flags |= component.GetCameraFlags(); + } + + context.camera.depthTextureMode = flags; + + // Temporal antialiasing jittering, needs to happen before culling + if (!m_RenderingInSceneView && m_Taa.active && !profile.debugViews.willInterrupt) + m_Taa.SetProjectionMatrix(jitteredMatrixFunc); + } + + void OnPreRender() + { + if (profile == null) + return; + + // Command buffer-based effects should be set-up here + TryExecuteCommandBuffer(m_DebugViews); + TryExecuteCommandBuffer(m_AmbientOcclusion); + TryExecuteCommandBuffer(m_ScreenSpaceReflection); + TryExecuteCommandBuffer(m_FogComponent); + + if (!m_RenderingInSceneView) + TryExecuteCommandBuffer(m_MotionBlur); + } + + void OnPostRender() + { + if (profile == null || m_Camera == null) + return; + + if (!m_RenderingInSceneView && m_Taa.active && !profile.debugViews.willInterrupt) + m_Context.camera.ResetProjectionMatrix(); + } + + // Classic render target pipeline for RT-based effects + void OnRenderImage(RenderTexture source, RenderTexture destination) + { + if (profile == null || m_Camera == null) + { + Graphics.Blit(source, destination); + return; + } + + // Uber shader setup + bool uberActive = false; + bool fxaaActive = m_Fxaa.active; + bool taaActive = m_Taa.active && !m_RenderingInSceneView; + bool dofActive = m_DepthOfField.active && !m_RenderingInSceneView; + + var uberMaterial = m_MaterialFactory.Get("Hidden/Post FX/Uber Shader"); + uberMaterial.shaderKeywords = null; + + var src = source; + var dst = destination; + + if (taaActive) + { + var tempRT = m_RenderTextureFactory.Get(src); + m_Taa.Render(src, tempRT); + src = tempRT; + } + +#if UNITY_EDITOR + // Render to a dedicated target when monitors are enabled so they can show information + // about the final render. + // At runtime the output will always be the backbuffer or whatever render target is + // currently set on the camera. + if (profile.monitors.onFrameEndEditorOnly != null) + dst = m_RenderTextureFactory.Get(src); +#endif + + Texture autoExposure = GraphicsUtils.whiteTexture; + if (m_EyeAdaptation.active) + { + uberActive = true; + autoExposure = m_EyeAdaptation.Prepare(src, uberMaterial); + } + + uberMaterial.SetTexture("_AutoExposure", autoExposure); + + if (dofActive) + { + uberActive = true; + m_DepthOfField.Prepare(src, uberMaterial, taaActive, m_Taa.jitterVector, m_Taa.model.settings.taaSettings.motionBlending); + } + + if (m_Bloom.active) + { + uberActive = true; + m_Bloom.Prepare(src, uberMaterial, autoExposure); + } + + uberActive |= TryPrepareUberImageEffect(m_ChromaticAberration, uberMaterial); + uberActive |= TryPrepareUberImageEffect(m_ColorGrading, uberMaterial); + uberActive |= TryPrepareUberImageEffect(m_Vignette, uberMaterial); + uberActive |= TryPrepareUberImageEffect(m_UserLut, uberMaterial); + + var fxaaMaterial = fxaaActive + ? m_MaterialFactory.Get("Hidden/Post FX/FXAA") + : null; + + if (fxaaActive) + { + fxaaMaterial.shaderKeywords = null; + TryPrepareUberImageEffect(m_Grain, fxaaMaterial); + TryPrepareUberImageEffect(m_Dithering, fxaaMaterial); + + if (uberActive) + { + var output = m_RenderTextureFactory.Get(src); + Graphics.Blit(src, output, uberMaterial, 0); + src = output; + } + + m_Fxaa.Render(src, dst); + } + else + { + uberActive |= TryPrepareUberImageEffect(m_Grain, uberMaterial); + uberActive |= TryPrepareUberImageEffect(m_Dithering, uberMaterial); + + if (uberActive) + { + if (!GraphicsUtils.isLinearColorSpace) + uberMaterial.EnableKeyword("UNITY_COLORSPACE_GAMMA"); + + Graphics.Blit(src, dst, uberMaterial, 0); + } + } + + if (!uberActive && !fxaaActive) + Graphics.Blit(src, dst); + +#if UNITY_EDITOR + if (profile.monitors.onFrameEndEditorOnly != null) + { + Graphics.Blit(dst, destination); + + var oldRt = RenderTexture.active; + profile.monitors.onFrameEndEditorOnly(dst); + RenderTexture.active = oldRt; + } +#endif + + m_RenderTextureFactory.ReleaseAll(); + } + + void OnGUI() + { + if (Event.current.type != EventType.Repaint) + return; + + if (profile == null || m_Camera == null) + return; + + if (m_EyeAdaptation.active && profile.debugViews.IsModeActive(DebugMode.EyeAdaptation)) + m_EyeAdaptation.OnGUI(); + else if (m_ColorGrading.active && profile.debugViews.IsModeActive(DebugMode.LogLut)) + m_ColorGrading.OnGUI(); + else if (m_UserLut.active && profile.debugViews.IsModeActive(DebugMode.UserLut)) + m_UserLut.OnGUI(); + } + + void OnDisable() + { + // Clear command buffers + foreach (var cb in m_CommandBuffers.Values) + { + m_Camera.RemoveCommandBuffer(cb.Key, cb.Value); + cb.Value.Dispose(); + } + + m_CommandBuffers.Clear(); + + // Clear components + if (profile != null) + DisableComponents(); + + m_Components.Clear(); + + // Factories + m_MaterialFactory.Dispose(); + m_RenderTextureFactory.Dispose(); + GraphicsUtils.Dispose(); + } + + public void ResetTemporalEffects() + { + m_Taa.ResetHistory(); + m_MotionBlur.ResetHistory(); + m_EyeAdaptation.ResetHistory(); + } + + #region State management + + List<PostProcessingComponentBase> m_ComponentsToEnable = new List<PostProcessingComponentBase>(); + List<PostProcessingComponentBase> m_ComponentsToDisable = new List<PostProcessingComponentBase>(); + + void CheckObservers() + { + foreach (var cs in m_ComponentStates) + { + var component = cs.Key; + var state = component.GetModel().enabled; + + if (state != cs.Value) + { + if (state) m_ComponentsToEnable.Add(component); + else m_ComponentsToDisable.Add(component); + } + } + + for (int i = 0; i < m_ComponentsToDisable.Count; i++) + { + var c = m_ComponentsToDisable[i]; + m_ComponentStates[c] = false; + c.OnDisable(); + } + + for (int i = 0; i < m_ComponentsToEnable.Count; i++) + { + var c = m_ComponentsToEnable[i]; + m_ComponentStates[c] = true; + c.OnEnable(); + } + + m_ComponentsToDisable.Clear(); + m_ComponentsToEnable.Clear(); + } + + void DisableComponents() + { + foreach (var component in m_Components) + { + var model = component.GetModel(); + if (model != null && model.enabled) + component.OnDisable(); + } + } + + #endregion + + #region Command buffer handling & rendering helpers + // Placeholders before the upcoming Scriptable Render Loop as command buffers will be + // executed on the go so we won't need of all that stuff + CommandBuffer AddCommandBuffer<T>(CameraEvent evt, string name) + where T : PostProcessingModel + { + var cb = new CommandBuffer { name = name }; + var kvp = new KeyValuePair<CameraEvent, CommandBuffer>(evt, cb); + m_CommandBuffers.Add(typeof(T), kvp); + m_Camera.AddCommandBuffer(evt, kvp.Value); + return kvp.Value; + } + + void RemoveCommandBuffer<T>() + where T : PostProcessingModel + { + KeyValuePair<CameraEvent, CommandBuffer> kvp; + var type = typeof(T); + + if (!m_CommandBuffers.TryGetValue(type, out kvp)) + return; + + m_Camera.RemoveCommandBuffer(kvp.Key, kvp.Value); + m_CommandBuffers.Remove(type); + kvp.Value.Dispose(); + } + + CommandBuffer GetCommandBuffer<T>(CameraEvent evt, string name) + where T : PostProcessingModel + { + CommandBuffer cb; + KeyValuePair<CameraEvent, CommandBuffer> kvp; + + if (!m_CommandBuffers.TryGetValue(typeof(T), out kvp)) + { + cb = AddCommandBuffer<T>(evt, name); + } + else if (kvp.Key != evt) + { + RemoveCommandBuffer<T>(); + cb = AddCommandBuffer<T>(evt, name); + } + else cb = kvp.Value; + + return cb; + } + + void TryExecuteCommandBuffer<T>(PostProcessingComponentCommandBuffer<T> component) + where T : PostProcessingModel + { + if (component.active) + { + var cb = GetCommandBuffer<T>(component.GetCameraEvent(), component.GetName()); + cb.Clear(); + component.PopulateCommandBuffer(cb); + } + else RemoveCommandBuffer<T>(); + } + + bool TryPrepareUberImageEffect<T>(PostProcessingComponentRenderTexture<T> component, Material material) + where T : PostProcessingModel + { + if (!component.active) + return false; + + component.Prepare(material); + return true; + } + + T AddComponent<T>(T component) + where T : PostProcessingComponentBase + { + m_Components.Add(component); + return component; + } + + #endregion + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingBehaviour.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingBehaviour.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..d564375dec41702957a275573918b3ea7e2f76e8 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingBehaviour.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ff26db721962cdf4a8edcdfa9a767d2a +timeCreated: 1459757354 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingComponent.cs b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingComponent.cs new file mode 100644 index 0000000000000000000000000000000000000000..c3c0d7dc64f20d10e08ab4d4183be7641a128051 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingComponent.cs @@ -0,0 +1,58 @@ +using UnityEngine.Rendering; + +namespace UnityEngine.PostProcessing +{ + public abstract class PostProcessingComponentBase + { + public PostProcessingContext context; + + public virtual DepthTextureMode GetCameraFlags() + { + return DepthTextureMode.None; + } + + public abstract bool active { get; } + + public virtual void OnEnable() + {} + + public virtual void OnDisable() + {} + + public abstract PostProcessingModel GetModel(); + } + + public abstract class PostProcessingComponent<T> : PostProcessingComponentBase + where T : PostProcessingModel + { + public T model { get; internal set; } + + public virtual void Init(PostProcessingContext pcontext, T pmodel) + { + context = pcontext; + model = pmodel; + } + + public override PostProcessingModel GetModel() + { + return model; + } + } + + public abstract class PostProcessingComponentCommandBuffer<T> : PostProcessingComponent<T> + where T : PostProcessingModel + { + public abstract CameraEvent GetCameraEvent(); + + public abstract string GetName(); + + public abstract void PopulateCommandBuffer(CommandBuffer cb); + } + + public abstract class PostProcessingComponentRenderTexture<T> : PostProcessingComponent<T> + where T : PostProcessingModel + { + public virtual void Prepare(Material material) + {} + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingComponent.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingComponent.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..fafa500eab6bc31aea1f5b24b7a41d96af5898e6 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingComponent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ef3277e9c14f78546a1ecaab0d293b77 +timeCreated: 1473009349 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingContext.cs b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingContext.cs new file mode 100644 index 0000000000000000000000000000000000000000..dba51ed774a86a2b6146622fc31cac68ac55550a --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingContext.cs @@ -0,0 +1,60 @@ +namespace UnityEngine.PostProcessing +{ + public class PostProcessingContext + { + public PostProcessingProfile profile; + public Camera camera; + + public MaterialFactory materialFactory; + public RenderTextureFactory renderTextureFactory; + + public bool interrupted { get; private set; } + + public void Interrupt() + { + interrupted = true; + } + + public PostProcessingContext Reset() + { + profile = null; + camera = null; + materialFactory = null; + renderTextureFactory = null; + interrupted = false; + return this; + } + + #region Helpers + public bool isGBufferAvailable + { + get { return camera.actualRenderingPath == RenderingPath.DeferredShading; } + } + + public bool isHdr + { + // No UNITY_5_6_OR_NEWER defined in early betas of 5.6 +#if UNITY_5_6 || UNITY_5_6_OR_NEWER + get { return camera.allowHDR; } +#else + get { return camera.hdr; } +#endif + } + + public int width + { + get { return camera.pixelWidth; } + } + + public int height + { + get { return camera.pixelHeight; } + } + + public Rect viewport + { + get { return camera.rect; } // Normalized coordinates + } + #endregion + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingContext.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingContext.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..8feba144d9f5aa026c2c5a9785563753bbbbc05f --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingContext.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 63da4b6536f11834fa026e327087bd7b +timeCreated: 1467630780 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingModel.cs b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingModel.cs new file mode 100644 index 0000000000000000000000000000000000000000..69f50958b368178637bd181594ac7894c9608f03 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingModel.cs @@ -0,0 +1,27 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + [Serializable] + public abstract class PostProcessingModel + { + [SerializeField, GetSet("enabled")] + bool m_Enabled; + public bool enabled + { + get { return m_Enabled; } + set + { + m_Enabled = value; + + if (value) + OnValidate(); + } + } + + public abstract void Reset(); + + public virtual void OnValidate() + {} + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingModel.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingModel.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..6dd4507ec04e1dc05c6dc1e43cc257f7135476d9 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingModel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 28413153a26e53342baf1a7b2c3711c3 +timeCreated: 1466586474 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingProfile.cs b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingProfile.cs new file mode 100644 index 0000000000000000000000000000000000000000..2628a587419306735c0a35bc059bbed0efe969b4 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingProfile.cs @@ -0,0 +1,68 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + public class PostProcessingProfile : ScriptableObject + { + #pragma warning disable 0169 // "field x is never used" + + public BuiltinDebugViewsModel debugViews = new BuiltinDebugViewsModel(); + public FogModel fog = new FogModel(); + public AntialiasingModel antialiasing = new AntialiasingModel(); + public AmbientOcclusionModel ambientOcclusion = new AmbientOcclusionModel(); + public ScreenSpaceReflectionModel screenSpaceReflection = new ScreenSpaceReflectionModel(); + public DepthOfFieldModel depthOfField = new DepthOfFieldModel(); + public MotionBlurModel motionBlur = new MotionBlurModel(); + public EyeAdaptationModel eyeAdaptation = new EyeAdaptationModel(); + public BloomModel bloom = new BloomModel(); + public ColorGradingModel colorGrading = new ColorGradingModel(); + public UserLutModel userLut = new UserLutModel(); + public ChromaticAberrationModel chromaticAberration = new ChromaticAberrationModel(); + public GrainModel grain = new GrainModel(); + public VignetteModel vignette = new VignetteModel(); + public DitheringModel dithering = new DitheringModel(); + +#if UNITY_EDITOR + // Monitor settings + [Serializable] + public class MonitorSettings + { + // Callback used in the editor to grab the rendered frame and sent it to monitors + public Action<RenderTexture> onFrameEndEditorOnly; + + // Global + public int currentMonitorID = 0; + public bool refreshOnPlay = false; + + // Histogram + public enum HistogramMode + { + Red = 0, + Green = 1, + Blue = 2, + Luminance = 3, + RGBMerged, + RGBSplit + } + + public HistogramMode histogramMode = HistogramMode.Luminance; + + // Waveform + public float waveformExposure = 0.12f; + public bool waveformY = false; + public bool waveformR = true; + public bool waveformG = true; + public bool waveformB = true; + + // Parade + public float paradeExposure = 0.12f; + + // Vectorscope + public float vectorscopeExposure = 0.12f; + public bool vectorscopeShowBackground = true; + } + + public MonitorSettings monitors = new MonitorSettings(); +#endif + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingProfile.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingProfile.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..277d7cfdf790a1c8965c5bd56bc4329322a1e7c5 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/PostProcessingProfile.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8a3bdb2cd68f901469e7cc149151eb49 +timeCreated: 1459756301 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Utils.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Utils.meta new file mode 100644 index 0000000000000000000000000000000000000000..34a2b2f5d7b4b334bcd1f95ee867a11bade85789 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Utils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 18fb6a6b698945843a16c2d0111a7af2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Utils/ColorGradingCurve.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/ColorGradingCurve.cs new file mode 100644 index 0000000000000000000000000000000000000000..da75978efbbf4963364f9e424a17c92c6cb556ca --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/ColorGradingCurve.cs @@ -0,0 +1,64 @@ +using System; + +namespace UnityEngine.PostProcessing +{ + // Small wrapper on top of AnimationCurve to handle zero-key curves and keyframe looping + + [Serializable] + public sealed class ColorGradingCurve + { + public AnimationCurve curve; + + [SerializeField] + bool m_Loop; + + [SerializeField] + float m_ZeroValue; + + [SerializeField] + float m_Range; + + AnimationCurve m_InternalLoopingCurve; + + public ColorGradingCurve(AnimationCurve curve, float zeroValue, bool loop, Vector2 bounds) + { + this.curve = curve; + m_ZeroValue = zeroValue; + m_Loop = loop; + m_Range = bounds.magnitude; + } + + public void Cache() + { + if (!m_Loop) + return; + + var length = curve.length; + + if (length < 2) + return; + + if (m_InternalLoopingCurve == null) + m_InternalLoopingCurve = new AnimationCurve(); + + var prev = curve[length - 1]; + prev.time -= m_Range; + var next = curve[0]; + next.time += m_Range; + m_InternalLoopingCurve.keys = curve.keys; + m_InternalLoopingCurve.AddKey(prev); + m_InternalLoopingCurve.AddKey(next); + } + + public float Evaluate(float t) + { + if (curve.length == 0) + return m_ZeroValue; + + if (!m_Loop || curve.length == 1) + return curve.Evaluate(t); + + return m_InternalLoopingCurve.Evaluate(t); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Utils/ColorGradingCurve.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/ColorGradingCurve.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..1420d704f9ad060e99d389707db62ddf993f8ff4 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/ColorGradingCurve.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1bb6f2275f7eff940b6f0d72681e7877 +timeCreated: 1473847739 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Utils/GraphicsUtils.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/GraphicsUtils.cs new file mode 100644 index 0000000000000000000000000000000000000000..5e428c0ccf059516ef22142dfc70a18aa4804afb --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/GraphicsUtils.cs @@ -0,0 +1,144 @@ +namespace UnityEngine.PostProcessing +{ + using UnityObject = Object; + + public static class GraphicsUtils + { + public static bool isLinearColorSpace + { + get { return QualitySettings.activeColorSpace == ColorSpace.Linear; } + } + + public static bool supportsDX11 + { +#if UNITY_WEBGL + get { return false; } +#else + get { return SystemInfo.graphicsShaderLevel >= 50 && SystemInfo.supportsComputeShaders; } +#endif + } + + static Texture2D s_WhiteTexture; + public static Texture2D whiteTexture + { + get + { + if (s_WhiteTexture != null) + return s_WhiteTexture; + + s_WhiteTexture = new Texture2D(1, 1, TextureFormat.ARGB32, false); + s_WhiteTexture.SetPixel(0, 0, new Color(1f, 1f, 1f, 1f)); + s_WhiteTexture.Apply(); + + return s_WhiteTexture; + } + } + + static Mesh s_Quad; + public static Mesh quad + { + get + { + if (s_Quad != null) + return s_Quad; + + var vertices = new[] + { + new Vector3(-1f, -1f, 0f), + new Vector3( 1f, 1f, 0f), + new Vector3( 1f, -1f, 0f), + new Vector3(-1f, 1f, 0f) + }; + + var uvs = new[] + { + new Vector2(0f, 0f), + new Vector2(1f, 1f), + new Vector2(1f, 0f), + new Vector2(0f, 1f) + }; + + var indices = new[] { 0, 1, 2, 1, 0, 3 }; + + s_Quad = new Mesh + { + vertices = vertices, + uv = uvs, + triangles = indices + }; + s_Quad.RecalculateNormals(); + s_Quad.RecalculateBounds(); + + return s_Quad; + } + } + + // Useful when rendering to MRT + public static void Blit(Material material, int pass) + { + GL.PushMatrix(); + { + GL.LoadOrtho(); + + material.SetPass(pass); + + GL.Begin(GL.TRIANGLE_STRIP); + { + GL.TexCoord2(0f, 0f); GL.Vertex3(0f, 0f, 0.1f); + GL.TexCoord2(1f, 0f); GL.Vertex3(1f, 0f, 0.1f); + GL.TexCoord2(0f, 1f); GL.Vertex3(0f, 1f, 0.1f); + GL.TexCoord2(1f, 1f); GL.Vertex3(1f, 1f, 0.1f); + } + GL.End(); + } + GL.PopMatrix(); + } + + public static void ClearAndBlit(Texture source, RenderTexture destination, Material material, int pass, bool clearColor = true, bool clearDepth = false) + { + var oldRT = RenderTexture.active; + RenderTexture.active = destination; + + GL.Clear(false, clearColor, Color.clear); + GL.PushMatrix(); + { + GL.LoadOrtho(); + + material.SetTexture("_MainTex", source); + material.SetPass(pass); + + GL.Begin(GL.TRIANGLE_STRIP); + { + GL.TexCoord2(0f, 0f); GL.Vertex3(0f, 0f, 0.1f); + GL.TexCoord2(1f, 0f); GL.Vertex3(1f, 0f, 0.1f); + GL.TexCoord2(0f, 1f); GL.Vertex3(0f, 1f, 0.1f); + GL.TexCoord2(1f, 1f); GL.Vertex3(1f, 1f, 0.1f); + } + GL.End(); + } + GL.PopMatrix(); + + RenderTexture.active = oldRT; + } + + public static void Destroy(UnityObject obj) + { + if (obj != null) + { +#if UNITY_EDITOR + if (Application.isPlaying) + UnityObject.Destroy(obj); + else + UnityObject.DestroyImmediate(obj); +#else + UnityObject.Destroy(obj); +#endif + } + } + + public static void Dispose() + { + Destroy(s_Quad); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Utils/GraphicsUtils.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/GraphicsUtils.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..74042f5fe5c06179fb810e4c37ec3f6a2dc8f8ec --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/GraphicsUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f40f0a1acf6ce2f419f2b71c667e8973 +timeCreated: 1467635425 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Utils/MaterialFactory.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/MaterialFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..fa5eee763b9988784057748a32ef08026261e94b --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/MaterialFactory.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; + +namespace UnityEngine.PostProcessing +{ + using UnityObject = Object; + + public sealed class MaterialFactory : IDisposable + { + Dictionary<string, Material> m_Materials; + + public MaterialFactory() + { + m_Materials = new Dictionary<string, Material>(); + } + + public Material Get(string shaderName) + { + Material material; + + if (!m_Materials.TryGetValue(shaderName, out material)) + { + var shader = Shader.Find(shaderName); + + if (shader == null) + throw new ArgumentException(string.Format("Shader not found ({0})", shaderName)); + + material = new Material(shader) + { + name = string.Format("PostFX - {0}", shaderName.Substring(shaderName.LastIndexOf("/") + 1)), + hideFlags = HideFlags.DontSave + }; + + m_Materials.Add(shaderName, material); + } + + return material; + } + + public void Dispose() + { + var enumerator = m_Materials.GetEnumerator(); + while (enumerator.MoveNext()) + { + var material = enumerator.Current.Value; + GraphicsUtils.Destroy(material); + } + + m_Materials.Clear(); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Utils/MaterialFactory.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/MaterialFactory.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..27b6c209137fa76f2ae32e4aac0050df874ab0b0 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/MaterialFactory.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 594fad000c373f746864717c588e1815 +timeCreated: 1466586851 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Utils/RenderTextureFactory.cs b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/RenderTextureFactory.cs new file mode 100644 index 0000000000000000000000000000000000000000..a3864732726cef54c288db8c1db1da84567f730d --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/RenderTextureFactory.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; + +namespace UnityEngine.PostProcessing +{ + public sealed class RenderTextureFactory : IDisposable + { + HashSet<RenderTexture> m_TemporaryRTs; + + public RenderTextureFactory() + { + m_TemporaryRTs = new HashSet<RenderTexture>(); + } + + public RenderTexture Get(RenderTexture baseRenderTexture) + { + return Get( + baseRenderTexture.width, + baseRenderTexture.height, + baseRenderTexture.depth, + baseRenderTexture.format, + baseRenderTexture.sRGB ? RenderTextureReadWrite.sRGB : RenderTextureReadWrite.Linear, + baseRenderTexture.filterMode, + baseRenderTexture.wrapMode + ); + } + + public RenderTexture Get(int width, int height, int depthBuffer = 0, RenderTextureFormat format = RenderTextureFormat.ARGBHalf, RenderTextureReadWrite rw = RenderTextureReadWrite.Default, FilterMode filterMode = FilterMode.Bilinear, TextureWrapMode wrapMode = TextureWrapMode.Clamp, string name = "FactoryTempTexture") + { + var rt = RenderTexture.GetTemporary(width, height, depthBuffer, format, rw); // add forgotten param rw + rt.filterMode = filterMode; + rt.wrapMode = wrapMode; + rt.name = name; + m_TemporaryRTs.Add(rt); + return rt; + } + + public void Release(RenderTexture rt) + { + if (rt == null) + return; + + if (!m_TemporaryRTs.Contains(rt)) + throw new ArgumentException(string.Format("Attempting to remove a RenderTexture that was not allocated: {0}", rt)); + + m_TemporaryRTs.Remove(rt); + RenderTexture.ReleaseTemporary(rt); + } + + public void ReleaseAll() + { + var enumerator = m_TemporaryRTs.GetEnumerator(); + while (enumerator.MoveNext()) + RenderTexture.ReleaseTemporary(enumerator.Current); + + m_TemporaryRTs.Clear(); + } + + public void Dispose() + { + ReleaseAll(); + } + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Runtime/Utils/RenderTextureFactory.cs.meta b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/RenderTextureFactory.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..adf43f76dc0aa87c07be4ffec3cdd99931263095 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Runtime/Utils/RenderTextureFactory.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aec5694806c4d75449e231cfae69c329 +timeCreated: 1467361102 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Utilities.meta b/Assets/Third Party Assets/PostProcessing/Utilities.meta new file mode 100644 index 0000000000000000000000000000000000000000..58c960a94f3e02f55a228909e95573b4aa977a53 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 478d405e757b044f2bd9c4b777026b7e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Utilities/CustomMotionTexture.meta b/Assets/Third Party Assets/PostProcessing/Utilities/CustomMotionTexture.meta new file mode 100644 index 0000000000000000000000000000000000000000..962bcee3eb6c29c77b26ac2d58fd823f68237bd4 --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Utilities/CustomMotionTexture.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5b271143f6e834d6bb7a4309f2c781f2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/PostProcessing/Utilities/CustomMotionTexture/ExampleWheelController.cs b/Assets/Third Party Assets/PostProcessing/Utilities/CustomMotionTexture/ExampleWheelController.cs new file mode 100644 index 0000000000000000000000000000000000000000..a8bf34af6dda39e7508026b5ad2ad0166a6e87db --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Utilities/CustomMotionTexture/ExampleWheelController.cs @@ -0,0 +1,33 @@ +using UnityEngine; + +public class ExampleWheelController : MonoBehaviour +{ + public float acceleration; + public Renderer motionVectorRenderer; // Reference to the custom motion vector renderer + + Rigidbody m_Rigidbody; + + static class Uniforms + { + internal static readonly int _MotionAmount = Shader.PropertyToID("_MotionAmount"); + } + + void Start() + { + m_Rigidbody = GetComponent<Rigidbody>(); // Get reference to rigidbody + m_Rigidbody.maxAngularVelocity = 100; // Set max velocity for rigidbody + } + + void Update() + { + if (Input.GetKey (KeyCode.UpArrow)) // Rotate forward + m_Rigidbody.AddRelativeTorque(new Vector3(-1 * acceleration, 0, 0), ForceMode.Acceleration); // Add forward torque to mesh + else if (Input.GetKey (KeyCode.DownArrow)) // Rotate backward + m_Rigidbody.AddRelativeTorque(new Vector3(1 * acceleration, 0, 0), ForceMode.Acceleration); // Add backward torque to mesh + + float m = -m_Rigidbody.angularVelocity.x / 100; // Calculate multiplier for motion vector texture + + if (motionVectorRenderer) // If the custom motion vector texture renderer exists + motionVectorRenderer.material.SetFloat(Uniforms._MotionAmount, Mathf.Clamp(m, -0.25f, 0.25f)); // Set the multiplier on the renderer's material + } +} diff --git a/Assets/Third Party Assets/PostProcessing/Utilities/CustomMotionTexture/ExampleWheelController.cs.meta b/Assets/Third Party Assets/PostProcessing/Utilities/CustomMotionTexture/ExampleWheelController.cs.meta new file mode 100644 index 0000000000000000000000000000000000000000..3640cf0cc24a06c504a5e8c20aac3bc5af64bcfc --- /dev/null +++ b/Assets/Third Party Assets/PostProcessing/Utilities/CustomMotionTexture/ExampleWheelController.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 840c928746809454cb5b9309b640dbd7 +timeCreated: 1479836093 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Third Party Assets/StarterAssets/Environment/Prefabs/Tunnel_Prefab.prefab b/Assets/Third Party Assets/StarterAssets/Environment/Prefabs/Tunnel_Prefab.prefab index 835ab5a4de6de4039a4643a7f8a5f3b459826e2b..93ea3ebb31ea413c208832784ffb07c8128679c6 100644 --- a/Assets/Third Party Assets/StarterAssets/Environment/Prefabs/Tunnel_Prefab.prefab +++ b/Assets/Third Party Assets/StarterAssets/Environment/Prefabs/Tunnel_Prefab.prefab @@ -30,7 +30,8 @@ Transform: m_GameObject: {fileID: 1604908963751126680} m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalScale: {x: 3, y: 3, z: 3} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 @@ -54,6 +55,7 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 diff --git a/BrowserAssets/UI/hub.html b/BrowserAssets/UI/hub.html index 5f703e7e88afd6a56399716c3c3b7eb4a8f0b93c..7bad7ae0e4394e18f6434737fdb12c9906b30bac 100644 --- a/BrowserAssets/UI/hub.html +++ b/BrowserAssets/UI/hub.html @@ -83,7 +83,7 @@ uiWindowGameList.preferHide = true; // Pemet de ne pas supprimer le code html au moment de la fermeture de la fenêtre uiWindowGameList.closeAction = "reEnableHubInput();aWindowsHasBeenOpened = false;"; // Fonction créée au runtime par UI.cs uiWindowGameList.acceptable = true; - uiWindowGameList.acceptAction = "loadScene('SkateTest');"; + uiWindowGameList.acceptAction = "loadScene('paintballFinal');"; // Puis on l'initialise (pour la créer et prendre en compte les paramètres) uiWindowGameList.init(); diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index 2fe0d617c1ef48bb5c121cd7efeab4b8fb4c29b7..2dbcee8a33139160f63944f4365d97294dd322f5 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -14,12 +14,6 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/Hub/Hub.unity guid: 548ff420e1a556f44ab8d1326b7d9200 - - enabled: 1 - path: Assets/Scenes/Paintball/egypt.unity - guid: 9fc0d4010bbf28b4594072e72b8655ab - - enabled: 1 - path: Assets/Scenes/skatepark terraintest/SkateTest.unity - guid: eb42c57e6107d234ea1ce47f3388473c - enabled: 1 path: Assets/Scenes/CourseAPieds/menuCourse.unity guid: 0adcb92b15b7a0a48b3d87a068e3652b @@ -29,5 +23,8 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/CourseAPieds/sceneV7.unity guid: b6c4140a91af9c34588bed446eed5f30 + - enabled: 1 + path: Assets/Scenes/Paintball/paintBallFinal.unity + guid: f1def0858a7d92c4cb37fb2093f7c843 m_configObjects: com.unity.input.settings: {fileID: 11400000, guid: 9e7be553448fa2546aea5752021cbcf7, type: 2}