├── .gitignore ├── LICENSE ├── README.md ├── Unity └── Assets │ ├── Resources.meta │ ├── Resources │ ├── pusheen-1.jpg │ └── pusheen-1.jpg.meta │ ├── Script │ └── UIImagePostprocessing.cs │ ├── SpritePostprocessing.cs │ ├── SpritePostprocessing.cs.meta │ ├── demo.unity │ └── demo.unity.meta └── screenshots ├── screenshot1.PNG └── screenshot2.PNG /.gitignore: -------------------------------------------------------------------------------- 1 | [Ll]ibrary/ 2 | [Tt]emp/ 3 | [Oo]bj/ 4 | [Bb]uild/ 5 | [Bb]uilds/ 6 | Assets/AssetStoreTools* 7 | 8 | # Visual Studio cache directory 9 | .vs/ 10 | 11 | # Autogenerated VS/MD/Consulo solution and project files 12 | ExportedObj/ 13 | .consulo/ 14 | *.csproj 15 | *.unityproj 16 | *.sln 17 | *.suo 18 | *.tmp 19 | *.user 20 | *.userprefs 21 | *.pidb 22 | *.booproj 23 | *.svd 24 | *.pdb 25 | *.opendb 26 | 27 | # Unity3D generated meta files 28 | *.pidb.meta 29 | *.pdb.meta 30 | 31 | # Unity3D Generated File On Crash Reports 32 | sysinfo.txt 33 | 34 | # Builds 35 | *.apk 36 | *.unitypackage 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Sprite-Postprocessing-Tool 2 | 3 | This unity post processing plugin that let's you create different effects for the unity UI image or Sprite Renderer component. 4 | 5 | **For static image only, not supporting animations.** 6 | 7 | # How to use it? 8 | 9 | Make sure that under the **import settings** for the texture, in **Advanced**, the **Read/Write Enable** option is enabled. Then attach the ```SpritePostprocessing.cs``` script to any gameObjects that have UI Image or Sprite Renderer component attached. 10 | 11 | The ```SpritePostprocessing.cs``` will automatic find the source (which is the UI Image or Sprite Renderer component) and apply the effect to it. 12 | 13 | ## Options 14 | 15 | - Ignored Color: the pixels that have the silmilar color will be ignored and will not have effect applied to it. 16 | - Ignore Threshold: determines how two colors are silmilar. 17 | - Color muliplier: determines the color saturation. 18 | - Tint color: the tint color, only applies when post processing method "tint" was selected. 19 | 20 | ## Note 21 | 22 | When changed the value, call ```ApplyTextureChanges()``` to apply the changes. 23 | When you want to reset the sprite to default, call ```Reset()```. 24 | Also, enable/ disable the component will set/reset the post processing effect of sprite. 25 | 26 | # Screenshots 27 | 28 | - Editor View 29 | 30 | ![Editor View](https://raw.githubusercontent.com/rozx/Sprite-Postprocessing-Tool-Unity/master/screenshots/screenshot2.PNG) 31 | 32 | - Example Preview 33 | 34 | ![Example](https://raw.githubusercontent.com/rozx/Sprite-Postprocessing-Tool-Unity/master/screenshots/screenshot1.PNG) 35 | -------------------------------------------------------------------------------- /Unity/Assets/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6132f758a267d2b4c964e787302b312c 3 | folderAsset: yes 4 | timeCreated: 1544626800 5 | licenseType: Pro 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Unity/Assets/Resources/pusheen-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rozx/Sprite-Postprocessing-Tool-Unity/86812b4f78e3dd26ee9f91725e4d7e17784a3b6a/Unity/Assets/Resources/pusheen-1.jpg -------------------------------------------------------------------------------- /Unity/Assets/Resources/pusheen-1.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 81640a73b05342747bc3876141ebce5c 3 | timeCreated: 1545251042 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 0 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 1 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 1 52 | spriteTessellationDetail: -1 53 | textureType: 8 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | - buildTarget: Standalone 70 | maxTextureSize: 2048 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 1 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | - buildTarget: iPhone 80 | maxTextureSize: 2048 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | - buildTarget: Android 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 1 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | - buildTarget: Windows Store Apps 100 | maxTextureSize: 2048 101 | resizeAlgorithm: 0 102 | textureFormat: -1 103 | textureCompression: 1 104 | compressionQuality: 50 105 | crunchedCompression: 0 106 | allowsAlphaSplitting: 0 107 | overridden: 0 108 | androidETC2FallbackOverride: 0 109 | - buildTarget: WebGL 110 | maxTextureSize: 2048 111 | resizeAlgorithm: 0 112 | textureFormat: -1 113 | textureCompression: 1 114 | compressionQuality: 50 115 | crunchedCompression: 0 116 | allowsAlphaSplitting: 0 117 | overridden: 0 118 | androidETC2FallbackOverride: 0 119 | spriteSheet: 120 | serializedVersion: 2 121 | sprites: [] 122 | outline: [] 123 | physicsShape: [] 124 | spritePackingTag: 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Unity/Assets/Script/UIImagePostprocessing.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | 6 | [AddComponentMenu("Utils/UI image Postrocessing utility")] 7 | [RequireComponent(typeof (Image))] 8 | public class UIImagePostprocessing : MonoBehaviour { 9 | [Header("Main Settings")] 10 | 11 | public Image targetUIImage; 12 | public List ignoredColors = new List(); 13 | public float ignoreThreshold = 0.01f; 14 | public float colorMultiplier = 1; 15 | public PostProcessingMethod imagePostProcessingEffect = PostProcessingMethod.GreyScale; 16 | 17 | 18 | [Header("Tint Settings")] 19 | 20 | public Color tintColor = Color.white; 21 | 22 | private Sprite targetSprite; 23 | private Texture2D targetTexture; 24 | private Sprite tempSprite; 25 | private Texture2D tempTexture; 26 | 27 | 28 | 29 | public enum PostProcessingMethod { None ,GreyScale, Exposure, Tint, Inverse, Noise } 30 | 31 | private void OnEnable() 32 | { 33 | if (targetUIImage == null) targetUIImage = GetComponent(); 34 | if (targetUIImage != null) 35 | { 36 | targetSprite = targetUIImage.sprite; 37 | targetTexture = targetSprite.texture; 38 | 39 | if (targetTexture) ApplyTextureChanges(); 40 | 41 | } 42 | } 43 | 44 | private void OnDisable() 45 | { 46 | Reset(); 47 | } 48 | 49 | public void Reset() 50 | { 51 | targetUIImage.sprite = targetSprite; 52 | tempSprite = null; 53 | tempTexture = null; 54 | } 55 | 56 | public void ApplyTextureChanges() 57 | { 58 | if (tempTexture != null) 59 | { 60 | 61 | tempTexture.SetPixels(targetSprite.texture.GetPixels()); 62 | ProcessingAllPixels(tempTexture); 63 | 64 | } else 65 | { 66 | CreateTempSpriteAndTexture(); 67 | } 68 | } 69 | 70 | 71 | private void CreateTempSpriteAndTexture() 72 | { 73 | tempTexture = new Texture2D(targetTexture.width, targetTexture.height); 74 | tempTexture.SetPixels(targetTexture.GetPixels()); 75 | 76 | ProcessingAllPixels(tempTexture); 77 | 78 | tempSprite = Sprite.Create(tempTexture, new Rect(0, 0, targetTexture.width, targetTexture.height), new Vector2(targetTexture.width / 2, targetTexture.height / 2)); 79 | 80 | targetUIImage.sprite = tempSprite; 81 | } 82 | 83 | private void ProcessingAllPixels(Texture2D texture) 84 | { 85 | 86 | switch (imagePostProcessingEffect) 87 | { 88 | default: 89 | 90 | Color[] colors = texture.GetPixels(); 91 | 92 | for (int i = 0; i < colors.Length; i++) 93 | { 94 | colors[i] = ProcessPixel(colors[i]); 95 | } 96 | 97 | texture.SetPixels(colors); 98 | 99 | break; 100 | } 101 | 102 | 103 | 104 | texture.Apply(); 105 | } 106 | 107 | private Color ProcessPixel(Color pixel) 108 | { 109 | 110 | bool isSimilarColor = false; 111 | 112 | isSimilarColor = !ignoredColors.TrueForAll(x => !IsColorSimilar(x, pixel, ignoreThreshold)); 113 | 114 | if (!isSimilarColor) 115 | { 116 | 117 | switch (imagePostProcessingEffect) 118 | { 119 | 120 | case PostProcessingMethod.GreyScale: 121 | 122 | float grey = (pixel.r + pixel.g + pixel.b) / 3 * colorMultiplier; 123 | pixel = new Color(grey, grey, grey); 124 | 125 | break; 126 | 127 | case PostProcessingMethod.Exposure: 128 | 129 | pixel = new Color(pixel.r * colorMultiplier, pixel.g * colorMultiplier, pixel.b * colorMultiplier); 130 | 131 | break; 132 | 133 | case PostProcessingMethod.Tint: 134 | 135 | pixel = new Color((pixel.r * tintColor.r) * colorMultiplier, (pixel.g * tintColor.g) * colorMultiplier, (pixel.b * tintColor.b) * colorMultiplier); 136 | 137 | break; 138 | 139 | case PostProcessingMethod.Inverse: 140 | 141 | pixel = new Color((1 - pixel.r) * colorMultiplier, (1 - pixel.g) * colorMultiplier, (1 - pixel.b) * colorMultiplier); 142 | 143 | break; 144 | 145 | case PostProcessingMethod.Noise: 146 | 147 | pixel = new Color((pixel.r * Random.Range(0, colorMultiplier)), (pixel.g * Random.Range(0, colorMultiplier)), (pixel.b * Random.Range(0, colorMultiplier))); 148 | 149 | break; 150 | } 151 | } 152 | 153 | return pixel; 154 | } 155 | 156 | /// 157 | /// Check the color is similar within the threshold. 158 | /// 159 | /// 160 | /// 161 | /// 162 | /// 163 | private bool IsColorSimilar(Color color1, Color color2, float threshold = 0.1f) 164 | { 165 | float r = Mathf.Abs(color1.r - color2.r); 166 | float g = Mathf.Abs(color1.g - color2.g); 167 | float b = Mathf.Abs(color1.b - color2.b); 168 | 169 | return (r * r + g * g + b * b) <= threshold * threshold; 170 | 171 | //return Vector3.Distance(new Vector3(color1.r, color1.g, color1.b), new Vector3(color2.r, color2.g, color2.b)) <= threshold; 172 | } 173 | 174 | } 175 | -------------------------------------------------------------------------------- /Unity/Assets/SpritePostprocessing.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | 6 | [AddComponentMenu("Utils/Sprite Postrocessing utility")] 7 | 8 | public class SpritePostprocessing : MonoBehaviour { 9 | 10 | [Header("Source Settings")] 11 | public Image targetUIImage; 12 | public SpriteRenderer targetSpriteRenderer; 13 | 14 | [Header("Main Settings")] 15 | 16 | public List ignoredColors = new List(); 17 | public float ignoreThreshold = 0.01f; 18 | public float colorMultiplier = 1; 19 | public PostProcessingMethod imagePostProcessingEffect = PostProcessingMethod.GreyScale; 20 | 21 | 22 | [Header("Tint Settings")] 23 | 24 | public Color tintColor = Color.white; 25 | 26 | private Sprite targetSprite; 27 | private Texture2D targetTexture; 28 | private Sprite tempSprite; 29 | private Texture2D tempTexture; 30 | 31 | public enum PostProcessingMethod { None ,GreyScale, Exposure, Tint, Inverse, Noise } 32 | 33 | private void OnEnable() 34 | { 35 | 36 | if (targetUIImage == null) targetUIImage = GetComponent(); 37 | if (targetSpriteRenderer == null) targetSpriteRenderer = GetComponent(); 38 | 39 | 40 | // assign sprites 41 | if (targetUIImage) targetSprite = targetUIImage.sprite; 42 | if (targetSpriteRenderer && !targetSprite) targetSprite = targetSpriteRenderer.sprite; 43 | 44 | 45 | if (targetSprite) 46 | { 47 | targetTexture = targetSprite.texture; 48 | if (targetTexture) ApplyTextureChanges(); 49 | 50 | } 51 | } 52 | 53 | private void OnDisable() 54 | { 55 | Reset(); 56 | } 57 | 58 | public void Reset() 59 | { 60 | if(targetUIImage) targetUIImage.sprite = targetSprite; 61 | if(targetSpriteRenderer) targetSpriteRenderer.sprite = targetSprite; 62 | 63 | tempSprite = null; 64 | tempTexture = null; 65 | } 66 | 67 | public void ApplyTextureChanges() 68 | { 69 | 70 | 71 | if (tempTexture != null) 72 | { 73 | tempTexture.SetPixels(targetSprite.texture.GetPixels()); 74 | ProcessingAllPixels(tempTexture); 75 | 76 | } 77 | else 78 | { 79 | CreateTempSpriteAndTexture(); 80 | } 81 | 82 | 83 | } 84 | 85 | 86 | private void CreateTempSpriteAndTexture() 87 | { 88 | tempTexture = new Texture2D(targetTexture.width, targetTexture.height); 89 | tempTexture.SetPixels(targetTexture.GetPixels()); 90 | 91 | ProcessingAllPixels(tempTexture); 92 | 93 | tempSprite = Sprite.Create(tempTexture, new Rect(0, 0, targetTexture.width, targetTexture.height), new Vector2(targetTexture.width / 2, targetTexture.height / 2)); 94 | 95 | if(targetUIImage) targetUIImage.sprite = tempSprite; 96 | if(targetSpriteRenderer) targetSpriteRenderer.sprite = tempSprite; 97 | } 98 | 99 | private void ProcessingAllPixels(Texture2D texture) 100 | { 101 | 102 | switch (imagePostProcessingEffect) 103 | { 104 | default: 105 | 106 | Color[] colors = texture.GetPixels(); 107 | 108 | for (int i = 0; i < colors.Length; i++) 109 | { 110 | colors[i] = ProcessPixel(colors[i]); 111 | } 112 | 113 | texture.SetPixels(colors); 114 | 115 | break; 116 | } 117 | 118 | 119 | 120 | texture.Apply(); 121 | } 122 | 123 | private Color ProcessPixel(Color pixel) 124 | { 125 | 126 | bool isSimilarColor = false; 127 | 128 | isSimilarColor = !ignoredColors.TrueForAll(x => !IsColorSimilar(x, pixel, ignoreThreshold)); 129 | 130 | if (!isSimilarColor) 131 | { 132 | 133 | switch (imagePostProcessingEffect) 134 | { 135 | 136 | case PostProcessingMethod.GreyScale: 137 | 138 | float grey = (pixel.r + pixel.g + pixel.b) / 3 * colorMultiplier; 139 | pixel = new Color(grey, grey, grey); 140 | 141 | break; 142 | 143 | case PostProcessingMethod.Exposure: 144 | 145 | pixel = new Color(pixel.r * colorMultiplier, pixel.g * colorMultiplier, pixel.b * colorMultiplier); 146 | 147 | break; 148 | 149 | case PostProcessingMethod.Tint: 150 | 151 | pixel = new Color((pixel.r * tintColor.r) * colorMultiplier, (pixel.g * tintColor.g) * colorMultiplier, (pixel.b * tintColor.b) * colorMultiplier); 152 | 153 | break; 154 | 155 | case PostProcessingMethod.Inverse: 156 | 157 | pixel = new Color((1 - pixel.r) * colorMultiplier, (1 - pixel.g) * colorMultiplier, (1 - pixel.b) * colorMultiplier); 158 | 159 | break; 160 | 161 | case PostProcessingMethod.Noise: 162 | 163 | pixel = new Color((pixel.r * Random.Range(0, colorMultiplier)), (pixel.g * Random.Range(0, colorMultiplier)), (pixel.b * Random.Range(0, colorMultiplier))); 164 | 165 | break; 166 | } 167 | } 168 | 169 | return pixel; 170 | } 171 | 172 | /// 173 | /// Check the color is similar within the threshold. 174 | /// 175 | /// 176 | /// 177 | /// 178 | /// 179 | private bool IsColorSimilar(Color color1, Color color2, float threshold = 0.1f) 180 | { 181 | float r = Mathf.Abs(color1.r - color2.r); 182 | float g = Mathf.Abs(color1.g - color2.g); 183 | float b = Mathf.Abs(color1.b - color2.b); 184 | 185 | return (r * r + g * g + b * b) <= threshold * threshold; 186 | 187 | //return Vector3.Distance(new Vector3(color1.r, color1.g, color1.b), new Vector3(color2.r, color2.g, color2.b)) <= threshold; 188 | } 189 | 190 | } 191 | -------------------------------------------------------------------------------- /Unity/Assets/SpritePostprocessing.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b8c9e2a9dfc0ce24f89c652b29eaf618 3 | timeCreated: 1544626782 4 | licenseType: Pro 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Unity/Assets/demo.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 8 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 3 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} 42 | --- !u!157 &3 43 | LightmapSettings: 44 | m_ObjectHideFlags: 0 45 | serializedVersion: 11 46 | m_GIWorkflowMode: 1 47 | m_GISettings: 48 | serializedVersion: 2 49 | m_BounceScale: 1 50 | m_IndirectOutputScale: 1 51 | m_AlbedoBoost: 1 52 | m_TemporalCoherenceThreshold: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 0 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 9 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_TextureWidth: 1024 61 | m_TextureHeight: 1024 62 | m_AO: 0 63 | m_AOMaxDistance: 1 64 | m_CompAOExponent: 1 65 | m_CompAOExponentDirect: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 0 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 500 79 | m_PVRBounces: 2 80 | m_PVRFilterTypeDirect: 0 81 | m_PVRFilterTypeIndirect: 0 82 | m_PVRFilterTypeAO: 0 83 | m_PVRFilteringMode: 1 84 | m_PVRCulling: 1 85 | m_PVRFilteringGaussRadiusDirect: 1 86 | m_PVRFilteringGaussRadiusIndirect: 5 87 | m_PVRFilteringGaussRadiusAO: 2 88 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 89 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 90 | m_PVRFilteringAtrousPositionSigmaAO: 1 91 | m_ShowResolutionOverlay: 1 92 | m_LightingDataAsset: {fileID: 0} 93 | m_UseShadowmask: 1 94 | --- !u!196 &4 95 | NavMeshSettings: 96 | serializedVersion: 2 97 | m_ObjectHideFlags: 0 98 | m_BuildSettings: 99 | serializedVersion: 2 100 | agentTypeID: 0 101 | agentRadius: 0.5 102 | agentHeight: 2 103 | agentSlope: 45 104 | agentClimb: 0.4 105 | ledgeDropHeight: 0 106 | maxJumpAcrossDistance: 0 107 | minRegionArea: 2 108 | manualCellSize: 0 109 | cellSize: 0.16666667 110 | manualTileSize: 0 111 | tileSize: 256 112 | accuratePlacement: 0 113 | debug: 114 | m_Flags: 0 115 | m_NavMeshData: {fileID: 0} 116 | --- !u!1 &716378461 117 | GameObject: 118 | m_ObjectHideFlags: 0 119 | m_PrefabParentObject: {fileID: 0} 120 | m_PrefabInternal: {fileID: 0} 121 | serializedVersion: 5 122 | m_Component: 123 | - component: {fileID: 716378462} 124 | - component: {fileID: 716378465} 125 | - component: {fileID: 716378464} 126 | - component: {fileID: 716378463} 127 | m_Layer: 5 128 | m_Name: Image 129 | m_TagString: Untagged 130 | m_Icon: {fileID: 0} 131 | m_NavMeshLayer: 0 132 | m_StaticEditorFlags: 0 133 | m_IsActive: 1 134 | --- !u!224 &716378462 135 | RectTransform: 136 | m_ObjectHideFlags: 0 137 | m_PrefabParentObject: {fileID: 0} 138 | m_PrefabInternal: {fileID: 0} 139 | m_GameObject: {fileID: 716378461} 140 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 141 | m_LocalPosition: {x: 0, y: 0, z: 0} 142 | m_LocalScale: {x: 1, y: 1, z: 1} 143 | m_Children: [] 144 | m_Father: {fileID: 1956158290} 145 | m_RootOrder: 0 146 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 147 | m_AnchorMin: {x: 0, y: 0} 148 | m_AnchorMax: {x: 1, y: 1} 149 | m_AnchoredPosition: {x: -298.5, y: 694.5} 150 | m_SizeDelta: {x: -607.7, y: -1388.8} 151 | m_Pivot: {x: 0.5, y: 0.5} 152 | --- !u!114 &716378463 153 | MonoBehaviour: 154 | m_ObjectHideFlags: 0 155 | m_PrefabParentObject: {fileID: 0} 156 | m_PrefabInternal: {fileID: 0} 157 | m_GameObject: {fileID: 716378461} 158 | m_Enabled: 1 159 | m_EditorHideFlags: 0 160 | m_Script: {fileID: 11500000, guid: b8c9e2a9dfc0ce24f89c652b29eaf618, type: 3} 161 | m_Name: 162 | m_EditorClassIdentifier: 163 | targetUIImage: {fileID: 0} 164 | targetSpriteRenderer: {fileID: 0} 165 | ignoredColors: 166 | - {r: 1, g: 1, b: 1, a: 0} 167 | ignoreThreshold: 0.05 168 | colorMultiplier: 1 169 | imagePostProcessingEffect: 1 170 | tintColor: {r: 1, g: 1, b: 1, a: 1} 171 | --- !u!114 &716378464 172 | MonoBehaviour: 173 | m_ObjectHideFlags: 0 174 | m_PrefabParentObject: {fileID: 0} 175 | m_PrefabInternal: {fileID: 0} 176 | m_GameObject: {fileID: 716378461} 177 | m_Enabled: 1 178 | m_EditorHideFlags: 0 179 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 180 | m_Name: 181 | m_EditorClassIdentifier: 182 | m_Material: {fileID: 0} 183 | m_Color: {r: 1, g: 1, b: 1, a: 1} 184 | m_RaycastTarget: 1 185 | m_OnCullStateChanged: 186 | m_PersistentCalls: 187 | m_Calls: [] 188 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 189 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 190 | m_Sprite: {fileID: 21300000, guid: 81640a73b05342747bc3876141ebce5c, type: 3} 191 | m_Type: 0 192 | m_PreserveAspect: 1 193 | m_FillCenter: 1 194 | m_FillMethod: 4 195 | m_FillAmount: 1 196 | m_FillClockwise: 1 197 | m_FillOrigin: 0 198 | --- !u!222 &716378465 199 | CanvasRenderer: 200 | m_ObjectHideFlags: 0 201 | m_PrefabParentObject: {fileID: 0} 202 | m_PrefabInternal: {fileID: 0} 203 | m_GameObject: {fileID: 716378461} 204 | --- !u!1 &822765535 205 | GameObject: 206 | m_ObjectHideFlags: 0 207 | m_PrefabParentObject: {fileID: 0} 208 | m_PrefabInternal: {fileID: 0} 209 | serializedVersion: 5 210 | m_Component: 211 | - component: {fileID: 822765536} 212 | - component: {fileID: 822765539} 213 | - component: {fileID: 822765538} 214 | - component: {fileID: 822765537} 215 | m_Layer: 5 216 | m_Name: Image (4) 217 | m_TagString: Untagged 218 | m_Icon: {fileID: 0} 219 | m_NavMeshLayer: 0 220 | m_StaticEditorFlags: 0 221 | m_IsActive: 1 222 | --- !u!224 &822765536 223 | RectTransform: 224 | m_ObjectHideFlags: 0 225 | m_PrefabParentObject: {fileID: 0} 226 | m_PrefabInternal: {fileID: 0} 227 | m_GameObject: {fileID: 822765535} 228 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 229 | m_LocalPosition: {x: 0, y: 0, z: 0} 230 | m_LocalScale: {x: 1, y: 1, z: 1} 231 | m_Children: [] 232 | m_Father: {fileID: 1956158290} 233 | m_RootOrder: 4 234 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 235 | m_AnchorMin: {x: 0, y: 0} 236 | m_AnchorMax: {x: 1, y: 1} 237 | m_AnchoredPosition: {x: -298.5, y: -693.4} 238 | m_SizeDelta: {x: -607.7, y: -1388.8} 239 | m_Pivot: {x: 0.5, y: 0.5} 240 | --- !u!114 &822765537 241 | MonoBehaviour: 242 | m_ObjectHideFlags: 0 243 | m_PrefabParentObject: {fileID: 0} 244 | m_PrefabInternal: {fileID: 0} 245 | m_GameObject: {fileID: 822765535} 246 | m_Enabled: 1 247 | m_EditorHideFlags: 0 248 | m_Script: {fileID: 11500000, guid: b8c9e2a9dfc0ce24f89c652b29eaf618, type: 3} 249 | m_Name: 250 | m_EditorClassIdentifier: 251 | targetUIImage: {fileID: 0} 252 | targetSpriteRenderer: {fileID: 0} 253 | ignoredColors: 254 | - {r: 1, g: 1, b: 1, a: 0} 255 | ignoreThreshold: 0.05 256 | colorMultiplier: 3 257 | imagePostProcessingEffect: 2 258 | tintColor: {r: 0.33088237, g: 0.5569981, b: 1, a: 1} 259 | --- !u!114 &822765538 260 | MonoBehaviour: 261 | m_ObjectHideFlags: 0 262 | m_PrefabParentObject: {fileID: 0} 263 | m_PrefabInternal: {fileID: 0} 264 | m_GameObject: {fileID: 822765535} 265 | m_Enabled: 1 266 | m_EditorHideFlags: 0 267 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 268 | m_Name: 269 | m_EditorClassIdentifier: 270 | m_Material: {fileID: 0} 271 | m_Color: {r: 1, g: 1, b: 1, a: 1} 272 | m_RaycastTarget: 1 273 | m_OnCullStateChanged: 274 | m_PersistentCalls: 275 | m_Calls: [] 276 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 277 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 278 | m_Sprite: {fileID: 21300000, guid: 81640a73b05342747bc3876141ebce5c, type: 3} 279 | m_Type: 0 280 | m_PreserveAspect: 1 281 | m_FillCenter: 1 282 | m_FillMethod: 4 283 | m_FillAmount: 1 284 | m_FillClockwise: 1 285 | m_FillOrigin: 0 286 | --- !u!222 &822765539 287 | CanvasRenderer: 288 | m_ObjectHideFlags: 0 289 | m_PrefabParentObject: {fileID: 0} 290 | m_PrefabInternal: {fileID: 0} 291 | m_GameObject: {fileID: 822765535} 292 | --- !u!1 &891442112 293 | GameObject: 294 | m_ObjectHideFlags: 0 295 | m_PrefabParentObject: {fileID: 0} 296 | m_PrefabInternal: {fileID: 0} 297 | serializedVersion: 5 298 | m_Component: 299 | - component: {fileID: 891442113} 300 | - component: {fileID: 891442116} 301 | - component: {fileID: 891442115} 302 | - component: {fileID: 891442114} 303 | m_Layer: 5 304 | m_Name: Image (1) 305 | m_TagString: Untagged 306 | m_Icon: {fileID: 0} 307 | m_NavMeshLayer: 0 308 | m_StaticEditorFlags: 0 309 | m_IsActive: 1 310 | --- !u!224 &891442113 311 | RectTransform: 312 | m_ObjectHideFlags: 0 313 | m_PrefabParentObject: {fileID: 0} 314 | m_PrefabInternal: {fileID: 0} 315 | m_GameObject: {fileID: 891442112} 316 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 317 | m_LocalPosition: {x: 0, y: 0, z: 0} 318 | m_LocalScale: {x: 1, y: 1, z: 1} 319 | m_Children: [] 320 | m_Father: {fileID: 1956158290} 321 | m_RootOrder: 1 322 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 323 | m_AnchorMin: {x: 0, y: 0} 324 | m_AnchorMax: {x: 1, y: 1} 325 | m_AnchoredPosition: {x: 297.7, y: 694.5} 326 | m_SizeDelta: {x: -607.7, y: -1388.8} 327 | m_Pivot: {x: 0.5, y: 0.5} 328 | --- !u!114 &891442114 329 | MonoBehaviour: 330 | m_ObjectHideFlags: 0 331 | m_PrefabParentObject: {fileID: 0} 332 | m_PrefabInternal: {fileID: 0} 333 | m_GameObject: {fileID: 891442112} 334 | m_Enabled: 1 335 | m_EditorHideFlags: 0 336 | m_Script: {fileID: 11500000, guid: b8c9e2a9dfc0ce24f89c652b29eaf618, type: 3} 337 | m_Name: 338 | m_EditorClassIdentifier: 339 | targetUIImage: {fileID: 0} 340 | targetSpriteRenderer: {fileID: 0} 341 | ignoredColors: 342 | - {r: 1, g: 1, b: 1, a: 0} 343 | ignoreThreshold: 0.05 344 | colorMultiplier: 1 345 | imagePostProcessingEffect: 3 346 | tintColor: {r: 0.15862082, g: 1, b: 0, a: 1} 347 | --- !u!114 &891442115 348 | MonoBehaviour: 349 | m_ObjectHideFlags: 0 350 | m_PrefabParentObject: {fileID: 0} 351 | m_PrefabInternal: {fileID: 0} 352 | m_GameObject: {fileID: 891442112} 353 | m_Enabled: 1 354 | m_EditorHideFlags: 0 355 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 356 | m_Name: 357 | m_EditorClassIdentifier: 358 | m_Material: {fileID: 0} 359 | m_Color: {r: 1, g: 1, b: 1, a: 1} 360 | m_RaycastTarget: 1 361 | m_OnCullStateChanged: 362 | m_PersistentCalls: 363 | m_Calls: [] 364 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 365 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 366 | m_Sprite: {fileID: 21300000, guid: 81640a73b05342747bc3876141ebce5c, type: 3} 367 | m_Type: 0 368 | m_PreserveAspect: 1 369 | m_FillCenter: 1 370 | m_FillMethod: 4 371 | m_FillAmount: 1 372 | m_FillClockwise: 1 373 | m_FillOrigin: 0 374 | --- !u!222 &891442116 375 | CanvasRenderer: 376 | m_ObjectHideFlags: 0 377 | m_PrefabParentObject: {fileID: 0} 378 | m_PrefabInternal: {fileID: 0} 379 | m_GameObject: {fileID: 891442112} 380 | --- !u!1 &1000475377 381 | GameObject: 382 | m_ObjectHideFlags: 0 383 | m_PrefabParentObject: {fileID: 0} 384 | m_PrefabInternal: {fileID: 0} 385 | serializedVersion: 5 386 | m_Component: 387 | - component: {fileID: 1000475378} 388 | - component: {fileID: 1000475381} 389 | - component: {fileID: 1000475380} 390 | - component: {fileID: 1000475379} 391 | m_Layer: 5 392 | m_Name: Image (5) 393 | m_TagString: Untagged 394 | m_Icon: {fileID: 0} 395 | m_NavMeshLayer: 0 396 | m_StaticEditorFlags: 0 397 | m_IsActive: 1 398 | --- !u!224 &1000475378 399 | RectTransform: 400 | m_ObjectHideFlags: 0 401 | m_PrefabParentObject: {fileID: 0} 402 | m_PrefabInternal: {fileID: 0} 403 | m_GameObject: {fileID: 1000475377} 404 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 405 | m_LocalPosition: {x: 0, y: 0, z: 0} 406 | m_LocalScale: {x: 1, y: 1, z: 1} 407 | m_Children: [] 408 | m_Father: {fileID: 1956158290} 409 | m_RootOrder: 5 410 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 411 | m_AnchorMin: {x: 0, y: 0} 412 | m_AnchorMax: {x: 1, y: 1} 413 | m_AnchoredPosition: {x: 297.7, y: -693.4} 414 | m_SizeDelta: {x: -607.7, y: -1388.8} 415 | m_Pivot: {x: 0.5, y: 0.5} 416 | --- !u!114 &1000475379 417 | MonoBehaviour: 418 | m_ObjectHideFlags: 0 419 | m_PrefabParentObject: {fileID: 0} 420 | m_PrefabInternal: {fileID: 0} 421 | m_GameObject: {fileID: 1000475377} 422 | m_Enabled: 1 423 | m_EditorHideFlags: 0 424 | m_Script: {fileID: 11500000, guid: b8c9e2a9dfc0ce24f89c652b29eaf618, type: 3} 425 | m_Name: 426 | m_EditorClassIdentifier: 427 | targetUIImage: {fileID: 0} 428 | targetSpriteRenderer: {fileID: 0} 429 | ignoredColors: 430 | - {r: 0.7568628, g: 0.7176471, b: 0.68235296, a: 0} 431 | ignoreThreshold: 0.05 432 | colorMultiplier: 1 433 | imagePostProcessingEffect: 3 434 | tintColor: {r: 0, g: 0.37931037, b: 1, a: 1} 435 | --- !u!114 &1000475380 436 | MonoBehaviour: 437 | m_ObjectHideFlags: 0 438 | m_PrefabParentObject: {fileID: 0} 439 | m_PrefabInternal: {fileID: 0} 440 | m_GameObject: {fileID: 1000475377} 441 | m_Enabled: 1 442 | m_EditorHideFlags: 0 443 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 444 | m_Name: 445 | m_EditorClassIdentifier: 446 | m_Material: {fileID: 0} 447 | m_Color: {r: 1, g: 1, b: 1, a: 1} 448 | m_RaycastTarget: 1 449 | m_OnCullStateChanged: 450 | m_PersistentCalls: 451 | m_Calls: [] 452 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 453 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 454 | m_Sprite: {fileID: 21300000, guid: 81640a73b05342747bc3876141ebce5c, type: 3} 455 | m_Type: 0 456 | m_PreserveAspect: 1 457 | m_FillCenter: 1 458 | m_FillMethod: 4 459 | m_FillAmount: 1 460 | m_FillClockwise: 1 461 | m_FillOrigin: 0 462 | --- !u!222 &1000475381 463 | CanvasRenderer: 464 | m_ObjectHideFlags: 0 465 | m_PrefabParentObject: {fileID: 0} 466 | m_PrefabInternal: {fileID: 0} 467 | m_GameObject: {fileID: 1000475377} 468 | --- !u!1 &1521533627 469 | GameObject: 470 | m_ObjectHideFlags: 0 471 | m_PrefabParentObject: {fileID: 0} 472 | m_PrefabInternal: {fileID: 0} 473 | serializedVersion: 5 474 | m_Component: 475 | - component: {fileID: 1521533628} 476 | - component: {fileID: 1521533631} 477 | - component: {fileID: 1521533630} 478 | - component: {fileID: 1521533629} 479 | m_Layer: 5 480 | m_Name: Image (3) 481 | m_TagString: Untagged 482 | m_Icon: {fileID: 0} 483 | m_NavMeshLayer: 0 484 | m_StaticEditorFlags: 0 485 | m_IsActive: 1 486 | --- !u!224 &1521533628 487 | RectTransform: 488 | m_ObjectHideFlags: 0 489 | m_PrefabParentObject: {fileID: 0} 490 | m_PrefabInternal: {fileID: 0} 491 | m_GameObject: {fileID: 1521533627} 492 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 493 | m_LocalPosition: {x: 0, y: 0, z: 0} 494 | m_LocalScale: {x: 1, y: 1, z: 1} 495 | m_Children: [] 496 | m_Father: {fileID: 1956158290} 497 | m_RootOrder: 3 498 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 499 | m_AnchorMin: {x: 0, y: 0} 500 | m_AnchorMax: {x: 1, y: 1} 501 | m_AnchoredPosition: {x: 297.7, y: 14.299988} 502 | m_SizeDelta: {x: -607.7, y: -1388.8} 503 | m_Pivot: {x: 0.5, y: 0.5} 504 | --- !u!114 &1521533629 505 | MonoBehaviour: 506 | m_ObjectHideFlags: 0 507 | m_PrefabParentObject: {fileID: 0} 508 | m_PrefabInternal: {fileID: 0} 509 | m_GameObject: {fileID: 1521533627} 510 | m_Enabled: 1 511 | m_EditorHideFlags: 0 512 | m_Script: {fileID: 11500000, guid: b8c9e2a9dfc0ce24f89c652b29eaf618, type: 3} 513 | m_Name: 514 | m_EditorClassIdentifier: 515 | targetUIImage: {fileID: 0} 516 | targetSpriteRenderer: {fileID: 0} 517 | ignoredColors: 518 | - {r: 1, g: 1, b: 1, a: 0} 519 | ignoreThreshold: 0.05 520 | colorMultiplier: 1 521 | imagePostProcessingEffect: 4 522 | tintColor: {r: 1, g: 1, b: 1, a: 1} 523 | --- !u!114 &1521533630 524 | MonoBehaviour: 525 | m_ObjectHideFlags: 0 526 | m_PrefabParentObject: {fileID: 0} 527 | m_PrefabInternal: {fileID: 0} 528 | m_GameObject: {fileID: 1521533627} 529 | m_Enabled: 1 530 | m_EditorHideFlags: 0 531 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 532 | m_Name: 533 | m_EditorClassIdentifier: 534 | m_Material: {fileID: 0} 535 | m_Color: {r: 1, g: 1, b: 1, a: 1} 536 | m_RaycastTarget: 1 537 | m_OnCullStateChanged: 538 | m_PersistentCalls: 539 | m_Calls: [] 540 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 541 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 542 | m_Sprite: {fileID: 21300000, guid: 81640a73b05342747bc3876141ebce5c, type: 3} 543 | m_Type: 0 544 | m_PreserveAspect: 1 545 | m_FillCenter: 1 546 | m_FillMethod: 4 547 | m_FillAmount: 1 548 | m_FillClockwise: 1 549 | m_FillOrigin: 0 550 | --- !u!222 &1521533631 551 | CanvasRenderer: 552 | m_ObjectHideFlags: 0 553 | m_PrefabParentObject: {fileID: 0} 554 | m_PrefabInternal: {fileID: 0} 555 | m_GameObject: {fileID: 1521533627} 556 | --- !u!1 &1614918045 557 | GameObject: 558 | m_ObjectHideFlags: 0 559 | m_PrefabParentObject: {fileID: 0} 560 | m_PrefabInternal: {fileID: 0} 561 | serializedVersion: 5 562 | m_Component: 563 | - component: {fileID: 1614918048} 564 | - component: {fileID: 1614918047} 565 | - component: {fileID: 1614918046} 566 | m_Layer: 0 567 | m_Name: EventSystem 568 | m_TagString: Untagged 569 | m_Icon: {fileID: 0} 570 | m_NavMeshLayer: 0 571 | m_StaticEditorFlags: 0 572 | m_IsActive: 1 573 | --- !u!114 &1614918046 574 | MonoBehaviour: 575 | m_ObjectHideFlags: 0 576 | m_PrefabParentObject: {fileID: 0} 577 | m_PrefabInternal: {fileID: 0} 578 | m_GameObject: {fileID: 1614918045} 579 | m_Enabled: 1 580 | m_EditorHideFlags: 0 581 | m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 582 | m_Name: 583 | m_EditorClassIdentifier: 584 | m_HorizontalAxis: Horizontal 585 | m_VerticalAxis: Vertical 586 | m_SubmitButton: Submit 587 | m_CancelButton: Cancel 588 | m_InputActionsPerSecond: 10 589 | m_RepeatDelay: 0.5 590 | m_ForceModuleActive: 0 591 | --- !u!114 &1614918047 592 | MonoBehaviour: 593 | m_ObjectHideFlags: 0 594 | m_PrefabParentObject: {fileID: 0} 595 | m_PrefabInternal: {fileID: 0} 596 | m_GameObject: {fileID: 1614918045} 597 | m_Enabled: 1 598 | m_EditorHideFlags: 0 599 | m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 600 | m_Name: 601 | m_EditorClassIdentifier: 602 | m_FirstSelected: {fileID: 0} 603 | m_sendNavigationEvents: 1 604 | m_DragThreshold: 5 605 | --- !u!4 &1614918048 606 | Transform: 607 | m_ObjectHideFlags: 0 608 | m_PrefabParentObject: {fileID: 0} 609 | m_PrefabInternal: {fileID: 0} 610 | m_GameObject: {fileID: 1614918045} 611 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 612 | m_LocalPosition: {x: 0, y: 0, z: 0} 613 | m_LocalScale: {x: 1, y: 1, z: 1} 614 | m_Children: [] 615 | m_Father: {fileID: 0} 616 | m_RootOrder: 2 617 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 618 | --- !u!1 &1936488639 619 | GameObject: 620 | m_ObjectHideFlags: 0 621 | m_PrefabParentObject: {fileID: 0} 622 | m_PrefabInternal: {fileID: 0} 623 | serializedVersion: 5 624 | m_Component: 625 | - component: {fileID: 1936488640} 626 | - component: {fileID: 1936488643} 627 | - component: {fileID: 1936488642} 628 | - component: {fileID: 1936488641} 629 | m_Layer: 5 630 | m_Name: Image (2) 631 | m_TagString: Untagged 632 | m_Icon: {fileID: 0} 633 | m_NavMeshLayer: 0 634 | m_StaticEditorFlags: 0 635 | m_IsActive: 1 636 | --- !u!224 &1936488640 637 | RectTransform: 638 | m_ObjectHideFlags: 0 639 | m_PrefabParentObject: {fileID: 0} 640 | m_PrefabInternal: {fileID: 0} 641 | m_GameObject: {fileID: 1936488639} 642 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 643 | m_LocalPosition: {x: 0, y: 0, z: 0} 644 | m_LocalScale: {x: 1, y: 1, z: 1} 645 | m_Children: [] 646 | m_Father: {fileID: 1956158290} 647 | m_RootOrder: 2 648 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 649 | m_AnchorMin: {x: 0, y: 0} 650 | m_AnchorMax: {x: 1, y: 1} 651 | m_AnchoredPosition: {x: -298.5, y: 14.299988} 652 | m_SizeDelta: {x: -607.7, y: -1388.8} 653 | m_Pivot: {x: 0.5, y: 0.5} 654 | --- !u!114 &1936488641 655 | MonoBehaviour: 656 | m_ObjectHideFlags: 0 657 | m_PrefabParentObject: {fileID: 0} 658 | m_PrefabInternal: {fileID: 0} 659 | m_GameObject: {fileID: 1936488639} 660 | m_Enabled: 1 661 | m_EditorHideFlags: 0 662 | m_Script: {fileID: 11500000, guid: b8c9e2a9dfc0ce24f89c652b29eaf618, type: 3} 663 | m_Name: 664 | m_EditorClassIdentifier: 665 | targetUIImage: {fileID: 0} 666 | targetSpriteRenderer: {fileID: 0} 667 | ignoredColors: 668 | - {r: 1, g: 1, b: 1, a: 0} 669 | ignoreThreshold: 0.05 670 | colorMultiplier: 1 671 | imagePostProcessingEffect: 5 672 | tintColor: {r: 0.33088237, g: 0.5569981, b: 1, a: 1} 673 | --- !u!114 &1936488642 674 | MonoBehaviour: 675 | m_ObjectHideFlags: 0 676 | m_PrefabParentObject: {fileID: 0} 677 | m_PrefabInternal: {fileID: 0} 678 | m_GameObject: {fileID: 1936488639} 679 | m_Enabled: 1 680 | m_EditorHideFlags: 0 681 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 682 | m_Name: 683 | m_EditorClassIdentifier: 684 | m_Material: {fileID: 0} 685 | m_Color: {r: 1, g: 1, b: 1, a: 1} 686 | m_RaycastTarget: 1 687 | m_OnCullStateChanged: 688 | m_PersistentCalls: 689 | m_Calls: [] 690 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 691 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 692 | m_Sprite: {fileID: 21300000, guid: 81640a73b05342747bc3876141ebce5c, type: 3} 693 | m_Type: 0 694 | m_PreserveAspect: 1 695 | m_FillCenter: 1 696 | m_FillMethod: 4 697 | m_FillAmount: 1 698 | m_FillClockwise: 1 699 | m_FillOrigin: 0 700 | --- !u!222 &1936488643 701 | CanvasRenderer: 702 | m_ObjectHideFlags: 0 703 | m_PrefabParentObject: {fileID: 0} 704 | m_PrefabInternal: {fileID: 0} 705 | m_GameObject: {fileID: 1936488639} 706 | --- !u!1 &1943999544 707 | GameObject: 708 | m_ObjectHideFlags: 0 709 | m_PrefabParentObject: {fileID: 0} 710 | m_PrefabInternal: {fileID: 0} 711 | serializedVersion: 5 712 | m_Component: 713 | - component: {fileID: 1943999548} 714 | - component: {fileID: 1943999547} 715 | - component: {fileID: 1943999546} 716 | - component: {fileID: 1943999545} 717 | m_Layer: 0 718 | m_Name: Main Camera 719 | m_TagString: MainCamera 720 | m_Icon: {fileID: 0} 721 | m_NavMeshLayer: 0 722 | m_StaticEditorFlags: 0 723 | m_IsActive: 1 724 | --- !u!81 &1943999545 725 | AudioListener: 726 | m_ObjectHideFlags: 0 727 | m_PrefabParentObject: {fileID: 0} 728 | m_PrefabInternal: {fileID: 0} 729 | m_GameObject: {fileID: 1943999544} 730 | m_Enabled: 1 731 | --- !u!124 &1943999546 732 | Behaviour: 733 | m_ObjectHideFlags: 0 734 | m_PrefabParentObject: {fileID: 0} 735 | m_PrefabInternal: {fileID: 0} 736 | m_GameObject: {fileID: 1943999544} 737 | m_Enabled: 1 738 | --- !u!20 &1943999547 739 | Camera: 740 | m_ObjectHideFlags: 0 741 | m_PrefabParentObject: {fileID: 0} 742 | m_PrefabInternal: {fileID: 0} 743 | m_GameObject: {fileID: 1943999544} 744 | m_Enabled: 1 745 | serializedVersion: 2 746 | m_ClearFlags: 1 747 | m_BackGroundColor: {r: 0, g: 0, b: 0, a: 0} 748 | m_NormalizedViewPortRect: 749 | serializedVersion: 2 750 | x: 0 751 | y: 0 752 | width: 1 753 | height: 1 754 | near clip plane: 0.3 755 | far clip plane: 1000 756 | field of view: 60 757 | orthographic: 1 758 | orthographic size: 5 759 | m_Depth: -1 760 | m_CullingMask: 761 | serializedVersion: 2 762 | m_Bits: 4294967295 763 | m_RenderingPath: -1 764 | m_TargetTexture: {fileID: 0} 765 | m_TargetDisplay: 0 766 | m_TargetEye: 3 767 | m_HDR: 1 768 | m_AllowMSAA: 1 769 | m_AllowDynamicResolution: 0 770 | m_ForceIntoRT: 0 771 | m_OcclusionCulling: 1 772 | m_StereoConvergence: 10 773 | m_StereoSeparation: 0.022 774 | --- !u!4 &1943999548 775 | Transform: 776 | m_ObjectHideFlags: 0 777 | m_PrefabParentObject: {fileID: 0} 778 | m_PrefabInternal: {fileID: 0} 779 | m_GameObject: {fileID: 1943999544} 780 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 781 | m_LocalPosition: {x: 0, y: 0, z: -10} 782 | m_LocalScale: {x: 1, y: 1, z: 1} 783 | m_Children: [] 784 | m_Father: {fileID: 0} 785 | m_RootOrder: 0 786 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 787 | --- !u!1 &1956158286 788 | GameObject: 789 | m_ObjectHideFlags: 0 790 | m_PrefabParentObject: {fileID: 0} 791 | m_PrefabInternal: {fileID: 0} 792 | serializedVersion: 5 793 | m_Component: 794 | - component: {fileID: 1956158290} 795 | - component: {fileID: 1956158289} 796 | - component: {fileID: 1956158288} 797 | - component: {fileID: 1956158287} 798 | m_Layer: 5 799 | m_Name: Canvas 800 | m_TagString: Untagged 801 | m_Icon: {fileID: 0} 802 | m_NavMeshLayer: 0 803 | m_StaticEditorFlags: 0 804 | m_IsActive: 1 805 | --- !u!114 &1956158287 806 | MonoBehaviour: 807 | m_ObjectHideFlags: 0 808 | m_PrefabParentObject: {fileID: 0} 809 | m_PrefabInternal: {fileID: 0} 810 | m_GameObject: {fileID: 1956158286} 811 | m_Enabled: 1 812 | m_EditorHideFlags: 0 813 | m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 814 | m_Name: 815 | m_EditorClassIdentifier: 816 | m_IgnoreReversedGraphics: 1 817 | m_BlockingObjects: 0 818 | m_BlockingMask: 819 | serializedVersion: 2 820 | m_Bits: 4294967295 821 | --- !u!114 &1956158288 822 | MonoBehaviour: 823 | m_ObjectHideFlags: 0 824 | m_PrefabParentObject: {fileID: 0} 825 | m_PrefabInternal: {fileID: 0} 826 | m_GameObject: {fileID: 1956158286} 827 | m_Enabled: 1 828 | m_EditorHideFlags: 0 829 | m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 830 | m_Name: 831 | m_EditorClassIdentifier: 832 | m_UiScaleMode: 0 833 | m_ReferencePixelsPerUnit: 100 834 | m_ScaleFactor: 1 835 | m_ReferenceResolution: {x: 800, y: 600} 836 | m_ScreenMatchMode: 0 837 | m_MatchWidthOrHeight: 0 838 | m_PhysicalUnit: 3 839 | m_FallbackScreenDPI: 96 840 | m_DefaultSpriteDPI: 96 841 | m_DynamicPixelsPerUnit: 1 842 | --- !u!223 &1956158289 843 | Canvas: 844 | m_ObjectHideFlags: 0 845 | m_PrefabParentObject: {fileID: 0} 846 | m_PrefabInternal: {fileID: 0} 847 | m_GameObject: {fileID: 1956158286} 848 | m_Enabled: 1 849 | serializedVersion: 3 850 | m_RenderMode: 0 851 | m_Camera: {fileID: 0} 852 | m_PlaneDistance: 100 853 | m_PixelPerfect: 0 854 | m_ReceivesEvents: 1 855 | m_OverrideSorting: 0 856 | m_OverridePixelPerfect: 0 857 | m_SortingBucketNormalizedSize: 0 858 | m_AdditionalShaderChannelsFlag: 0 859 | m_SortingLayerID: 0 860 | m_SortingOrder: 0 861 | m_TargetDisplay: 0 862 | --- !u!224 &1956158290 863 | RectTransform: 864 | m_ObjectHideFlags: 0 865 | m_PrefabParentObject: {fileID: 0} 866 | m_PrefabInternal: {fileID: 0} 867 | m_GameObject: {fileID: 1956158286} 868 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 869 | m_LocalPosition: {x: 0, y: 0, z: 0} 870 | m_LocalScale: {x: 0, y: 0, z: 0} 871 | m_Children: 872 | - {fileID: 716378462} 873 | - {fileID: 891442113} 874 | - {fileID: 1936488640} 875 | - {fileID: 1521533628} 876 | - {fileID: 822765536} 877 | - {fileID: 1000475378} 878 | m_Father: {fileID: 0} 879 | m_RootOrder: 1 880 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 881 | m_AnchorMin: {x: 0, y: 0} 882 | m_AnchorMax: {x: 0, y: 0} 883 | m_AnchoredPosition: {x: 0, y: 0} 884 | m_SizeDelta: {x: 0, y: 0} 885 | m_Pivot: {x: 0, y: 0} 886 | -------------------------------------------------------------------------------- /Unity/Assets/demo.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c25791a621699a45abaef752fa4fa43 3 | timeCreated: 1544626988 4 | licenseType: Pro 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /screenshots/screenshot1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rozx/Sprite-Postprocessing-Tool-Unity/86812b4f78e3dd26ee9f91725e4d7e17784a3b6a/screenshots/screenshot1.PNG -------------------------------------------------------------------------------- /screenshots/screenshot2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rozx/Sprite-Postprocessing-Tool-Unity/86812b4f78e3dd26ee9f91725e4d7e17784a3b6a/screenshots/screenshot2.PNG --------------------------------------------------------------------------------