├── LICENSE ├── README.md └── app ├── .gitignore ├── Assets ├── TMPRule.meta ├── TMPRule │ ├── @Demo.meta │ ├── @Demo │ │ ├── Demo.asset │ │ ├── Demo.asset.meta │ │ ├── Demo.unity │ │ ├── Demo.unity.meta │ │ ├── light-pop SDF Glow.mat │ │ ├── light-pop SDF Glow.mat.meta │ │ ├── light-pop SDF Outline.mat │ │ ├── light-pop SDF Outline.mat.meta │ │ ├── light-pop SDF Shadow.mat │ │ ├── light-pop SDF Shadow.mat.meta │ │ ├── light-pop SDF.asset │ │ ├── light-pop SDF.asset.meta │ │ ├── light-pop.otf │ │ └── light-pop.otf.meta │ ├── Editor.meta │ ├── Editor │ │ ├── TMPRuleEditorUtils.cs │ │ ├── TMPRuleEditorUtils.cs.meta │ │ ├── TMPRuleInspector.cs │ │ ├── TMPRuleInspector.cs.meta │ │ ├── TMPRuleParamDrawer.cs │ │ ├── TMPRuleParamDrawer.cs.meta │ │ ├── TMPRuleSettingsInspector.cs │ │ └── TMPRuleSettingsInspector.cs.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── TMPRule.cs │ │ ├── TMPRule.cs.meta │ │ ├── TMPRuleSettings.cs │ │ └── TMPRuleSettings.cs.meta ├── TextMesh Pro.meta └── TextMesh Pro │ ├── Documentation.meta │ ├── Documentation │ ├── TextMesh Pro User Guide 2016.pdf │ └── TextMesh Pro User Guide 2016.pdf.meta │ ├── Resources.meta │ ├── Resources │ ├── Fonts & Materials.meta │ ├── Fonts & Materials │ │ ├── LiberationSans SDF - Drop Shadow.mat │ │ ├── LiberationSans SDF - Drop Shadow.mat.meta │ │ ├── LiberationSans SDF - Outline.mat │ │ ├── LiberationSans SDF - Outline.mat.meta │ │ ├── LiberationSans SDF.asset │ │ └── LiberationSans SDF.asset.meta │ ├── LineBreaking Following Characters.txt │ ├── LineBreaking Following Characters.txt.meta │ ├── LineBreaking Leading Characters.txt │ ├── LineBreaking Leading Characters.txt.meta │ ├── Shaders.meta │ ├── Shaders │ │ ├── TMP_Bitmap-Custom-Atlas.shader │ │ ├── TMP_Bitmap-Custom-Atlas.shader.meta │ │ ├── TMP_Bitmap-Mobile.shader │ │ ├── TMP_Bitmap-Mobile.shader.meta │ │ ├── TMP_Bitmap.shader │ │ ├── TMP_Bitmap.shader.meta │ │ ├── TMP_SDF Overlay.shader │ │ ├── TMP_SDF Overlay.shader.meta │ │ ├── TMP_SDF-Mobile Masking.shader │ │ ├── TMP_SDF-Mobile Masking.shader.meta │ │ ├── TMP_SDF-Mobile Overlay.shader │ │ ├── TMP_SDF-Mobile Overlay.shader.meta │ │ ├── TMP_SDF-Mobile.shader │ │ ├── TMP_SDF-Mobile.shader.meta │ │ ├── TMP_SDF-Surface-Mobile.shader │ │ ├── TMP_SDF-Surface-Mobile.shader.meta │ │ ├── TMP_SDF-Surface.shader │ │ ├── TMP_SDF-Surface.shader.meta │ │ ├── TMP_SDF.shader │ │ ├── TMP_SDF.shader.meta │ │ ├── TMP_Sprite.shader │ │ ├── TMP_Sprite.shader.meta │ │ ├── TMPro.cginc │ │ ├── TMPro.cginc.meta │ │ ├── TMPro_Properties.cginc │ │ ├── TMPro_Properties.cginc.meta │ │ ├── TMPro_Surface.cginc │ │ └── TMPro_Surface.cginc.meta │ ├── Sprite Assets.meta │ ├── Sprite Assets │ │ ├── EmojiOne.asset │ │ └── EmojiOne.asset.meta │ ├── Style Sheets.meta │ ├── Style Sheets │ │ ├── Default Style Sheet.asset │ │ └── Default Style Sheet.asset.meta │ ├── TMP Settings.asset │ └── TMP Settings.asset.meta │ ├── Sprites.meta │ └── Sprites │ ├── EmojiOne Attribution.txt │ ├── EmojiOne Attribution.txt.meta │ ├── EmojiOne.json │ ├── EmojiOne.json.meta │ ├── EmojiOne.png │ └── EmojiOne.png.meta ├── Packages └── manifest.json └── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset └── VFXManager.asset /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 baba_s 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 | # TMP Rule 2 | 3 | TextMesh Pro の設定をルール化して管理できる機能 4 | 5 | [![](https://img.shields.io/github/release/baba-s/tmp-rule.svg?label=latest%20version)](https://github.com/baba-s/tmp-rule/releases) 6 | [![](https://img.shields.io/github/release-date/baba-s/tmp-rule.svg)](https://github.com/baba-s/tmp-rule/releases) 7 | ![](https://img.shields.io/badge/Unity-2018.3%2B-red.svg) 8 | ![](https://img.shields.io/badge/.NET-4.x-orange.svg) 9 | [![](https://img.shields.io/github/license/baba-s/tmp-rule.svg)](https://github.com/baba-s/tmp-rule/blob/master/LICENSE) 10 | 11 | ## バージョン 12 | 13 | - Unity 2018.3.11f1 14 | 15 | ## 使い方 16 | 17 | ![](https://cdn-ak.f.st-hatena.com/images/fotolife/b/baba_s/20190501/20190501133955.png) 18 | 19 | Project ビューの「Create > TMP Rule Settings」を選択します 20 | 21 | ![](https://cdn-ak.f.st-hatena.com/images/fotolife/b/baba_s/20190501/20190501133958.png) 22 | 23 | すると、TextMesh Pro の設定をルール化して管理できるアセットが作成されます 24 | 25 | ![](https://cdn-ak.f.st-hatena.com/images/fotolife/b/baba_s/20190501/20190501134002.png) 26 | 27 | このアセットを編集して、TextMesh Pro の設定をルール化して登録していきます 28 | 29 | ![](https://cdn-ak.f.st-hatena.com/images/fotolife/b/baba_s/20190501/20190501134005.png) 30 | 31 | あとは、シーンの TextMesh Pro のオブジェクトに「TMP Rule」コンポーネントをアタッチして 32 | どのルールを適用するのかプルダウンメニューから選択することで使用できます 33 | 34 | ## 謝辞 35 | 36 | - TMP Rule のデモでは下記のフォントを使用させていただいております 37 | http://www.fontna.com/blog/1706/ -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /[Ll]ibrary/ 2 | /[Tt]emp/ 3 | /[Oo]bj/ 4 | /[Bb]uild/ 5 | /[Bb]uilds/ 6 | /Assets/AssetStoreTools* 7 | 8 | # Visual Studio 2015 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 | 26 | # Unity3D generated meta files 27 | *.pidb.meta 28 | 29 | # Unity3D Generated File On Crash Reports 30 | sysinfo.txt 31 | 32 | # Builds 33 | *.apk 34 | 35 | /Assets/Plugins* 36 | /Assets/Plugins/Sirenix* -------------------------------------------------------------------------------- /app/Assets/TMPRule.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb7944743ce7e6b449abf13f47180de0 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b15c49a0bd9abf449e987469b65d8e7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/Demo.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: c39a94f593f34de4aa9d5eceef27b5d0, type: 3} 13 | m_Name: Demo 14 | m_EditorClassIdentifier: 15 | m_list: 16 | - m_isLock: 0 17 | m_name: LIGHY_POP 18 | m_comment: "\u30C7\u30D5\u30A9\u30EB\u30C8" 19 | m_fontAsset: {fileID: 11400000, guid: fbf7f5fec09c2064d8d304c85ee0c5fe, type: 2} 20 | m_material: {fileID: 21701472704645968, guid: fbf7f5fec09c2064d8d304c85ee0c5fe, 21 | type: 2} 22 | m_fontStyles: 0 23 | m_isApplyFontSize: 0 24 | m_fontSize: 0 25 | m_color: {r: 1, g: 1, b: 0, a: 1} 26 | - m_isLock: 0 27 | m_name: LIGHY_POP_OUTLINE 28 | m_comment: "\u30A2\u30A6\u30C8\u30E9\u30A4\u30F3" 29 | m_fontAsset: {fileID: 11400000, guid: fbf7f5fec09c2064d8d304c85ee0c5fe, type: 2} 30 | m_material: {fileID: 2100000, guid: 8caa3840081a176438b647a7b233e44c, type: 2} 31 | m_fontStyles: 1 32 | m_isApplyFontSize: 1 33 | m_fontSize: 36 34 | m_color: {r: 1, g: 0, b: 0, a: 1} 35 | - m_isLock: 0 36 | m_name: LIGHY_POP_SHADOW 37 | m_comment: "\u5F71" 38 | m_fontAsset: {fileID: 11400000, guid: fbf7f5fec09c2064d8d304c85ee0c5fe, type: 2} 39 | m_material: {fileID: 2100000, guid: 1425ed0adb34997458ad699750b9d29b, type: 2} 40 | m_fontStyles: 2 41 | m_isApplyFontSize: 1 42 | m_fontSize: 44 43 | m_color: {r: 0, g: 0.5019608, b: 1, a: 1} 44 | - m_isLock: 0 45 | m_name: LIGHY_POP_GLOW 46 | m_comment: "\u30B0\u30ED\u30FC" 47 | m_fontAsset: {fileID: 11400000, guid: fbf7f5fec09c2064d8d304c85ee0c5fe, type: 2} 48 | m_material: {fileID: 2100000, guid: 305781488384e8c4d8849a395f0303f8, type: 2} 49 | m_fontStyles: 4 50 | m_isApplyFontSize: 1 51 | m_fontSize: 44 52 | m_color: {r: 0, g: 0.5019608, b: 0, a: 1} 53 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/Demo.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28b83fc23566e0944a246bd0b54556cf 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/Demo.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b9a8007eb15fbf24aa0c574100b56a77 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/light-pop SDF Glow.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: light-pop SDF Glow 11 | m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} 12 | m_ShaderKeywords: GLOW_ON 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _Cube: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _FaceTex: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _MainTex: 35 | m_Texture: {fileID: 28826323634001410, guid: fbf7f5fec09c2064d8d304c85ee0c5fe, 36 | type: 2} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _OutlineTex: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | m_Floats: 44 | - _Ambient: 0.5 45 | - _Bevel: 0.5 46 | - _BevelClamp: 0 47 | - _BevelOffset: 0 48 | - _BevelRoundness: 0 49 | - _BevelWidth: 0 50 | - _BumpFace: 0 51 | - _BumpOutline: 0 52 | - _ColorMask: 15 53 | - _Diffuse: 0.5 54 | - _FaceDilate: 0 55 | - _FaceUVSpeedX: 0 56 | - _FaceUVSpeedY: 0 57 | - _GlowInner: 1 58 | - _GlowOffset: 1 59 | - _GlowOuter: 0 60 | - _GlowPower: 1 61 | - _GradientScale: 2 62 | - _LightAngle: 3.1416 63 | - _MaskSoftnessX: 0 64 | - _MaskSoftnessY: 0 65 | - _OutlineSoftness: 0 66 | - _OutlineUVSpeedX: 0 67 | - _OutlineUVSpeedY: 0 68 | - _OutlineWidth: 0 69 | - _PerspectiveFilter: 0.875 70 | - _Reflectivity: 10 71 | - _ScaleRatioA: 0.5 72 | - _ScaleRatioB: 0.40625 73 | - _ScaleRatioC: 0.203125 74 | - _ScaleX: 1 75 | - _ScaleY: 1 76 | - _ShaderFlags: 0 77 | - _SpecularPower: 2 78 | - _Stencil: 0 79 | - _StencilComp: 8 80 | - _StencilOp: 0 81 | - _StencilReadMask: 255 82 | - _StencilWriteMask: 255 83 | - _TextureHeight: 256 84 | - _TextureWidth: 256 85 | - _UnderlayDilate: 1 86 | - _UnderlayOffsetX: 1 87 | - _UnderlayOffsetY: -1 88 | - _UnderlaySoftness: 0 89 | - _VertexOffsetX: 0 90 | - _VertexOffsetY: 0 91 | - _WeightBold: 0.75 92 | - _WeightNormal: 0 93 | m_Colors: 94 | - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} 95 | - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} 96 | - _FaceColor: {r: 1, g: 1, b: 1, a: 1} 97 | - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} 98 | - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} 99 | - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} 100 | - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} 101 | - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} 102 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} 103 | - _UnderlayColor: {r: 0, g: 0, b: 0, a: 1} 104 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/light-pop SDF Glow.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 305781488384e8c4d8849a395f0303f8 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/light-pop SDF Outline.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: light-pop SDF Outline 11 | m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _Cube: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _FaceTex: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _MainTex: 35 | m_Texture: {fileID: 28826323634001410, guid: fbf7f5fec09c2064d8d304c85ee0c5fe, 36 | type: 2} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _OutlineTex: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | m_Floats: 44 | - _Ambient: 0.5 45 | - _Bevel: 0.5 46 | - _BevelClamp: 0 47 | - _BevelOffset: 0 48 | - _BevelRoundness: 0 49 | - _BevelWidth: 0 50 | - _BumpFace: 0 51 | - _BumpOutline: 0 52 | - _ColorMask: 15 53 | - _Diffuse: 0.5 54 | - _FaceDilate: 0 55 | - _FaceUVSpeedX: 0 56 | - _FaceUVSpeedY: 0 57 | - _GlowInner: 0.05 58 | - _GlowOffset: 0 59 | - _GlowOuter: 0.05 60 | - _GlowPower: 0.75 61 | - _GradientScale: 2 62 | - _LightAngle: 3.1416 63 | - _MaskSoftnessX: 0 64 | - _MaskSoftnessY: 0 65 | - _OutlineSoftness: 0 66 | - _OutlineUVSpeedX: 0 67 | - _OutlineUVSpeedY: 0 68 | - _OutlineWidth: 1 69 | - _PerspectiveFilter: 0.875 70 | - _Reflectivity: 10 71 | - _ScaleRatioA: 0.42105263 72 | - _ScaleRatioB: 0.40625 73 | - _ScaleRatioC: 0.40625 74 | - _ScaleX: 1 75 | - _ScaleY: 1 76 | - _ShaderFlags: 0 77 | - _SpecularPower: 2 78 | - _Stencil: 0 79 | - _StencilComp: 8 80 | - _StencilOp: 0 81 | - _StencilReadMask: 255 82 | - _StencilWriteMask: 255 83 | - _TextureHeight: 256 84 | - _TextureWidth: 256 85 | - _UnderlayDilate: 0 86 | - _UnderlayOffsetX: 1 87 | - _UnderlayOffsetY: 1 88 | - _UnderlaySoftness: 0 89 | - _VertexOffsetX: 0 90 | - _VertexOffsetY: 0 91 | - _WeightBold: 0.75 92 | - _WeightNormal: 0 93 | m_Colors: 94 | - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} 95 | - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} 96 | - _FaceColor: {r: 1, g: 1, b: 1, a: 1} 97 | - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} 98 | - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} 99 | - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} 100 | - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} 101 | - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} 102 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} 103 | - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} 104 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/light-pop SDF Outline.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8caa3840081a176438b647a7b233e44c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/light-pop SDF Shadow.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: light-pop SDF Shadow 11 | m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} 12 | m_ShaderKeywords: UNDERLAY_ON 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _Cube: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _FaceTex: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _MainTex: 35 | m_Texture: {fileID: 28826323634001410, guid: fbf7f5fec09c2064d8d304c85ee0c5fe, 36 | type: 2} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _OutlineTex: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | m_Floats: 44 | - _Ambient: 0.5 45 | - _Bevel: 0.5 46 | - _BevelClamp: 0 47 | - _BevelOffset: 0 48 | - _BevelRoundness: 0 49 | - _BevelWidth: 0 50 | - _BumpFace: 0 51 | - _BumpOutline: 0 52 | - _ColorMask: 15 53 | - _Diffuse: 0.5 54 | - _FaceDilate: 0 55 | - _FaceUVSpeedX: 0 56 | - _FaceUVSpeedY: 0 57 | - _GlowInner: 0.05 58 | - _GlowOffset: 0 59 | - _GlowOuter: 0.05 60 | - _GlowPower: 0.75 61 | - _GradientScale: 2 62 | - _LightAngle: 3.1416 63 | - _MaskSoftnessX: 0 64 | - _MaskSoftnessY: 0 65 | - _OutlineSoftness: 0 66 | - _OutlineUVSpeedX: 0 67 | - _OutlineUVSpeedY: 0 68 | - _OutlineWidth: 0 69 | - _PerspectiveFilter: 0.875 70 | - _Reflectivity: 10 71 | - _ScaleRatioA: 0.5 72 | - _ScaleRatioB: 0.40625 73 | - _ScaleRatioC: 0.203125 74 | - _ScaleX: 1 75 | - _ScaleY: 1 76 | - _ShaderFlags: 0 77 | - _SpecularPower: 2 78 | - _Stencil: 0 79 | - _StencilComp: 8 80 | - _StencilOp: 0 81 | - _StencilReadMask: 255 82 | - _StencilWriteMask: 255 83 | - _TextureHeight: 256 84 | - _TextureWidth: 256 85 | - _UnderlayDilate: 1 86 | - _UnderlayOffsetX: 1 87 | - _UnderlayOffsetY: -1 88 | - _UnderlaySoftness: 0 89 | - _VertexOffsetX: 0 90 | - _VertexOffsetY: 0 91 | - _WeightBold: 0.75 92 | - _WeightNormal: 0 93 | m_Colors: 94 | - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} 95 | - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} 96 | - _FaceColor: {r: 1, g: 1, b: 1, a: 1} 97 | - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} 98 | - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} 99 | - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} 100 | - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} 101 | - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} 102 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} 103 | - _UnderlayColor: {r: 0, g: 0, b: 0, a: 1} 104 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/light-pop SDF Shadow.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1425ed0adb34997458ad699750b9d29b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/light-pop SDF.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fbf7f5fec09c2064d8d304c85ee0c5fe 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/light-pop.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baba-s/tmp-rule/496f96c5844d3fb70b85d6a8a975fb67afad11d1/app/Assets/TMPRule/@Demo/light-pop.otf -------------------------------------------------------------------------------- /app/Assets/TMPRule/@Demo/light-pop.otf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18b1a9ddf83151747a70e3cb3efb013e 3 | TrueTypeFontImporter: 4 | externalObjects: {} 5 | serializedVersion: 4 6 | fontSize: 16 7 | forceTextureCase: -2 8 | characterSpacing: 0 9 | characterPadding: 1 10 | includeFontData: 1 11 | fontName: 07LightNovelPOP 12 | fontNames: 13 | - 07LightNovelPOP 14 | fallbackFontReferences: [] 15 | customCharacters: 16 | fontRenderingMode: 0 17 | ascentCalculationMode: 1 18 | useLegacyBoundsCalculation: 0 19 | shouldRoundAdvanceValue: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb185272a0610ed4f84fefa9e873e364 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/Editor/TMPRuleEditorUtils.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using TMPro; 4 | using UnityEditor; 5 | using UnityEngine; 6 | 7 | namespace KoganeUnityLib 8 | { 9 | /// 10 | /// TMPRule のエディタに関する汎用機能を管理するクラス 11 | /// 12 | public static class TMPRuleEditorUtils 13 | { 14 | //============================================================================== 15 | // 関数 16 | //============================================================================== 17 | /// 18 | /// Unity プロジェクトに存在する TMPRuleSettings を返します 19 | /// 20 | public static TMPRuleSettings GetSettings() => 21 | AssetDatabase 22 | .FindAssets( "t:TMPRuleSettings" ) 23 | .Select( c => AssetDatabase.GUIDToAssetPath( c ) ) 24 | .Select( c => AssetDatabase.LoadAssetAtPath( c ) ) 25 | .FirstOrDefault(); 26 | 27 | /// 28 | /// プレハブのインスタンスの場合 true を返します 29 | /// 30 | private static bool IsPrefabInstance( GameObject go ) => 31 | PrefabUtility.GetCorrespondingObjectFromSource( go ) != null && 32 | PrefabUtility.GetPrefabInstanceHandle( go ) != null; 33 | 34 | /// 35 | /// 現在のシーンのすべての TMPRule の設定を反映します 36 | /// 37 | public static void ApplyAllInScene() 38 | { 39 | var list = Resources 40 | .FindObjectsOfTypeAll() 41 | .Where( c => c.scene.isLoaded ) 42 | .Where( c => c.hideFlags == HideFlags.None ) 43 | .Where( c => !IsPrefabInstance( c ) ) 44 | .Select( c => c.GetComponent() ) 45 | .Where( c => c != null ) 46 | ; 47 | 48 | var settings = GetSettings(); 49 | 50 | foreach ( var n in list ) 51 | { 52 | Apply( settings, n ); 53 | } 54 | } 55 | 56 | /// 57 | /// 指定された TMPRule を持つオブジェクトに設定を反映します 58 | /// 59 | public static void Apply( TMPRuleSettings settings, TMPRule rule ) 60 | { 61 | var ruleName = rule.RuleName; 62 | 63 | if ( ruleName == TMPRule.INVALID_RULE_NAME ) return; 64 | 65 | var setting = Array.Find( settings.List, c => c.Name == ruleName ); 66 | 67 | if ( setting == null ) 68 | { 69 | Debug.Log( $"[TMPRule]「{ruleName}」に紐づく TMPRuleParam が見つかりませんでした" ); 70 | return; 71 | } 72 | 73 | var textMeshPro = rule.GetComponent(); 74 | 75 | textMeshPro.font = setting.FontAsset; 76 | textMeshPro.fontMaterial = setting.Material; 77 | textMeshPro.fontStyle = setting.FontStyles; 78 | textMeshPro.color = setting.Color; 79 | 80 | if ( setting.IsApplyFontSize ) 81 | { 82 | textMeshPro.fontSize = setting.FontSize; 83 | } 84 | 85 | Undo.RecordObject( textMeshPro, "Apply TMP Rule" ); 86 | EditorUtility.SetDirty( textMeshPro ); 87 | } 88 | } 89 | } -------------------------------------------------------------------------------- /app/Assets/TMPRule/Editor/TMPRuleEditorUtils.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dce823c6131dd15469cb91955a7316f0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/Editor/TMPRuleInspector.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using UnityEditor; 4 | 5 | namespace KoganeUnityLib 6 | { 7 | /// 8 | /// TMPRule の Inspector の表示を変更するエディタ拡張 9 | /// 10 | [CanEditMultipleObjects] 11 | [CustomEditor( typeof( TMPRule ) )] 12 | public sealed class TMPRuleInspector : Editor 13 | { 14 | //============================================================================== 15 | // 変数 16 | //============================================================================== 17 | private TMPRuleSettings m_settings; 18 | 19 | //============================================================================== 20 | // 関数 21 | //============================================================================== 22 | /// 23 | /// 有効になった時に呼び出されます 24 | /// 25 | private void OnEnable() 26 | { 27 | m_settings = TMPRuleEditorUtils.GetSettings(); 28 | 29 | // 複数選択されている場合に、選択されている 30 | // すべてのオブジェクトのパラメータを更新するために targets を参照 31 | foreach ( var n in targets.OfType() ) 32 | { 33 | TMPRuleEditorUtils.Apply( m_settings, n ); 34 | } 35 | } 36 | 37 | /// 38 | /// GUI を表示する時に呼び出されます 39 | /// 40 | public override void OnInspectorGUI() 41 | { 42 | if ( m_settings == null ) return; 43 | 44 | var rule = target as TMPRule; 45 | 46 | if ( rule == null ) return; 47 | 48 | var list = m_settings.List; 49 | var index = Array.FindIndex( list, c => c.Name == rule.RuleName ) + 1; 50 | 51 | // プルダウンメニューの先頭に「無効」を追加 52 | var invalidOption = new[] { TMPRule.INVALID_RULE_NAME }; 53 | var options = invalidOption.Concat( list.Select( c => c.Comment ) ).ToArray(); 54 | 55 | EditorGUI.BeginChangeCheck(); 56 | 57 | index = EditorGUILayout.Popup( "ルール名", index, options ); 58 | 59 | if ( !EditorGUI.EndChangeCheck() ) return; 60 | 61 | // 複数選択されている場合に、選択されている 62 | // すべてのオブジェクトのパラメータを更新するために targets を参照 63 | var ruleName = index == -1 64 | ? TMPRule.INVALID_RULE_NAME 65 | : list[ index - 1 ].Name 66 | ; 67 | 68 | foreach ( var n in targets.OfType() ) 69 | { 70 | n.RuleName = ruleName; 71 | TMPRuleEditorUtils.Apply( m_settings, n ); 72 | } 73 | } 74 | } 75 | } -------------------------------------------------------------------------------- /app/Assets/TMPRule/Editor/TMPRuleInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ad60a1381688ec4684565315d665843 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/Editor/TMPRuleParamDrawer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using TMPro; 4 | using UnityEditor; 5 | using UnityEngine; 6 | 7 | namespace KoganeUnityLib 8 | { 9 | /// 10 | /// TMPRuleParam の Inspector の表示を変更するエディタ拡張 11 | /// 12 | [CustomPropertyDrawer( typeof( TMPRuleParam ) )] 13 | public sealed class TMPRuleParamDrawer : PropertyDrawer 14 | { 15 | //============================================================================== 16 | // プロパティ 17 | //============================================================================== 18 | public static TMP_FontAsset[] FontAssetList { get; set; } 19 | public static Material[] MaterialList { get; set; } 20 | 21 | //============================================================================== 22 | // 関数 23 | //============================================================================== 24 | /// 25 | /// GUI を表示する時に呼び出されます 26 | /// 27 | public override void OnGUI( Rect position, SerializedProperty property, GUIContent label ) 28 | { 29 | using ( new EditorGUI.PropertyScope( position, label, property ) ) 30 | { 31 | position.height = EditorGUIUtility.singleLineHeight; 32 | 33 | var isLockRect = new Rect( position ); 34 | var nameRect = new Rect( position ) { y = isLockRect.yMax + 2, }; 35 | var commentRect = new Rect( position ) { y = nameRect.yMax + 2, }; 36 | var fontAssetRect = new Rect( position ) { y = commentRect.yMax + 2, }; 37 | var materialRect = new Rect( position ) { y = fontAssetRect.yMax + 2, }; 38 | var fontStylesRect = new Rect( position ) { y = materialRect.yMax + 2, }; 39 | var isApplyFontSizeRect = new Rect( position ) { y = fontStylesRect.yMax + 2, }; 40 | var fontSizeRect = new Rect( position ) { y = isApplyFontSizeRect.yMax + 2, }; 41 | var colorRect = new Rect( position ) { y = fontSizeRect.yMax + 2, }; 42 | 43 | var isLockProperty = property.FindPropertyRelative( "m_isLock" ); 44 | var nameProperty = property.FindPropertyRelative( "m_name" ); 45 | var commentProperty = property.FindPropertyRelative( "m_comment" ); 46 | var fontAssetProperty = property.FindPropertyRelative( "m_fontAsset" ); 47 | var materialProperty = property.FindPropertyRelative( "m_material" ); 48 | var fontStylesProperty = property.FindPropertyRelative( "m_fontStyles" ); 49 | var isApplyFontSizeProperty = property.FindPropertyRelative( "m_isApplyFontSize" ); 50 | var fontSizeProperty = property.FindPropertyRelative( "m_fontSize" ); 51 | var colorProperty = property.FindPropertyRelative( "m_color" ); 52 | 53 | PropertyField( "編集不可", isLockRect, isLockProperty ); 54 | 55 | var enabled = GUI.enabled; 56 | GUI.enabled = !isLockProperty.boolValue; 57 | 58 | PropertyField( "ルール名", nameRect, nameProperty ); 59 | PropertyField( "コメント", commentRect, commentProperty ); 60 | 61 | DrawFontAsset( fontAssetRect, fontAssetProperty ); 62 | DrawMaterial( materialRect, materialProperty, fontAssetProperty ); 63 | 64 | PropertyField( "フォントスタイル", fontStylesRect, fontStylesProperty ); 65 | PropertyField( "フォントサイズ適用", isApplyFontSizeRect, isApplyFontSizeProperty ); 66 | PropertyField( "フォントサイズ", fontSizeRect, fontSizeProperty ); 67 | PropertyField( "文字の色", colorRect, colorProperty ); 68 | 69 | GUI.enabled = enabled; 70 | } 71 | } 72 | 73 | /// 74 | /// PropertyField を実行します 75 | /// 76 | private void PropertyField( string label, Rect position, SerializedProperty property ) 77 | { 78 | EditorGUI.PropertyField( position, property, new GUIContent( label ) ); 79 | } 80 | 81 | /// 82 | /// FontAsset のプルダウンメニューを表示します 83 | /// 84 | private static void DrawFontAsset( Rect rect, SerializedProperty property ) 85 | { 86 | var fontAssetList = FontAssetList; 87 | var fontAsset = property.objectReferenceValue as TMP_FontAsset; 88 | var index = Mathf.Max( 0, Array.IndexOf( fontAssetList, fontAsset ) ); 89 | var options = fontAssetList.Select( c => c.name ).ToArray(); 90 | 91 | index = EditorGUI.Popup( rect, "Font Asset", index, options ); 92 | property.objectReferenceValue = fontAssetList.ElementAtOrDefault( index ); 93 | } 94 | 95 | /// 96 | /// FontAsset のマテリアルのプルダウンメニューを表示します 97 | /// 98 | private static void DrawMaterial 99 | ( 100 | Rect rect, 101 | SerializedProperty property, 102 | SerializedProperty fontAssetProperty 103 | ) 104 | { 105 | var fontAsset = fontAssetProperty.objectReferenceValue as TMP_FontAsset; 106 | var materialList = FindAllMaterial( fontAsset ); 107 | var material = property.objectReferenceValue as Material; 108 | var index = Mathf.Max( 0, Array.IndexOf( materialList, material ) ); 109 | var options = materialList.Select( c => c.name ).ToArray(); 110 | 111 | index = EditorGUI.Popup( rect, "マテリアル", index, options ); 112 | property.objectReferenceValue = materialList.ElementAtOrDefault( index ); 113 | } 114 | 115 | /// 116 | /// Unity プロジェクトに存在するすべての FontAsset のマテリアルを検索します 117 | /// 118 | private static Material[] FindAllMaterial( TMP_FontAsset fontAsset ) 119 | { 120 | if ( fontAsset == null ) return new Material[0]; 121 | 122 | var materials = MaterialList.Where( c => c.name.StartsWith( fontAsset.name ) ); 123 | 124 | return new[] { fontAsset.material } 125 | .Concat( materials ) 126 | .ToArray(); 127 | } 128 | } 129 | } -------------------------------------------------------------------------------- /app/Assets/TMPRule/Editor/TMPRuleParamDrawer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 76ed2ac1307bde14d9196d9f348b66cc 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/Editor/TMPRuleSettingsInspector.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using TMPro; 3 | using UnityEditor; 4 | using UnityEditorInternal; 5 | using UnityEngine; 6 | 7 | namespace KoganeUnityLib 8 | { 9 | /// 10 | /// TMPRuleSettings の Inspector の表示を変更するエディタ拡張 11 | /// 12 | [CustomEditor( typeof( TMPRuleSettings ) )] 13 | public sealed class TMPRuleSettingsInspector : Editor 14 | { 15 | //============================================================================== 16 | // 変数 17 | //============================================================================== 18 | private SerializedProperty m_property; 19 | private ReorderableList m_reorderableList; 20 | 21 | //============================================================================== 22 | // 関数 23 | //============================================================================== 24 | /// 25 | /// 有効になった時に呼び出されます 26 | /// 27 | private void OnEnable() 28 | { 29 | TMPRuleParamDrawer.FontAssetList = FindAllFontAsset(); 30 | TMPRuleParamDrawer.MaterialList = FindAllMaterial(); 31 | 32 | m_property = serializedObject.FindProperty( "m_list" ); 33 | 34 | m_reorderableList = new ReorderableList( serializedObject, m_property ) 35 | { 36 | elementHeight = 168, 37 | drawElementCallback = OnDrawElement 38 | }; 39 | } 40 | 41 | /// 42 | /// 無効になった時に呼び出されます 43 | /// 44 | private void OnDisable() 45 | { 46 | TMPRuleParamDrawer.FontAssetList = null; 47 | TMPRuleParamDrawer.MaterialList = null; 48 | 49 | m_property = null; 50 | m_reorderableList = null; 51 | } 52 | 53 | /// 54 | /// リストの要素を描画する時に呼び出されます 55 | /// 56 | private void OnDrawElement( Rect rect, int index, bool isActive, bool isFocused ) 57 | { 58 | var element = m_property.GetArrayElementAtIndex( index ); 59 | rect.height -= 4; 60 | rect.y += 2; 61 | EditorGUI.PropertyField( rect, element ); 62 | } 63 | 64 | /// 65 | /// GUI を表示する時に呼び出されます 66 | /// 67 | public override void OnInspectorGUI() 68 | { 69 | if ( GUILayout.Button( "現在のシーンのすべてのオブジェクトに反映" ) ) 70 | { 71 | TMPRuleEditorUtils.ApplyAllInScene(); 72 | } 73 | 74 | serializedObject.Update(); 75 | m_reorderableList.DoLayoutList(); 76 | serializedObject.ApplyModifiedProperties(); 77 | } 78 | 79 | /// 80 | /// Unity プロジェクトに存在するすべての FontAsset を検索します 81 | /// 82 | private static TMP_FontAsset[] FindAllFontAsset() => 83 | AssetDatabase 84 | .FindAssets( "t:TMP_FontAsset" ) 85 | .Select( c => AssetDatabase.GUIDToAssetPath( c ) ) 86 | .Select( c => AssetDatabase.LoadAssetAtPath( c ) ) 87 | .ToArray(); 88 | 89 | /// 90 | /// Unity プロジェクトに存在するすべてのマテリアルを検索します 91 | /// 92 | private static Material[] FindAllMaterial() => 93 | AssetDatabase 94 | .FindAssets( "t:material" ) 95 | .Select( c => AssetDatabase.GUIDToAssetPath( c ) ) 96 | .Select( c => AssetDatabase.LoadAssetAtPath( c ) ) 97 | .Where( c => c != null ) 98 | .ToArray(); 99 | } 100 | } -------------------------------------------------------------------------------- /app/Assets/TMPRule/Editor/TMPRuleSettingsInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ec6196c5581e2e428c295e1d052d300 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed8d47d5c13b91741867b27526532d63 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/Scripts/TMPRule.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace KoganeUnityLib 4 | { 5 | /// 6 | /// TextMesh Pro の設定をルールに沿って変更するコンポーネント 7 | /// 8 | public sealed class TMPRule : MonoBehaviour 9 | { 10 | //============================================================================== 11 | // 定数 12 | //============================================================================== 13 | public const string INVALID_RULE_NAME = "無効"; 14 | 15 | //============================================================================== 16 | // プロパティ(SerializeField) 17 | //============================================================================== 18 | [field: SerializeField] public string RuleName { get; set; } = INVALID_RULE_NAME; 19 | } 20 | } -------------------------------------------------------------------------------- /app/Assets/TMPRule/Scripts/TMPRule.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 444986da96f43e24a911e9e635515ef3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /app/Assets/TMPRule/Scripts/TMPRuleSettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using TMPro; 3 | using UnityEngine; 4 | 5 | namespace KoganeUnityLib 6 | { 7 | /// 8 | /// TextMesh Pro の設定のルールをすべて管理するアセット 9 | /// 10 | [CreateAssetMenu( order = 9999 )] 11 | public sealed class TMPRuleSettings : ScriptableObject 12 | { 13 | //============================================================================== 14 | // 変数(SerializeField) 15 | //============================================================================== 16 | [SerializeField] private TMPRuleParam[] m_list = null; 17 | 18 | //============================================================================== 19 | // プロパティ 20 | //============================================================================== 21 | public TMPRuleParam[] List => m_list; 22 | } 23 | 24 | /// 25 | /// TextMesh Pro の設定の個別のルールを管理するクラス 26 | /// 27 | [Serializable] 28 | public sealed class TMPRuleParam 29 | { 30 | //============================================================================== 31 | // 変数(SerializeField) 32 | //============================================================================== 33 | [SerializeField] private bool m_isLock = false; 34 | [SerializeField] private string m_name = null; 35 | [SerializeField] private string m_comment = null; 36 | [SerializeField] private TMP_FontAsset m_fontAsset = null; 37 | [SerializeField] private Material m_material = null; 38 | [SerializeField] private FontStyles m_fontStyles = 0; 39 | [SerializeField] private bool m_isApplyFontSize = false; 40 | [SerializeField] private int m_fontSize = 0; 41 | [SerializeField] private Color m_color = Color.white; 42 | 43 | //============================================================================== 44 | // プロパティ 45 | //============================================================================== 46 | public string Name => m_name; 47 | public string Comment => string.IsNullOrWhiteSpace( m_comment ) ? m_name : m_comment; 48 | public TMP_FontAsset FontAsset => m_fontAsset; 49 | public Material Material => m_material; 50 | public FontStyles FontStyles => m_fontStyles; 51 | public bool IsApplyFontSize => m_isApplyFontSize; 52 | public int FontSize => m_fontSize; 53 | public Color Color => m_color; 54 | } 55 | } -------------------------------------------------------------------------------- /app/Assets/TMPRule/Scripts/TMPRuleSettings.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c39a94f593f34de4aa9d5eceef27b5d0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f54d1bd14bd3ca042bd867b519fee8cc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Documentation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e7e8f5a82a3a134e91c54efd2274ea9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baba-s/tmp-rule/496f96c5844d3fb70b85d6a8a975fb67afad11d1/app/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b8d251f9af63b746bf2f7ffe00ebb9b 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 243e06394e614e5d99fab26083b707fa 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Fonts & Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 731f1baa9d144a9897cb1d341c2092b8 3 | folderAsset: yes 4 | timeCreated: 1442040525 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: LiberationSans SDF - Drop Shadow 10 | m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3} 11 | m_ShaderKeywords: OUTLINE_ON UNDERLAY_ON 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _Cube: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _FaceTex: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _MainTex: 34 | m_Texture: {fileID: 2846298, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _OutlineTex: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | m_Floats: 42 | - _Ambient: 0.5 43 | - _Bevel: 0.5 44 | - _BevelClamp: 0 45 | - _BevelOffset: 0 46 | - _BevelRoundness: 0 47 | - _BevelWidth: 0 48 | - _BumpFace: 0 49 | - _BumpOutline: 0 50 | - _ColorMask: 15 51 | - _Diffuse: 0.5 52 | - _DiffusePower: 1 53 | - _FaceDilate: 0.1 54 | - _FaceUVSpeedX: 0 55 | - _FaceUVSpeedY: 0 56 | - _GlowInner: 0.05 57 | - _GlowOffset: 0 58 | - _GlowOuter: 0.05 59 | - _GlowPower: 0.75 60 | - _GradientScale: 10 61 | - _LightAngle: 3.1416 62 | - _MaskSoftnessX: 0 63 | - _MaskSoftnessY: 0 64 | - _OutlineSoftness: 0 65 | - _OutlineUVSpeedX: 0 66 | - _OutlineUVSpeedY: 0 67 | - _OutlineWidth: 0.1 68 | - _PerspectiveFilter: 0.875 69 | - _Reflectivity: 10 70 | - _ScaleRatioA: 0.9 71 | - _ScaleRatioB: 0.73125 72 | - _ScaleRatioC: 0.64125 73 | - _ScaleX: 1 74 | - _ScaleY: 1 75 | - _ShaderFlags: 0 76 | - _SpecularPower: 2 77 | - _Stencil: 0 78 | - _StencilComp: 8 79 | - _StencilOp: 0 80 | - _StencilReadMask: 255 81 | - _StencilWriteMask: 255 82 | - _TextureHeight: 1024 83 | - _TextureWidth: 1024 84 | - _UnderlayDilate: 0 85 | - _UnderlayOffsetX: 0.5 86 | - _UnderlayOffsetY: -0.5 87 | - _UnderlaySoftness: 0.05 88 | - _VertexOffsetX: 0 89 | - _VertexOffsetY: 0 90 | - _WeightBold: 0.75 91 | - _WeightNormal: 0 92 | m_Colors: 93 | - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} 94 | - _Color: {r: 1, g: 1, b: 1, a: 1} 95 | - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} 96 | - _FaceColor: {r: 1, g: 1, b: 1, a: 1} 97 | - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} 98 | - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} 99 | - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} 100 | - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} 101 | - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} 102 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} 103 | - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} 104 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e73a58f6e2794ae7b1b7e50b7fb811b0 3 | timeCreated: 1484172806 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: LiberationSans SDF - Outline 10 | m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3} 11 | m_ShaderKeywords: OUTLINE_ON 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: 3000 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _Cube: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _FaceTex: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _MainTex: 34 | m_Texture: {fileID: 2846298, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _OutlineTex: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | m_Floats: 42 | - _Ambient: 0.5 43 | - _Bevel: 0.5 44 | - _BevelClamp: 0 45 | - _BevelOffset: 0 46 | - _BevelRoundness: 0 47 | - _BevelWidth: 0 48 | - _BumpFace: 0 49 | - _BumpOutline: 0 50 | - _ColorMask: 15 51 | - _Diffuse: 0.5 52 | - _FaceDilate: 0.1 53 | - _FaceUVSpeedX: 0 54 | - _FaceUVSpeedY: 0 55 | - _GlowInner: 0.05 56 | - _GlowOffset: 0 57 | - _GlowOuter: 0.05 58 | - _GlowPower: 0.75 59 | - _GradientScale: 10 60 | - _LightAngle: 3.1416 61 | - _MaskSoftnessX: 0 62 | - _MaskSoftnessY: 0 63 | - _OutlineSoftness: 0 64 | - _OutlineUVSpeedX: 0 65 | - _OutlineUVSpeedY: 0 66 | - _OutlineWidth: 0.1 67 | - _PerspectiveFilter: 0.875 68 | - _Reflectivity: 10 69 | - _ScaleRatioA: 0.9 70 | - _ScaleRatioB: 0.73125 71 | - _ScaleRatioC: 0.64125 72 | - _ScaleX: 1 73 | - _ScaleY: 1 74 | - _ShaderFlags: 0 75 | - _SpecularPower: 2 76 | - _Stencil: 0 77 | - _StencilComp: 8 78 | - _StencilOp: 0 79 | - _StencilReadMask: 255 80 | - _StencilWriteMask: 255 81 | - _TextureHeight: 1024 82 | - _TextureWidth: 1024 83 | - _UnderlayDilate: 0 84 | - _UnderlayOffsetX: 0 85 | - _UnderlayOffsetY: 0 86 | - _UnderlaySoftness: 0 87 | - _VertexOffsetX: 0 88 | - _VertexOffsetY: 0 89 | - _WeightBold: 0.75 90 | - _WeightNormal: 0 91 | m_Colors: 92 | - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} 93 | - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} 94 | - _FaceColor: {r: 1, g: 1, b: 1, a: 1} 95 | - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} 96 | - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} 97 | - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} 98 | - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} 99 | - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} 100 | - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} 101 | - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} 102 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79459efec17a4d00a321bdcc27bbc385 3 | timeCreated: 1484172856 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f586378b4e144a9851e7b34d9b748ee 3 | timeCreated: 1484171803 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt: -------------------------------------------------------------------------------- 1 | )]}〕〉》」』】〙〗〟’”⦆»ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻‐゠–〜?!‼⁇⁈⁉・、%,.:;。!?]):;=}¢°"†‡℃〆%,. -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fade42e8bc714b018fac513c043d323b 3 | timeCreated: 1425440388 4 | licenseType: Store 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt: -------------------------------------------------------------------------------- 1 | ([{〔〈《「『【〘〖〝‘“⦅«$—…‥〳〴〵\[({£¥"々〇〉》」$⦆¥₩ # -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d82c1b31c7e74239bff1220585707d2b 3 | timeCreated: 1425440388 4 | licenseType: Store 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99f836c9cb9345dba2e72c4a1f2d0695 3 | folderAsset: yes 4 | timeCreated: 1436068007 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Custom-Atlas.shader: -------------------------------------------------------------------------------- 1 | Shader "TextMeshPro/Bitmap Custom Atlas" { 2 | 3 | Properties { 4 | _MainTex ("Font Atlas", 2D) = "white" {} 5 | _FaceTex ("Font Texture", 2D) = "white" {} 6 | _FaceColor ("Text Color", Color) = (1,1,1,1) 7 | 8 | _VertexOffsetX ("Vertex OffsetX", float) = 0 9 | _VertexOffsetY ("Vertex OffsetY", float) = 0 10 | _MaskSoftnessX ("Mask SoftnessX", float) = 0 11 | _MaskSoftnessY ("Mask SoftnessY", float) = 0 12 | 13 | _ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767) 14 | _Padding ("Padding", float) = 0 15 | 16 | _StencilComp("Stencil Comparison", Float) = 8 17 | _Stencil("Stencil ID", Float) = 0 18 | _StencilOp("Stencil Operation", Float) = 0 19 | _StencilWriteMask("Stencil Write Mask", Float) = 255 20 | _StencilReadMask("Stencil Read Mask", Float) = 255 21 | 22 | _ColorMask("Color Mask", Float) = 15 23 | } 24 | 25 | SubShader{ 26 | 27 | Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" } 28 | 29 | Stencil 30 | { 31 | Ref[_Stencil] 32 | Comp[_StencilComp] 33 | Pass[_StencilOp] 34 | ReadMask[_StencilReadMask] 35 | WriteMask[_StencilWriteMask] 36 | } 37 | 38 | 39 | Lighting Off 40 | Cull [_CullMode] 41 | ZTest [unity_GUIZTestMode] 42 | ZWrite Off 43 | Fog { Mode Off } 44 | Blend SrcAlpha OneMinusSrcAlpha 45 | ColorMask[_ColorMask] 46 | 47 | Pass { 48 | CGPROGRAM 49 | #pragma vertex vert 50 | #pragma fragment frag 51 | 52 | #pragma multi_compile __ UNITY_UI_CLIP_RECT 53 | #pragma multi_compile __ UNITY_UI_ALPHACLIP 54 | 55 | 56 | #include "UnityCG.cginc" 57 | 58 | struct appdata_t { 59 | float4 vertex : POSITION; 60 | fixed4 color : COLOR; 61 | float2 texcoord0 : TEXCOORD0; 62 | float2 texcoord1 : TEXCOORD1; 63 | }; 64 | 65 | struct v2f { 66 | float4 vertex : SV_POSITION; 67 | fixed4 color : COLOR; 68 | float2 texcoord0 : TEXCOORD0; 69 | float2 texcoord1 : TEXCOORD1; 70 | float4 mask : TEXCOORD2; 71 | }; 72 | 73 | uniform sampler2D _MainTex; 74 | uniform sampler2D _FaceTex; 75 | uniform float4 _FaceTex_ST; 76 | uniform fixed4 _FaceColor; 77 | 78 | uniform float _VertexOffsetX; 79 | uniform float _VertexOffsetY; 80 | uniform float4 _ClipRect; 81 | uniform float _MaskSoftnessX; 82 | uniform float _MaskSoftnessY; 83 | 84 | float2 UnpackUV(float uv) 85 | { 86 | float2 output; 87 | output.x = floor(uv / 4096); 88 | output.y = uv - 4096 * output.x; 89 | 90 | return output * 0.001953125; 91 | } 92 | 93 | v2f vert (appdata_t v) 94 | { 95 | float4 vert = v.vertex; 96 | vert.x += _VertexOffsetX; 97 | vert.y += _VertexOffsetY; 98 | 99 | vert.xy += (vert.w * 0.5) / _ScreenParams.xy; 100 | 101 | float4 vPosition = UnityPixelSnap(UnityObjectToClipPos(vert)); 102 | 103 | fixed4 faceColor = v.color; 104 | faceColor *= _FaceColor; 105 | 106 | v2f OUT; 107 | OUT.vertex = vPosition; 108 | OUT.color = faceColor; 109 | OUT.texcoord0 = v.texcoord0; 110 | OUT.texcoord1 = TRANSFORM_TEX(UnpackUV(v.texcoord1), _FaceTex); 111 | float2 pixelSize = vPosition.w; 112 | pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1])); 113 | 114 | // Clamp _ClipRect to 16bit. 115 | float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); 116 | OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); 117 | 118 | return OUT; 119 | } 120 | 121 | fixed4 frag (v2f IN) : SV_Target 122 | { 123 | fixed4 color = tex2D(_MainTex, IN.texcoord0) * tex2D(_FaceTex, IN.texcoord1) * IN.color; 124 | 125 | // Alternative implementation to UnityGet2DClipping with support for softness. 126 | #if UNITY_UI_CLIP_RECT 127 | half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw); 128 | color *= m.x * m.y; 129 | #endif 130 | 131 | #if UNITY_UI_ALPHACLIP 132 | clip(color.a - 0.001); 133 | #endif 134 | 135 | return color; 136 | } 137 | ENDCG 138 | } 139 | } 140 | 141 | CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI" 142 | } 143 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48bb5f55d8670e349b6e614913f9d910 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Mobile.shader: -------------------------------------------------------------------------------- 1 | Shader "TextMeshPro/Mobile/Bitmap" { 2 | 3 | Properties { 4 | _MainTex ("Font Atlas", 2D) = "white" {} 5 | _Color ("Text Color", Color) = (1,1,1,1) 6 | _DiffusePower ("Diffuse Power", Range(1.0,4.0)) = 1.0 7 | 8 | _VertexOffsetX("Vertex OffsetX", float) = 0 9 | _VertexOffsetY("Vertex OffsetY", float) = 0 10 | _MaskSoftnessX("Mask SoftnessX", float) = 0 11 | _MaskSoftnessY("Mask SoftnessY", float) = 0 12 | 13 | _ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767) 14 | 15 | _StencilComp("Stencil Comparison", Float) = 8 16 | _Stencil("Stencil ID", Float) = 0 17 | _StencilOp("Stencil Operation", Float) = 0 18 | _StencilWriteMask("Stencil Write Mask", Float) = 255 19 | _StencilReadMask("Stencil Read Mask", Float) = 255 20 | 21 | _ColorMask("Color Mask", Float) = 15 22 | } 23 | 24 | SubShader { 25 | 26 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 27 | 28 | Stencil 29 | { 30 | Ref[_Stencil] 31 | Comp[_StencilComp] 32 | Pass[_StencilOp] 33 | ReadMask[_StencilReadMask] 34 | WriteMask[_StencilWriteMask] 35 | } 36 | 37 | 38 | Lighting Off 39 | Cull Off 40 | ZTest [unity_GUIZTestMode] 41 | ZWrite Off 42 | Fog { Mode Off } 43 | Blend SrcAlpha OneMinusSrcAlpha 44 | ColorMask[_ColorMask] 45 | 46 | Pass { 47 | CGPROGRAM 48 | #pragma vertex vert 49 | #pragma fragment frag 50 | #pragma fragmentoption ARB_precision_hint_fastest 51 | 52 | #pragma multi_compile __ UNITY_UI_CLIP_RECT 53 | #pragma multi_compile __ UNITY_UI_ALPHACLIP 54 | 55 | 56 | #include "UnityCG.cginc" 57 | 58 | struct appdata_t { 59 | float4 vertex : POSITION; 60 | fixed4 color : COLOR; 61 | float2 texcoord0 : TEXCOORD0; 62 | float2 texcoord1 : TEXCOORD1; 63 | }; 64 | 65 | struct v2f { 66 | float4 vertex : POSITION; 67 | fixed4 color : COLOR; 68 | float2 texcoord0 : TEXCOORD0; 69 | float4 mask : TEXCOORD2; 70 | }; 71 | 72 | sampler2D _MainTex; 73 | fixed4 _Color; 74 | float _DiffusePower; 75 | 76 | uniform float _VertexOffsetX; 77 | uniform float _VertexOffsetY; 78 | uniform float4 _ClipRect; 79 | uniform float _MaskSoftnessX; 80 | uniform float _MaskSoftnessY; 81 | 82 | v2f vert (appdata_t v) 83 | { 84 | v2f OUT; 85 | float4 vert = v.vertex; 86 | vert.x += _VertexOffsetX; 87 | vert.y += _VertexOffsetY; 88 | 89 | vert.xy += (vert.w * 0.5) / _ScreenParams.xy; 90 | 91 | OUT.vertex = UnityPixelSnap(UnityObjectToClipPos(vert)); 92 | OUT.color = v.color; 93 | OUT.color *= _Color; 94 | OUT.color.rgb *= _DiffusePower; 95 | OUT.texcoord0 = v.texcoord0; 96 | 97 | float2 pixelSize = OUT.vertex.w; 98 | //pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1])); 99 | 100 | // Clamp _ClipRect to 16bit. 101 | float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); 102 | OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); 103 | 104 | return OUT; 105 | } 106 | 107 | fixed4 frag (v2f IN) : COLOR 108 | { 109 | fixed4 color = fixed4(IN.color.rgb, IN.color.a * tex2D(_MainTex, IN.texcoord0).a); 110 | 111 | // Alternative implementation to UnityGet2DClipping with support for softness. 112 | #if UNITY_UI_CLIP_RECT 113 | half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw); 114 | color *= m.x * m.y; 115 | #endif 116 | 117 | #if UNITY_UI_ALPHACLIP 118 | clip(color.a - 0.001); 119 | #endif 120 | 121 | return color; 122 | } 123 | ENDCG 124 | } 125 | } 126 | 127 | SubShader { 128 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 129 | Lighting Off Cull Off ZTest Always ZWrite Off Fog { Mode Off } 130 | Blend SrcAlpha OneMinusSrcAlpha 131 | BindChannels { 132 | Bind "Color", color 133 | Bind "Vertex", vertex 134 | Bind "TexCoord", texcoord0 135 | } 136 | Pass { 137 | SetTexture [_MainTex] { 138 | constantColor [_Color] combine constant * primary, constant * texture 139 | } 140 | } 141 | } 142 | 143 | CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI" 144 | } 145 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_Bitmap-Mobile.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e3b057af24249748ff873be7fafee47 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_Bitmap.shader: -------------------------------------------------------------------------------- 1 | Shader "TextMeshPro/Bitmap" { 2 | 3 | Properties { 4 | _MainTex ("Font Atlas", 2D) = "white" {} 5 | _FaceTex ("Font Texture", 2D) = "white" {} 6 | _FaceColor ("Text Color", Color) = (1,1,1,1) 7 | 8 | _VertexOffsetX ("Vertex OffsetX", float) = 0 9 | _VertexOffsetY ("Vertex OffsetY", float) = 0 10 | _MaskSoftnessX ("Mask SoftnessX", float) = 0 11 | _MaskSoftnessY ("Mask SoftnessY", float) = 0 12 | 13 | _ClipRect("Clip Rect", vector) = (-32767, -32767, 32767, 32767) 14 | 15 | _StencilComp("Stencil Comparison", Float) = 8 16 | _Stencil("Stencil ID", Float) = 0 17 | _StencilOp("Stencil Operation", Float) = 0 18 | _StencilWriteMask("Stencil Write Mask", Float) = 255 19 | _StencilReadMask("Stencil Read Mask", Float) = 255 20 | 21 | _ColorMask("Color Mask", Float) = 15 22 | } 23 | 24 | SubShader{ 25 | 26 | Tags { "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" } 27 | 28 | Stencil 29 | { 30 | Ref[_Stencil] 31 | Comp[_StencilComp] 32 | Pass[_StencilOp] 33 | ReadMask[_StencilReadMask] 34 | WriteMask[_StencilWriteMask] 35 | } 36 | 37 | 38 | Lighting Off 39 | Cull [_CullMode] 40 | ZTest [unity_GUIZTestMode] 41 | ZWrite Off 42 | Fog { Mode Off } 43 | Blend SrcAlpha OneMinusSrcAlpha 44 | ColorMask[_ColorMask] 45 | 46 | Pass { 47 | CGPROGRAM 48 | #pragma vertex vert 49 | #pragma fragment frag 50 | 51 | #pragma multi_compile __ UNITY_UI_CLIP_RECT 52 | #pragma multi_compile __ UNITY_UI_ALPHACLIP 53 | 54 | 55 | #include "UnityCG.cginc" 56 | 57 | struct appdata_t { 58 | float4 vertex : POSITION; 59 | fixed4 color : COLOR; 60 | float2 texcoord0 : TEXCOORD0; 61 | float2 texcoord1 : TEXCOORD1; 62 | }; 63 | 64 | struct v2f { 65 | float4 vertex : SV_POSITION; 66 | fixed4 color : COLOR; 67 | float2 texcoord0 : TEXCOORD0; 68 | float2 texcoord1 : TEXCOORD1; 69 | float4 mask : TEXCOORD2; 70 | }; 71 | 72 | uniform sampler2D _MainTex; 73 | uniform sampler2D _FaceTex; 74 | uniform float4 _FaceTex_ST; 75 | uniform fixed4 _FaceColor; 76 | 77 | uniform float _VertexOffsetX; 78 | uniform float _VertexOffsetY; 79 | uniform float4 _ClipRect; 80 | uniform float _MaskSoftnessX; 81 | uniform float _MaskSoftnessY; 82 | 83 | float2 UnpackUV(float uv) 84 | { 85 | float2 output; 86 | output.x = floor(uv / 4096); 87 | output.y = uv - 4096 * output.x; 88 | 89 | return output * 0.001953125; 90 | } 91 | 92 | v2f vert (appdata_t v) 93 | { 94 | float4 vert = v.vertex; 95 | vert.x += _VertexOffsetX; 96 | vert.y += _VertexOffsetY; 97 | 98 | vert.xy += (vert.w * 0.5) / _ScreenParams.xy; 99 | 100 | float4 vPosition = UnityPixelSnap(UnityObjectToClipPos(vert)); 101 | 102 | fixed4 faceColor = v.color; 103 | faceColor *= _FaceColor; 104 | 105 | v2f OUT; 106 | OUT.vertex = vPosition; 107 | OUT.color = faceColor; 108 | OUT.texcoord0 = v.texcoord0; 109 | OUT.texcoord1 = TRANSFORM_TEX(UnpackUV(v.texcoord1), _FaceTex); 110 | float2 pixelSize = vPosition.w; 111 | pixelSize /= abs(float2(_ScreenParams.x * UNITY_MATRIX_P[0][0], _ScreenParams.y * UNITY_MATRIX_P[1][1])); 112 | 113 | // Clamp _ClipRect to 16bit. 114 | float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); 115 | OUT.mask = float4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)); 116 | 117 | return OUT; 118 | } 119 | 120 | fixed4 frag (v2f IN) : SV_Target 121 | { 122 | fixed4 color = tex2D(_MainTex, IN.texcoord0); 123 | color = fixed4 (tex2D(_FaceTex, IN.texcoord1).rgb * IN.color.rgb, IN.color.a * color.a); 124 | 125 | // Alternative implementation to UnityGet2DClipping with support for softness. 126 | #if UNITY_UI_CLIP_RECT 127 | half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(IN.mask.xy)) * IN.mask.zw); 128 | color *= m.x * m.y; 129 | #endif 130 | 131 | #if UNITY_UI_ALPHACLIP 132 | clip(color.a - 0.001); 133 | #endif 134 | 135 | return color; 136 | } 137 | ENDCG 138 | } 139 | } 140 | 141 | CustomEditor "TMPro.EditorUtilities.TMP_BitmapShaderGUI" 142 | } 143 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_Bitmap.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 128e987d567d4e2c824d754223b3f3b0 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF Overlay.shader: -------------------------------------------------------------------------------- 1 | Shader "TextMeshPro/Distance Field Overlay" { 2 | 3 | Properties { 4 | _FaceTex ("Face Texture", 2D) = "white" {} 5 | _FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0 6 | _FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0 7 | _FaceColor ("Face Color", Color) = (1,1,1,1) 8 | _FaceDilate ("Face Dilate", Range(-1,1)) = 0 9 | 10 | _OutlineColor ("Outline Color", Color) = (0,0,0,1) 11 | _OutlineTex ("Outline Texture", 2D) = "white" {} 12 | _OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0 13 | _OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0 14 | _OutlineWidth ("Outline Thickness", Range(0, 1)) = 0 15 | _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 16 | 17 | _Bevel ("Bevel", Range(0,1)) = 0.5 18 | _BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0 19 | _BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0 20 | _BevelClamp ("Bevel Clamp", Range(0,1)) = 0 21 | _BevelRoundness ("Bevel Roundness", Range(0,1)) = 0 22 | 23 | _LightAngle ("Light Angle", Range(0.0, 6.2831853)) = 3.1416 24 | _SpecularColor ("Specular", Color) = (1,1,1,1) 25 | _SpecularPower ("Specular", Range(0,4)) = 2.0 26 | _Reflectivity ("Reflectivity", Range(5.0,15.0)) = 10 27 | _Diffuse ("Diffuse", Range(0,1)) = 0.5 28 | _Ambient ("Ambient", Range(1,0)) = 0.5 29 | 30 | _BumpMap ("Normal map", 2D) = "bump" {} 31 | _BumpOutline ("Bump Outline", Range(0,1)) = 0 32 | _BumpFace ("Bump Face", Range(0,1)) = 0 33 | 34 | _ReflectFaceColor ("Reflection Color", Color) = (0,0,0,1) 35 | _ReflectOutlineColor("Reflection Color", Color) = (0,0,0,1) 36 | _Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ } 37 | _EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0) 38 | 39 | 40 | _UnderlayColor ("Border Color", Color) = (0,0,0, 0.5) 41 | _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 42 | _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 43 | _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 44 | _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 45 | 46 | _GlowColor ("Color", Color) = (0, 1, 0, 0.5) 47 | _GlowOffset ("Offset", Range(-1,1)) = 0 48 | _GlowInner ("Inner", Range(0,1)) = 0.05 49 | _GlowOuter ("Outer", Range(0,1)) = 0.05 50 | _GlowPower ("Falloff", Range(1, 0)) = 0.75 51 | 52 | _WeightNormal ("Weight Normal", float) = 0 53 | _WeightBold ("Weight Bold", float) = 0.5 54 | 55 | _ShaderFlags ("Flags", float) = 0 56 | _ScaleRatioA ("Scale RatioA", float) = 1 57 | _ScaleRatioB ("Scale RatioB", float) = 1 58 | _ScaleRatioC ("Scale RatioC", float) = 1 59 | 60 | _MainTex ("Font Atlas", 2D) = "white" {} 61 | _TextureWidth ("Texture Width", float) = 512 62 | _TextureHeight ("Texture Height", float) = 512 63 | _GradientScale ("Gradient Scale", float) = 5.0 64 | _ScaleX ("Scale X", float) = 1.0 65 | _ScaleY ("Scale Y", float) = 1.0 66 | _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 67 | 68 | _VertexOffsetX ("Vertex OffsetX", float) = 0 69 | _VertexOffsetY ("Vertex OffsetY", float) = 0 70 | 71 | _MaskCoord ("Mask Coordinates", vector) = (0, 0, 32767, 32767) 72 | _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) 73 | _MaskSoftnessX ("Mask SoftnessX", float) = 0 74 | _MaskSoftnessY ("Mask SoftnessY", float) = 0 75 | 76 | _StencilComp ("Stencil Comparison", Float) = 8 77 | _Stencil ("Stencil ID", Float) = 0 78 | _StencilOp ("Stencil Operation", Float) = 0 79 | _StencilWriteMask ("Stencil Write Mask", Float) = 255 80 | _StencilReadMask ("Stencil Read Mask", Float) = 255 81 | 82 | _ColorMask ("Color Mask", Float) = 15 83 | } 84 | 85 | SubShader { 86 | 87 | Tags 88 | { 89 | "Queue"="Overlay" 90 | "IgnoreProjector"="True" 91 | "RenderType"="Transparent" 92 | } 93 | 94 | Stencil 95 | { 96 | Ref [_Stencil] 97 | Comp [_StencilComp] 98 | Pass [_StencilOp] 99 | ReadMask [_StencilReadMask] 100 | WriteMask [_StencilWriteMask] 101 | } 102 | 103 | Cull [_CullMode] 104 | ZWrite Off 105 | Lighting Off 106 | Fog { Mode Off } 107 | ZTest Always 108 | Blend One OneMinusSrcAlpha 109 | ColorMask [_ColorMask] 110 | 111 | Pass { 112 | CGPROGRAM 113 | #pragma target 3.0 114 | #pragma vertex VertShader 115 | #pragma fragment PixShader 116 | #pragma shader_feature __ BEVEL_ON 117 | #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER 118 | #pragma shader_feature __ GLOW_ON 119 | 120 | #pragma multi_compile __ UNITY_UI_CLIP_RECT 121 | #pragma multi_compile __ UNITY_UI_ALPHACLIP 122 | 123 | 124 | #include "UnityCG.cginc" 125 | #include "UnityUI.cginc" 126 | #include "TMPro_Properties.cginc" 127 | #include "TMPro.cginc" 128 | 129 | struct vertex_t { 130 | float4 position : POSITION; 131 | float3 normal : NORMAL; 132 | fixed4 color : COLOR; 133 | float2 texcoord0 : TEXCOORD0; 134 | float2 texcoord1 : TEXCOORD1; 135 | }; 136 | 137 | 138 | struct pixel_t { 139 | float4 position : SV_POSITION; 140 | fixed4 color : COLOR; 141 | float2 atlas : TEXCOORD0; // Atlas 142 | float4 param : TEXCOORD1; // alphaClip, scale, bias, weight 143 | float4 mask : TEXCOORD2; // Position in object space(xy), pixel Size(zw) 144 | float3 viewDir : TEXCOORD3; 145 | 146 | #if (UNDERLAY_ON || UNDERLAY_INNER) 147 | float4 texcoord2 : TEXCOORD4; // u,v, scale, bias 148 | fixed4 underlayColor : COLOR1; 149 | #endif 150 | float4 textures : TEXCOORD5; 151 | }; 152 | 153 | // Used by Unity internally to handle Texture Tiling and Offset. 154 | float4 _FaceTex_ST; 155 | float4 _OutlineTex_ST; 156 | 157 | pixel_t VertShader(vertex_t input) 158 | { 159 | float bold = step(input.texcoord1.y, 0); 160 | 161 | float4 vert = input.position; 162 | vert.x += _VertexOffsetX; 163 | vert.y += _VertexOffsetY; 164 | float4 vPosition = UnityObjectToClipPos(vert); 165 | 166 | float2 pixelSize = vPosition.w; 167 | pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); 168 | float scale = rsqrt(dot(pixelSize, pixelSize)); 169 | scale *= abs(input.texcoord1.y) * _GradientScale * 1.5; 170 | if (UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); 171 | 172 | float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; 173 | weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; 174 | 175 | float bias =(.5 - weight) + (.5 / scale); 176 | 177 | float alphaClip = (1.0 - _OutlineWidth*_ScaleRatioA - _OutlineSoftness*_ScaleRatioA); 178 | 179 | #if GLOW_ON 180 | alphaClip = min(alphaClip, 1.0 - _GlowOffset * _ScaleRatioB - _GlowOuter * _ScaleRatioB); 181 | #endif 182 | 183 | alphaClip = alphaClip / 2.0 - ( .5 / scale) - weight; 184 | 185 | #if (UNDERLAY_ON || UNDERLAY_INNER) 186 | float4 underlayColor = _UnderlayColor; 187 | underlayColor.rgb *= underlayColor.a; 188 | 189 | float bScale = scale; 190 | bScale /= 1 + ((_UnderlaySoftness*_ScaleRatioC) * bScale); 191 | float bBias = (0.5 - weight) * bScale - 0.5 - ((_UnderlayDilate * _ScaleRatioC) * 0.5 * bScale); 192 | 193 | float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; 194 | float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; 195 | float2 bOffset = float2(x, y); 196 | #endif 197 | 198 | // Generate UV for the Masking Texture 199 | float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); 200 | float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); 201 | 202 | // Support for texture tiling and offset 203 | float2 textureUV = UnpackUV(input.texcoord1.x); 204 | float2 faceUV = TRANSFORM_TEX(textureUV, _FaceTex); 205 | float2 outlineUV = TRANSFORM_TEX(textureUV, _OutlineTex); 206 | 207 | pixel_t output = { 208 | vPosition, 209 | input.color, 210 | input.texcoord0, 211 | float4(alphaClip, scale, bias, weight), 212 | half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)), 213 | mul((float3x3)_EnvMatrix, _WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, vert).xyz), 214 | #if (UNDERLAY_ON || UNDERLAY_INNER) 215 | float4(input.texcoord0 + bOffset, bScale, bBias), 216 | underlayColor, 217 | #endif 218 | float4(faceUV, outlineUV), 219 | }; 220 | 221 | return output; 222 | } 223 | 224 | 225 | fixed4 PixShader(pixel_t input) : SV_Target 226 | { 227 | float c = tex2D(_MainTex, input.atlas).a; 228 | 229 | #ifndef UNDERLAY_ON 230 | clip(c - input.param.x); 231 | #endif 232 | 233 | float scale = input.param.y; 234 | float bias = input.param.z; 235 | float weight = input.param.w; 236 | float sd = (bias - c) * scale; 237 | 238 | float outline = (_OutlineWidth * _ScaleRatioA) * scale; 239 | float softness = (_OutlineSoftness * _ScaleRatioA) * scale; 240 | 241 | half4 faceColor = _FaceColor; 242 | half4 outlineColor = _OutlineColor; 243 | 244 | faceColor.rgb *= input.color.rgb; 245 | 246 | faceColor *= tex2D(_FaceTex, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y); 247 | outlineColor *= tex2D(_OutlineTex, input.textures.zw + float2(_OutlineUVSpeedX, _OutlineUVSpeedY) * _Time.y); 248 | 249 | faceColor = GetColor(sd, faceColor, outlineColor, outline, softness); 250 | 251 | #if BEVEL_ON 252 | float3 dxy = float3(0.5 / _TextureWidth, 0.5 / _TextureHeight, 0); 253 | float3 n = GetSurfaceNormal(input.atlas, weight, dxy); 254 | 255 | float3 bump = UnpackNormal(tex2D(_BumpMap, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y)).xyz; 256 | bump *= lerp(_BumpFace, _BumpOutline, saturate(sd + outline * 0.5)); 257 | n = normalize(n- bump); 258 | 259 | float3 light = normalize(float3(sin(_LightAngle), cos(_LightAngle), -1.0)); 260 | 261 | float3 col = GetSpecular(n, light); 262 | faceColor.rgb += col*faceColor.a; 263 | faceColor.rgb *= 1-(dot(n, light)*_Diffuse); 264 | faceColor.rgb *= lerp(_Ambient, 1, n.z*n.z); 265 | 266 | fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n)); 267 | faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a; 268 | #endif 269 | 270 | #if UNDERLAY_ON 271 | float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z; 272 | faceColor += input.underlayColor * saturate(d - input.texcoord2.w) * (1 - faceColor.a); 273 | #endif 274 | 275 | #if UNDERLAY_INNER 276 | float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z; 277 | faceColor += input.underlayColor * (1 - saturate(d - input.texcoord2.w)) * saturate(1 - sd) * (1 - faceColor.a); 278 | #endif 279 | 280 | #if GLOW_ON 281 | float4 glowColor = GetGlowColor(sd, scale); 282 | faceColor.rgb += glowColor.rgb * glowColor.a; 283 | #endif 284 | 285 | // Alternative implementation to UnityGet2DClipping with support for softness. 286 | #if UNITY_UI_CLIP_RECT 287 | half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); 288 | faceColor *= m.x * m.y; 289 | #endif 290 | 291 | #if UNITY_UI_ALPHACLIP 292 | clip(faceColor.a - 0.001); 293 | #endif 294 | 295 | return faceColor * input.color.a; 296 | } 297 | 298 | ENDCG 299 | } 300 | } 301 | 302 | Fallback "TextMeshPro/Mobile/Distance Field" 303 | CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" 304 | } 305 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF Overlay.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd89cf5b9246416f84610a006f916af7 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile Masking.shader: -------------------------------------------------------------------------------- 1 | // Simplified SDF shader: 2 | // - No Shading Option (bevel / bump / env map) 3 | // - No Glow Option 4 | // - Softness is applied on both side of the outline 5 | 6 | Shader "TextMeshPro/Mobile/Distance Field - Masking" { 7 | 8 | Properties { 9 | _FaceColor ("Face Color", Color) = (1,1,1,1) 10 | _FaceDilate ("Face Dilate", Range(-1,1)) = 0 11 | 12 | _OutlineColor ("Outline Color", Color) = (0,0,0,1) 13 | _OutlineWidth ("Outline Thickness", Range(0,1)) = 0 14 | _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 15 | 16 | _UnderlayColor ("Border Color", Color) = (0,0,0,.5) 17 | _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 18 | _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 19 | _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 20 | _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 21 | 22 | _WeightNormal ("Weight Normal", float) = 0 23 | _WeightBold ("Weight Bold", float) = .5 24 | 25 | _ShaderFlags ("Flags", float) = 0 26 | _ScaleRatioA ("Scale RatioA", float) = 1 27 | _ScaleRatioB ("Scale RatioB", float) = 1 28 | _ScaleRatioC ("Scale RatioC", float) = 1 29 | 30 | _MainTex ("Font Atlas", 2D) = "white" {} 31 | _TextureWidth ("Texture Width", float) = 512 32 | _TextureHeight ("Texture Height", float) = 512 33 | _GradientScale ("Gradient Scale", float) = 5 34 | _ScaleX ("Scale X", float) = 1 35 | _ScaleY ("Scale Y", float) = 1 36 | _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 37 | 38 | _VertexOffsetX ("Vertex OffsetX", float) = 0 39 | _VertexOffsetY ("Vertex OffsetY", float) = 0 40 | 41 | _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) 42 | _MaskSoftnessX ("Mask SoftnessX", float) = 0 43 | _MaskSoftnessY ("Mask SoftnessY", float) = 0 44 | _MaskTex ("Mask Texture", 2D) = "white" {} 45 | _MaskInverse ("Inverse", float) = 0 46 | _MaskEdgeColor ("Edge Color", Color) = (1,1,1,1) 47 | _MaskEdgeSoftness ("Edge Softness", Range(0, 1)) = 0.01 48 | _MaskWipeControl ("Wipe Position", Range(0, 1)) = 0.5 49 | 50 | _StencilComp ("Stencil Comparison", Float) = 8 51 | _Stencil ("Stencil ID", Float) = 0 52 | _StencilOp ("Stencil Operation", Float) = 0 53 | _StencilWriteMask ("Stencil Write Mask", Float) = 255 54 | _StencilReadMask ("Stencil Read Mask", Float) = 255 55 | 56 | _ColorMask ("Color Mask", Float) = 15 57 | } 58 | 59 | SubShader { 60 | Tags 61 | { 62 | "Queue"="Transparent" 63 | "IgnoreProjector"="True" 64 | "RenderType"="Transparent" 65 | } 66 | 67 | 68 | Stencil 69 | { 70 | Ref [_Stencil] 71 | Comp [_StencilComp] 72 | Pass [_StencilOp] 73 | ReadMask [_StencilReadMask] 74 | WriteMask [_StencilWriteMask] 75 | } 76 | 77 | Cull [_CullMode] 78 | ZWrite Off 79 | Lighting Off 80 | Fog { Mode Off } 81 | ZTest [unity_GUIZTestMode] 82 | Blend One OneMinusSrcAlpha 83 | ColorMask [_ColorMask] 84 | 85 | Pass { 86 | CGPROGRAM 87 | #pragma vertex VertShader 88 | #pragma fragment PixShader 89 | #pragma shader_feature __ OUTLINE_ON 90 | #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER 91 | 92 | #pragma multi_compile __ UNITY_UI_CLIP_RECT 93 | #pragma multi_compile __ UNITY_UI_ALPHACLIP 94 | 95 | 96 | #include "UnityCG.cginc" 97 | #include "UnityUI.cginc" 98 | #include "TMPro_Properties.cginc" 99 | 100 | struct vertex_t { 101 | float4 vertex : POSITION; 102 | float3 normal : NORMAL; 103 | fixed4 color : COLOR; 104 | float2 texcoord0 : TEXCOORD0; 105 | float2 texcoord1 : TEXCOORD1; 106 | }; 107 | 108 | struct pixel_t { 109 | float4 vertex : SV_POSITION; 110 | fixed4 faceColor : COLOR; 111 | fixed4 outlineColor : COLOR1; 112 | float4 texcoord0 : TEXCOORD0; // Texture UV, Mask UV 113 | half4 param : TEXCOORD1; // Scale(x), BiasIn(y), BiasOut(z), Bias(w) 114 | half4 mask : TEXCOORD2; // Position in clip space(xy), Softness(zw) 115 | #if (UNDERLAY_ON | UNDERLAY_INNER) 116 | float4 texcoord1 : TEXCOORD3; // Texture UV, alpha, reserved 117 | half2 underlayParam : TEXCOORD4; // Scale(x), Bias(y) 118 | #endif 119 | }; 120 | 121 | float _MaskWipeControl; 122 | float _MaskEdgeSoftness; 123 | fixed4 _MaskEdgeColor; 124 | bool _MaskInverse; 125 | 126 | pixel_t VertShader(vertex_t input) 127 | { 128 | float bold = step(input.texcoord1.y, 0); 129 | 130 | float4 vert = input.vertex; 131 | vert.x += _VertexOffsetX; 132 | vert.y += _VertexOffsetY; 133 | float4 vPosition = UnityObjectToClipPos(vert); 134 | 135 | float2 pixelSize = vPosition.w; 136 | pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); 137 | 138 | float scale = rsqrt(dot(pixelSize, pixelSize)); 139 | scale *= abs(input.texcoord1.y) * _GradientScale * 1.5; 140 | if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); 141 | 142 | float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; 143 | weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; 144 | 145 | float layerScale = scale; 146 | 147 | scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale); 148 | float bias = (0.5 - weight) * scale - 0.5; 149 | float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale; 150 | 151 | float opacity = input.color.a; 152 | #if (UNDERLAY_ON | UNDERLAY_INNER) 153 | opacity = 1.0; 154 | #endif 155 | 156 | fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor; 157 | faceColor.rgb *= faceColor.a; 158 | 159 | fixed4 outlineColor = _OutlineColor; 160 | outlineColor.a *= opacity; 161 | outlineColor.rgb *= outlineColor.a; 162 | outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2)))); 163 | 164 | #if (UNDERLAY_ON | UNDERLAY_INNER) 165 | 166 | layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale); 167 | float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale); 168 | 169 | float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; 170 | float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; 171 | float2 layerOffset = float2(x, y); 172 | #endif 173 | 174 | // Generate UV for the Masking Texture 175 | float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); 176 | float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); 177 | 178 | // Structure for pixel shader 179 | pixel_t output = { 180 | vPosition, 181 | faceColor, 182 | outlineColor, 183 | float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y), 184 | half4(scale, bias - outline, bias + outline, bias), 185 | half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)), 186 | #if (UNDERLAY_ON | UNDERLAY_INNER) 187 | float4(input.texcoord0 + layerOffset, input.color.a, 0), 188 | half2(layerScale, layerBias), 189 | #endif 190 | }; 191 | 192 | return output; 193 | } 194 | 195 | 196 | // PIXEL SHADER 197 | fixed4 PixShader(pixel_t input) : SV_Target 198 | { 199 | half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x; 200 | half4 c = input.faceColor * saturate(d - input.param.w); 201 | 202 | #ifdef OUTLINE_ON 203 | c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z)); 204 | c *= saturate(d - input.param.y); 205 | #endif 206 | 207 | #if UNDERLAY_ON 208 | d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; 209 | c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a); 210 | #endif 211 | 212 | #if UNDERLAY_INNER 213 | half sd = saturate(d - input.param.z); 214 | d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; 215 | c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a); 216 | #endif 217 | 218 | // Alternative implementation to UnityGet2DClipping with support for softness. 219 | #if UNITY_UI_CLIP_RECT 220 | half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); 221 | c *= m.x * m.y; 222 | #endif 223 | 224 | float a = abs(_MaskInverse - tex2D(_MaskTex, input.texcoord0.zw).a); 225 | float t = a + (1 - _MaskWipeControl) * _MaskEdgeSoftness - _MaskWipeControl; 226 | a = saturate(t / _MaskEdgeSoftness); 227 | c.rgb = lerp(_MaskEdgeColor.rgb*c.a, c.rgb, a); 228 | c *= a; 229 | 230 | #if (UNDERLAY_ON | UNDERLAY_INNER) 231 | c *= input.texcoord1.z; 232 | #endif 233 | 234 | #if UNITY_UI_ALPHACLIP 235 | clip(c.a - 0.001); 236 | #endif 237 | 238 | return c; 239 | } 240 | ENDCG 241 | } 242 | } 243 | 244 | CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" 245 | } 246 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile Masking.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc1ede39bf3643ee8e493720e4259791 3 | timeCreated: 1463704911 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile Overlay.shader: -------------------------------------------------------------------------------- 1 | // Simplified SDF shader: 2 | // - No Shading Option (bevel / bump / env map) 3 | // - No Glow Option 4 | // - Softness is applied on both side of the outline 5 | 6 | Shader "TextMeshPro/Mobile/Distance Field Overlay" { 7 | 8 | Properties { 9 | _FaceColor ("Face Color", Color) = (1,1,1,1) 10 | _FaceDilate ("Face Dilate", Range(-1,1)) = 0 11 | 12 | _OutlineColor ("Outline Color", Color) = (0,0,0,1) 13 | _OutlineWidth ("Outline Thickness", Range(0,1)) = 0 14 | _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 15 | 16 | _UnderlayColor ("Border Color", Color) = (0,0,0,.5) 17 | _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 18 | _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 19 | _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 20 | _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 21 | 22 | _WeightNormal ("Weight Normal", float) = 0 23 | _WeightBold ("Weight Bold", float) = .5 24 | 25 | _ShaderFlags ("Flags", float) = 0 26 | _ScaleRatioA ("Scale RatioA", float) = 1 27 | _ScaleRatioB ("Scale RatioB", float) = 1 28 | _ScaleRatioC ("Scale RatioC", float) = 1 29 | 30 | _MainTex ("Font Atlas", 2D) = "white" {} 31 | _TextureWidth ("Texture Width", float) = 512 32 | _TextureHeight ("Texture Height", float) = 512 33 | _GradientScale ("Gradient Scale", float) = 5 34 | _ScaleX ("Scale X", float) = 1 35 | _ScaleY ("Scale Y", float) = 1 36 | _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 37 | 38 | _VertexOffsetX ("Vertex OffsetX", float) = 0 39 | _VertexOffsetY ("Vertex OffsetY", float) = 0 40 | 41 | _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) 42 | _MaskSoftnessX ("Mask SoftnessX", float) = 0 43 | _MaskSoftnessY ("Mask SoftnessY", float) = 0 44 | 45 | _StencilComp ("Stencil Comparison", Float) = 8 46 | _Stencil ("Stencil ID", Float) = 0 47 | _StencilOp ("Stencil Operation", Float) = 0 48 | _StencilWriteMask ("Stencil Write Mask", Float) = 255 49 | _StencilReadMask ("Stencil Read Mask", Float) = 255 50 | 51 | _ColorMask ("Color Mask", Float) = 15 52 | } 53 | 54 | SubShader { 55 | Tags 56 | { 57 | "Queue"="Overlay" 58 | "IgnoreProjector"="True" 59 | "RenderType"="Transparent" 60 | } 61 | 62 | 63 | Stencil 64 | { 65 | Ref [_Stencil] 66 | Comp [_StencilComp] 67 | Pass [_StencilOp] 68 | ReadMask [_StencilReadMask] 69 | WriteMask [_StencilWriteMask] 70 | } 71 | 72 | Cull [_CullMode] 73 | ZWrite Off 74 | Lighting Off 75 | Fog { Mode Off } 76 | ZTest Always 77 | Blend One OneMinusSrcAlpha 78 | ColorMask [_ColorMask] 79 | 80 | Pass { 81 | CGPROGRAM 82 | #pragma vertex VertShader 83 | #pragma fragment PixShader 84 | #pragma shader_feature __ OUTLINE_ON 85 | #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER 86 | 87 | #pragma multi_compile __ UNITY_UI_CLIP_RECT 88 | #pragma multi_compile __ UNITY_UI_ALPHACLIP 89 | 90 | #include "UnityCG.cginc" 91 | #include "UnityUI.cginc" 92 | #include "TMPro_Properties.cginc" 93 | 94 | struct vertex_t { 95 | float4 vertex : POSITION; 96 | float3 normal : NORMAL; 97 | fixed4 color : COLOR; 98 | float2 texcoord0 : TEXCOORD0; 99 | float2 texcoord1 : TEXCOORD1; 100 | }; 101 | 102 | struct pixel_t { 103 | float4 vertex : SV_POSITION; 104 | fixed4 faceColor : COLOR; 105 | fixed4 outlineColor : COLOR1; 106 | float4 texcoord0 : TEXCOORD0; // Texture UV, Mask UV 107 | half4 param : TEXCOORD1; // Scale(x), BiasIn(y), BiasOut(z), Bias(w) 108 | half4 mask : TEXCOORD2; // Position in clip space(xy), Softness(zw) 109 | #if (UNDERLAY_ON | UNDERLAY_INNER) 110 | float4 texcoord1 : TEXCOORD3; // Texture UV, alpha, reserved 111 | half2 underlayParam : TEXCOORD4; // Scale(x), Bias(y) 112 | #endif 113 | }; 114 | 115 | 116 | pixel_t VertShader(vertex_t input) 117 | { 118 | float bold = step(input.texcoord1.y, 0); 119 | 120 | float4 vert = input.vertex; 121 | vert.x += _VertexOffsetX; 122 | vert.y += _VertexOffsetY; 123 | float4 vPosition = UnityObjectToClipPos(vert); 124 | 125 | float2 pixelSize = vPosition.w; 126 | pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); 127 | 128 | float scale = rsqrt(dot(pixelSize, pixelSize)); 129 | scale *= abs(input.texcoord1.y) * _GradientScale * 1.5; 130 | if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); 131 | 132 | float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; 133 | weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; 134 | 135 | float layerScale = scale; 136 | 137 | scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale); 138 | float bias = (0.5 - weight) * scale - 0.5; 139 | float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale; 140 | 141 | float opacity = input.color.a; 142 | #if (UNDERLAY_ON | UNDERLAY_INNER) 143 | opacity = 1.0; 144 | #endif 145 | 146 | fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor; 147 | faceColor.rgb *= faceColor.a; 148 | 149 | fixed4 outlineColor = _OutlineColor; 150 | outlineColor.a *= opacity; 151 | outlineColor.rgb *= outlineColor.a; 152 | outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2)))); 153 | 154 | #if (UNDERLAY_ON | UNDERLAY_INNER) 155 | 156 | layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale); 157 | float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale); 158 | 159 | float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; 160 | float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; 161 | float2 layerOffset = float2(x, y); 162 | #endif 163 | 164 | // Generate UV for the Masking Texture 165 | float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); 166 | float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); 167 | 168 | // Structure for pixel shader 169 | pixel_t output = { 170 | vPosition, 171 | faceColor, 172 | outlineColor, 173 | float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y), 174 | half4(scale, bias - outline, bias + outline, bias), 175 | half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)), 176 | #if (UNDERLAY_ON | UNDERLAY_INNER) 177 | float4(input.texcoord0 + layerOffset, input.color.a, 0), 178 | half2(layerScale, layerBias), 179 | #endif 180 | }; 181 | 182 | return output; 183 | } 184 | 185 | 186 | // PIXEL SHADER 187 | fixed4 PixShader(pixel_t input) : SV_Target 188 | { 189 | half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x; 190 | half4 c = input.faceColor * saturate(d - input.param.w); 191 | 192 | #ifdef OUTLINE_ON 193 | c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z)); 194 | c *= saturate(d - input.param.y); 195 | #endif 196 | 197 | #if UNDERLAY_ON 198 | d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; 199 | c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a); 200 | #endif 201 | 202 | #if UNDERLAY_INNER 203 | half sd = saturate(d - input.param.z); 204 | d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; 205 | c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a); 206 | #endif 207 | 208 | // Alternative implementation to UnityGet2DClipping with support for softness. 209 | #if UNITY_UI_CLIP_RECT 210 | half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); 211 | c *= m.x * m.y; 212 | #endif 213 | 214 | #if (UNDERLAY_ON | UNDERLAY_INNER) 215 | c *= input.texcoord1.z; 216 | #endif 217 | 218 | #if UNITY_UI_ALPHACLIP 219 | clip(c.a - 0.001); 220 | #endif 221 | 222 | return c; 223 | } 224 | ENDCG 225 | } 226 | } 227 | 228 | CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" 229 | } 230 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile Overlay.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a02a7d8c237544f1962732b55a9aebf1 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile.shader: -------------------------------------------------------------------------------- 1 | // Simplified SDF shader: 2 | // - No Shading Option (bevel / bump / env map) 3 | // - No Glow Option 4 | // - Softness is applied on both side of the outline 5 | 6 | Shader "TextMeshPro/Mobile/Distance Field" { 7 | 8 | Properties { 9 | _FaceColor ("Face Color", Color) = (1,1,1,1) 10 | _FaceDilate ("Face Dilate", Range(-1,1)) = 0 11 | 12 | _OutlineColor ("Outline Color", Color) = (0,0,0,1) 13 | _OutlineWidth ("Outline Thickness", Range(0,1)) = 0 14 | _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 15 | 16 | _UnderlayColor ("Border Color", Color) = (0,0,0,.5) 17 | _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 18 | _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 19 | _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 20 | _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 21 | 22 | _WeightNormal ("Weight Normal", float) = 0 23 | _WeightBold ("Weight Bold", float) = .5 24 | 25 | _ShaderFlags ("Flags", float) = 0 26 | _ScaleRatioA ("Scale RatioA", float) = 1 27 | _ScaleRatioB ("Scale RatioB", float) = 1 28 | _ScaleRatioC ("Scale RatioC", float) = 1 29 | 30 | _MainTex ("Font Atlas", 2D) = "white" {} 31 | _TextureWidth ("Texture Width", float) = 512 32 | _TextureHeight ("Texture Height", float) = 512 33 | _GradientScale ("Gradient Scale", float) = 5 34 | _ScaleX ("Scale X", float) = 1 35 | _ScaleY ("Scale Y", float) = 1 36 | _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 37 | 38 | _VertexOffsetX ("Vertex OffsetX", float) = 0 39 | _VertexOffsetY ("Vertex OffsetY", float) = 0 40 | 41 | _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) 42 | _MaskSoftnessX ("Mask SoftnessX", float) = 0 43 | _MaskSoftnessY ("Mask SoftnessY", float) = 0 44 | 45 | _StencilComp ("Stencil Comparison", Float) = 8 46 | _Stencil ("Stencil ID", Float) = 0 47 | _StencilOp ("Stencil Operation", Float) = 0 48 | _StencilWriteMask ("Stencil Write Mask", Float) = 255 49 | _StencilReadMask ("Stencil Read Mask", Float) = 255 50 | 51 | _ColorMask ("Color Mask", Float) = 15 52 | } 53 | 54 | SubShader { 55 | Tags 56 | { 57 | "Queue"="Transparent" 58 | "IgnoreProjector"="True" 59 | "RenderType"="Transparent" 60 | } 61 | 62 | 63 | Stencil 64 | { 65 | Ref [_Stencil] 66 | Comp [_StencilComp] 67 | Pass [_StencilOp] 68 | ReadMask [_StencilReadMask] 69 | WriteMask [_StencilWriteMask] 70 | } 71 | 72 | Cull [_CullMode] 73 | ZWrite Off 74 | Lighting Off 75 | Fog { Mode Off } 76 | ZTest [unity_GUIZTestMode] 77 | Blend One OneMinusSrcAlpha 78 | ColorMask [_ColorMask] 79 | 80 | Pass { 81 | CGPROGRAM 82 | #pragma vertex VertShader 83 | #pragma fragment PixShader 84 | #pragma shader_feature __ OUTLINE_ON 85 | #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER 86 | 87 | #pragma multi_compile __ UNITY_UI_CLIP_RECT 88 | #pragma multi_compile __ UNITY_UI_ALPHACLIP 89 | 90 | #include "UnityCG.cginc" 91 | #include "UnityUI.cginc" 92 | #include "TMPro_Properties.cginc" 93 | 94 | struct vertex_t { 95 | float4 vertex : POSITION; 96 | float3 normal : NORMAL; 97 | fixed4 color : COLOR; 98 | float2 texcoord0 : TEXCOORD0; 99 | float2 texcoord1 : TEXCOORD1; 100 | }; 101 | 102 | struct pixel_t { 103 | float4 vertex : SV_POSITION; 104 | fixed4 faceColor : COLOR; 105 | fixed4 outlineColor : COLOR1; 106 | float4 texcoord0 : TEXCOORD0; // Texture UV, Mask UV 107 | half4 param : TEXCOORD1; // Scale(x), BiasIn(y), BiasOut(z), Bias(w) 108 | half4 mask : TEXCOORD2; // Position in clip space(xy), Softness(zw) 109 | #if (UNDERLAY_ON | UNDERLAY_INNER) 110 | float4 texcoord1 : TEXCOORD3; // Texture UV, alpha, reserved 111 | half2 underlayParam : TEXCOORD4; // Scale(x), Bias(y) 112 | #endif 113 | }; 114 | 115 | 116 | pixel_t VertShader(vertex_t input) 117 | { 118 | float bold = step(input.texcoord1.y, 0); 119 | 120 | float4 vert = input.vertex; 121 | vert.x += _VertexOffsetX; 122 | vert.y += _VertexOffsetY; 123 | float4 vPosition = UnityObjectToClipPos(vert); 124 | 125 | float2 pixelSize = vPosition.w; 126 | pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); 127 | 128 | float scale = rsqrt(dot(pixelSize, pixelSize)); 129 | scale *= abs(input.texcoord1.y) * _GradientScale * 1.5; 130 | if(UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); 131 | 132 | float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; 133 | weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; 134 | 135 | float layerScale = scale; 136 | 137 | scale /= 1 + (_OutlineSoftness * _ScaleRatioA * scale); 138 | float bias = (0.5 - weight) * scale - 0.5; 139 | float outline = _OutlineWidth * _ScaleRatioA * 0.5 * scale; 140 | 141 | float opacity = input.color.a; 142 | #if (UNDERLAY_ON | UNDERLAY_INNER) 143 | opacity = 1.0; 144 | #endif 145 | 146 | fixed4 faceColor = fixed4(input.color.rgb, opacity) * _FaceColor; 147 | faceColor.rgb *= faceColor.a; 148 | 149 | fixed4 outlineColor = _OutlineColor; 150 | outlineColor.a *= opacity; 151 | outlineColor.rgb *= outlineColor.a; 152 | outlineColor = lerp(faceColor, outlineColor, sqrt(min(1.0, (outline * 2)))); 153 | 154 | #if (UNDERLAY_ON | UNDERLAY_INNER) 155 | 156 | layerScale /= 1 + ((_UnderlaySoftness * _ScaleRatioC) * layerScale); 157 | float layerBias = (.5 - weight) * layerScale - .5 - ((_UnderlayDilate * _ScaleRatioC) * .5 * layerScale); 158 | 159 | float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; 160 | float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; 161 | float2 layerOffset = float2(x, y); 162 | #endif 163 | 164 | // Generate UV for the Masking Texture 165 | float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); 166 | float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); 167 | 168 | // Structure for pixel shader 169 | pixel_t output = { 170 | vPosition, 171 | faceColor, 172 | outlineColor, 173 | float4(input.texcoord0.x, input.texcoord0.y, maskUV.x, maskUV.y), 174 | half4(scale, bias - outline, bias + outline, bias), 175 | half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)), 176 | #if (UNDERLAY_ON | UNDERLAY_INNER) 177 | float4(input.texcoord0 + layerOffset, input.color.a, 0), 178 | half2(layerScale, layerBias), 179 | #endif 180 | }; 181 | 182 | return output; 183 | } 184 | 185 | 186 | // PIXEL SHADER 187 | fixed4 PixShader(pixel_t input) : SV_Target 188 | { 189 | half d = tex2D(_MainTex, input.texcoord0.xy).a * input.param.x; 190 | half4 c = input.faceColor * saturate(d - input.param.w); 191 | 192 | #ifdef OUTLINE_ON 193 | c = lerp(input.outlineColor, input.faceColor, saturate(d - input.param.z)); 194 | c *= saturate(d - input.param.y); 195 | #endif 196 | 197 | #if UNDERLAY_ON 198 | d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; 199 | c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * saturate(d - input.underlayParam.y) * (1 - c.a); 200 | #endif 201 | 202 | #if UNDERLAY_INNER 203 | half sd = saturate(d - input.param.z); 204 | d = tex2D(_MainTex, input.texcoord1.xy).a * input.underlayParam.x; 205 | c += float4(_UnderlayColor.rgb * _UnderlayColor.a, _UnderlayColor.a) * (1 - saturate(d - input.underlayParam.y)) * sd * (1 - c.a); 206 | #endif 207 | 208 | // Alternative implementation to UnityGet2DClipping with support for softness. 209 | #if UNITY_UI_CLIP_RECT 210 | half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); 211 | c *= m.x * m.y; 212 | #endif 213 | 214 | #if (UNDERLAY_ON | UNDERLAY_INNER) 215 | c *= input.texcoord1.z; 216 | #endif 217 | 218 | #if UNITY_UI_ALPHACLIP 219 | clip(c.a - 0.001); 220 | #endif 221 | 222 | return c; 223 | } 224 | ENDCG 225 | } 226 | } 227 | 228 | CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" 229 | } 230 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF-Mobile.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe393ace9b354375a9cb14cdbbc28be4 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface-Mobile.shader: -------------------------------------------------------------------------------- 1 | // Simplified version of the SDF Surface shader : 2 | // - No support for Bevel, Bump or envmap 3 | // - Diffuse only lighting 4 | // - Fully supports only 1 directional light. Other lights can affect it, but it will be per-vertex/SH. 5 | 6 | Shader "TextMeshPro/Mobile/Distance Field (Surface)" { 7 | 8 | Properties { 9 | _FaceTex ("Fill Texture", 2D) = "white" {} 10 | _FaceColor ("Fill Color", Color) = (1,1,1,1) 11 | _FaceDilate ("Face Dilate", Range(-1,1)) = 0 12 | 13 | _OutlineColor ("Outline Color", Color) = (0,0,0,1) 14 | _OutlineTex ("Outline Texture", 2D) = "white" {} 15 | _OutlineWidth ("Outline Thickness", Range(0, 1)) = 0 16 | _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 17 | 18 | _GlowColor ("Color", Color) = (0, 1, 0, 0.5) 19 | _GlowOffset ("Offset", Range(-1,1)) = 0 20 | _GlowInner ("Inner", Range(0,1)) = 0.05 21 | _GlowOuter ("Outer", Range(0,1)) = 0.05 22 | _GlowPower ("Falloff", Range(1, 0)) = 0.75 23 | 24 | _WeightNormal ("Weight Normal", float) = 0 25 | _WeightBold ("Weight Bold", float) = 0.5 26 | 27 | // Should not be directly exposed to the user 28 | _ShaderFlags ("Flags", float) = 0 29 | _ScaleRatioA ("Scale RatioA", float) = 1 30 | _ScaleRatioB ("Scale RatioB", float) = 1 31 | _ScaleRatioC ("Scale RatioC", float) = 1 32 | 33 | _MainTex ("Font Atlas", 2D) = "white" {} 34 | _TextureWidth ("Texture Width", float) = 512 35 | _TextureHeight ("Texture Height", float) = 512 36 | _GradientScale ("Gradient Scale", float) = 5.0 37 | _ScaleX ("Scale X", float) = 1.0 38 | _ScaleY ("Scale Y", float) = 1.0 39 | _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 40 | 41 | _VertexOffsetX ("Vertex OffsetX", float) = 0 42 | _VertexOffsetY ("Vertex OffsetY", float) = 0 43 | 44 | //_MaskCoord ("Mask Coords", vector) = (0,0,0,0) 45 | //_MaskSoftness ("Mask Softness", float) = 0 46 | } 47 | 48 | SubShader { 49 | 50 | Tags { 51 | "Queue"="Transparent" 52 | "IgnoreProjector"="True" 53 | "RenderType"="Transparent" 54 | } 55 | 56 | LOD 300 57 | Cull [_CullMode] 58 | 59 | CGPROGRAM 60 | #pragma surface PixShader Lambert alpha:blend vertex:VertShader noforwardadd nolightmap nodirlightmap 61 | #pragma target 3.0 62 | #pragma shader_feature __ GLOW_ON 63 | 64 | #include "TMPro_Properties.cginc" 65 | #include "TMPro.cginc" 66 | 67 | half _FaceShininess; 68 | half _OutlineShininess; 69 | 70 | struct Input 71 | { 72 | fixed4 color : COLOR; 73 | float2 uv_MainTex; 74 | float2 uv2_FaceTex; 75 | float2 uv2_OutlineTex; 76 | float2 param; // Weight, Scale 77 | float3 viewDirEnv; 78 | }; 79 | 80 | #include "TMPro_Surface.cginc" 81 | 82 | ENDCG 83 | 84 | // Pass to render object as a shadow caster 85 | Pass 86 | { 87 | Name "Caster" 88 | Tags { "LightMode" = "ShadowCaster" } 89 | Offset 1, 1 90 | 91 | Fog {Mode Off} 92 | ZWrite On ZTest LEqual Cull Off 93 | 94 | CGPROGRAM 95 | #pragma vertex vert 96 | #pragma fragment frag 97 | #pragma multi_compile_shadowcaster 98 | #include "UnityCG.cginc" 99 | 100 | struct v2f { 101 | V2F_SHADOW_CASTER; 102 | float2 uv : TEXCOORD1; 103 | float2 uv2 : TEXCOORD3; 104 | float alphaClip : TEXCOORD2; 105 | }; 106 | 107 | uniform float4 _MainTex_ST; 108 | uniform float4 _OutlineTex_ST; 109 | float _OutlineWidth; 110 | float _FaceDilate; 111 | float _ScaleRatioA; 112 | 113 | v2f vert( appdata_base v ) 114 | { 115 | v2f o; 116 | TRANSFER_SHADOW_CASTER(o) 117 | o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); 118 | o.uv2 = TRANSFORM_TEX(v.texcoord, _OutlineTex); 119 | o.alphaClip = o.alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _FaceDilate * _ScaleRatioA) / 2; 120 | return o; 121 | } 122 | 123 | uniform sampler2D _MainTex; 124 | 125 | float4 frag(v2f i) : COLOR 126 | { 127 | fixed4 texcol = tex2D(_MainTex, i.uv).a; 128 | clip(texcol.a - i.alphaClip); 129 | SHADOW_CASTER_FRAGMENT(i) 130 | } 131 | ENDCG 132 | } 133 | } 134 | 135 | CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" 136 | } 137 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface-Mobile.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 85187c2149c549c5b33f0cdb02836b17 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface.shader: -------------------------------------------------------------------------------- 1 | Shader "TextMeshPro/Distance Field (Surface)" { 2 | 3 | Properties { 4 | _FaceTex ("Fill Texture", 2D) = "white" {} 5 | _FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0 6 | _FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0 7 | _FaceColor ("Fill Color", Color) = (1,1,1,1) 8 | _FaceDilate ("Face Dilate", Range(-1,1)) = 0 9 | 10 | _OutlineColor ("Outline Color", Color) = (0,0,0,1) 11 | _OutlineTex ("Outline Texture", 2D) = "white" {} 12 | _OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0 13 | _OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0 14 | _OutlineWidth ("Outline Thickness", Range(0, 1)) = 0 15 | _OutlineSoftness ("Outline Softness", Range(0,1)) = 0 16 | 17 | _Bevel ("Bevel", Range(0,1)) = 0.5 18 | _BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0 19 | _BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0 20 | _BevelClamp ("Bevel Clamp", Range(0,1)) = 0 21 | _BevelRoundness ("Bevel Roundness", Range(0,1)) = 0 22 | 23 | _BumpMap ("Normalmap", 2D) = "bump" {} 24 | _BumpOutline ("Bump Outline", Range(0,1)) = 0.5 25 | _BumpFace ("Bump Face", Range(0,1)) = 0.5 26 | 27 | _ReflectFaceColor ("Face Color", Color) = (0,0,0,1) 28 | _ReflectOutlineColor ("Outline Color", Color) = (0,0,0,1) 29 | _Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ } 30 | _EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0) 31 | _SpecColor ("Specular Color", Color) = (0,0,0,1) 32 | 33 | _FaceShininess ("Face Shininess", Range(0,1)) = 0 34 | _OutlineShininess ("Outline Shininess", Range(0,1)) = 0 35 | 36 | _GlowColor ("Color", Color) = (0, 1, 0, 0.5) 37 | _GlowOffset ("Offset", Range(-1,1)) = 0 38 | _GlowInner ("Inner", Range(0,1)) = 0.05 39 | _GlowOuter ("Outer", Range(0,1)) = 0.05 40 | _GlowPower ("Falloff", Range(1, 0)) = 0.75 41 | 42 | _WeightNormal ("Weight Normal", float) = 0 43 | _WeightBold ("Weight Bold", float) = 0.5 44 | 45 | // Should not be directly exposed to the user 46 | _ShaderFlags ("Flags", float) = 0 47 | _ScaleRatioA ("Scale RatioA", float) = 1 48 | _ScaleRatioB ("Scale RatioB", float) = 1 49 | _ScaleRatioC ("Scale RatioC", float) = 1 50 | 51 | _MainTex ("Font Atlas", 2D) = "white" {} 52 | _TextureWidth ("Texture Width", float) = 512 53 | _TextureHeight ("Texture Height", float) = 512 54 | _GradientScale ("Gradient Scale", float) = 5.0 55 | _ScaleX ("Scale X", float) = 1.0 56 | _ScaleY ("Scale Y", float) = 1.0 57 | _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 58 | 59 | _VertexOffsetX ("Vertex OffsetX", float) = 0 60 | _VertexOffsetY ("Vertex OffsetY", float) = 0 61 | //_MaskCoord ("Mask Coords", vector) = (0,0,0,0) 62 | //_MaskSoftness ("Mask Softness", float) = 0 63 | } 64 | 65 | SubShader { 66 | 67 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 68 | 69 | LOD 300 70 | Cull [_CullMode] 71 | 72 | CGPROGRAM 73 | #pragma surface PixShader BlinnPhong alpha:blend vertex:VertShader nolightmap nodirlightmap 74 | #pragma target 3.0 75 | #pragma shader_feature __ GLOW_ON 76 | #pragma glsl 77 | 78 | #include "TMPro_Properties.cginc" 79 | #include "TMPro.cginc" 80 | 81 | half _FaceShininess; 82 | half _OutlineShininess; 83 | 84 | struct Input 85 | { 86 | fixed4 color : COLOR; 87 | float2 uv_MainTex; 88 | float2 uv2_FaceTex; 89 | float2 uv2_OutlineTex; 90 | float2 param; // Weight, Scale 91 | float3 viewDirEnv; 92 | }; 93 | 94 | 95 | #define BEVEL_ON 1 96 | #include "TMPro_Surface.cginc" 97 | 98 | ENDCG 99 | 100 | // Pass to render object as a shadow caster 101 | Pass 102 | { 103 | Name "Caster" 104 | Tags { "LightMode" = "ShadowCaster" } 105 | Offset 1, 1 106 | 107 | Fog {Mode Off} 108 | ZWrite On 109 | ZTest LEqual 110 | Cull Off 111 | 112 | CGPROGRAM 113 | #pragma vertex vert 114 | #pragma fragment frag 115 | #pragma multi_compile_shadowcaster 116 | #include "UnityCG.cginc" 117 | 118 | struct v2f { 119 | V2F_SHADOW_CASTER; 120 | float2 uv : TEXCOORD1; 121 | float2 uv2 : TEXCOORD3; 122 | float alphaClip : TEXCOORD2; 123 | }; 124 | 125 | uniform float4 _MainTex_ST; 126 | uniform float4 _OutlineTex_ST; 127 | float _OutlineWidth; 128 | float _FaceDilate; 129 | float _ScaleRatioA; 130 | 131 | v2f vert( appdata_base v ) 132 | { 133 | v2f o; 134 | TRANSFER_SHADOW_CASTER(o) 135 | o.uv = TRANSFORM_TEX(v.texcoord, _MainTex); 136 | o.uv2 = TRANSFORM_TEX(v.texcoord, _OutlineTex); 137 | o.alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _FaceDilate * _ScaleRatioA) / 2; 138 | return o; 139 | } 140 | 141 | uniform sampler2D _MainTex; 142 | 143 | float4 frag(v2f i) : COLOR 144 | { 145 | fixed4 texcol = tex2D(_MainTex, i.uv).a; 146 | clip(texcol.a - i.alphaClip); 147 | SHADOW_CASTER_FRAGMENT(i) 148 | } 149 | ENDCG 150 | } 151 | } 152 | 153 | CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" 154 | } 155 | 156 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7ada0af4f174f0694ca6a487b8f543d 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF.shader: -------------------------------------------------------------------------------- 1 | Shader "TextMeshPro/Distance Field" { 2 | 3 | Properties { 4 | _FaceTex ("Face Texture", 2D) = "white" {} 5 | _FaceUVSpeedX ("Face UV Speed X", Range(-5, 5)) = 0.0 6 | _FaceUVSpeedY ("Face UV Speed Y", Range(-5, 5)) = 0.0 7 | _FaceColor ("Face Color", Color) = (1,1,1,1) 8 | _FaceDilate ("Face Dilate", Range(-1,1)) = 0 9 | 10 | _OutlineColor ("Outline Color", Color) = (0,0,0,1) 11 | _OutlineTex ("Outline Texture", 2D) = "white" {} 12 | _OutlineUVSpeedX ("Outline UV Speed X", Range(-5, 5)) = 0.0 13 | _OutlineUVSpeedY ("Outline UV Speed Y", Range(-5, 5)) = 0.0 14 | _OutlineWidth ("Outline Thickness", Range(0, 1)) = 0 15 | _OutlineSoftness ("Outline Softness", Range(-1,1)) = 0 16 | 17 | _Bevel ("Bevel", Range(0,1)) = 0.5 18 | _BevelOffset ("Bevel Offset", Range(-0.5,0.5)) = 0 19 | _BevelWidth ("Bevel Width", Range(-.5,0.5)) = 0 20 | _BevelClamp ("Bevel Clamp", Range(0,1)) = 0 21 | _BevelRoundness ("Bevel Roundness", Range(0,1)) = 0 22 | 23 | _LightAngle ("Light Angle", Range(0.0, 6.2831853)) = 3.1416 24 | _SpecularColor ("Specular", Color) = (1,1,1,1) 25 | _SpecularPower ("Specular", Range(0,4)) = 2.0 26 | _Reflectivity ("Reflectivity", Range(5.0,15.0)) = 10 27 | _Diffuse ("Diffuse", Range(0,1)) = 0.5 28 | _Ambient ("Ambient", Range(1,0)) = 0.5 29 | 30 | _BumpMap ("Normal map", 2D) = "bump" {} 31 | _BumpOutline ("Bump Outline", Range(0,1)) = 0 32 | _BumpFace ("Bump Face", Range(0,1)) = 0 33 | 34 | _ReflectFaceColor ("Reflection Color", Color) = (0,0,0,1) 35 | _ReflectOutlineColor("Reflection Color", Color) = (0,0,0,1) 36 | _Cube ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ } 37 | _EnvMatrixRotation ("Texture Rotation", vector) = (0, 0, 0, 0) 38 | 39 | 40 | _UnderlayColor ("Border Color", Color) = (0,0,0, 0.5) 41 | _UnderlayOffsetX ("Border OffsetX", Range(-1,1)) = 0 42 | _UnderlayOffsetY ("Border OffsetY", Range(-1,1)) = 0 43 | _UnderlayDilate ("Border Dilate", Range(-1,1)) = 0 44 | _UnderlaySoftness ("Border Softness", Range(0,1)) = 0 45 | 46 | _GlowColor ("Color", Color) = (0, 1, 0, 0.5) 47 | _GlowOffset ("Offset", Range(-1,1)) = 0 48 | _GlowInner ("Inner", Range(0,1)) = 0.05 49 | _GlowOuter ("Outer", Range(0,1)) = 0.05 50 | _GlowPower ("Falloff", Range(1, 0)) = 0.75 51 | 52 | _WeightNormal ("Weight Normal", float) = 0 53 | _WeightBold ("Weight Bold", float) = 0.5 54 | 55 | _ShaderFlags ("Flags", float) = 0 56 | _ScaleRatioA ("Scale RatioA", float) = 1 57 | _ScaleRatioB ("Scale RatioB", float) = 1 58 | _ScaleRatioC ("Scale RatioC", float) = 1 59 | 60 | _MainTex ("Font Atlas", 2D) = "white" {} 61 | _TextureWidth ("Texture Width", float) = 512 62 | _TextureHeight ("Texture Height", float) = 512 63 | _GradientScale ("Gradient Scale", float) = 5.0 64 | _ScaleX ("Scale X", float) = 1.0 65 | _ScaleY ("Scale Y", float) = 1.0 66 | _PerspectiveFilter ("Perspective Correction", Range(0, 1)) = 0.875 67 | 68 | _VertexOffsetX ("Vertex OffsetX", float) = 0 69 | _VertexOffsetY ("Vertex OffsetY", float) = 0 70 | 71 | _MaskCoord ("Mask Coordinates", vector) = (0, 0, 32767, 32767) 72 | _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) 73 | _MaskSoftnessX ("Mask SoftnessX", float) = 0 74 | _MaskSoftnessY ("Mask SoftnessY", float) = 0 75 | 76 | _StencilComp ("Stencil Comparison", Float) = 8 77 | _Stencil ("Stencil ID", Float) = 0 78 | _StencilOp ("Stencil Operation", Float) = 0 79 | _StencilWriteMask ("Stencil Write Mask", Float) = 255 80 | _StencilReadMask ("Stencil Read Mask", Float) = 255 81 | 82 | _ColorMask ("Color Mask", Float) = 15 83 | } 84 | 85 | SubShader { 86 | 87 | Tags 88 | { 89 | "Queue"="Transparent" 90 | "IgnoreProjector"="True" 91 | "RenderType"="Transparent" 92 | } 93 | 94 | Stencil 95 | { 96 | Ref [_Stencil] 97 | Comp [_StencilComp] 98 | Pass [_StencilOp] 99 | ReadMask [_StencilReadMask] 100 | WriteMask [_StencilWriteMask] 101 | } 102 | 103 | Cull [_CullMode] 104 | ZWrite Off 105 | Lighting Off 106 | Fog { Mode Off } 107 | ZTest [unity_GUIZTestMode] 108 | Blend One OneMinusSrcAlpha 109 | ColorMask [_ColorMask] 110 | 111 | Pass { 112 | CGPROGRAM 113 | #pragma target 3.0 114 | #pragma vertex VertShader 115 | #pragma fragment PixShader 116 | #pragma shader_feature __ BEVEL_ON 117 | #pragma shader_feature __ UNDERLAY_ON UNDERLAY_INNER 118 | #pragma shader_feature __ GLOW_ON 119 | 120 | #pragma multi_compile __ UNITY_UI_CLIP_RECT 121 | #pragma multi_compile __ UNITY_UI_ALPHACLIP 122 | 123 | 124 | #include "UnityCG.cginc" 125 | #include "UnityUI.cginc" 126 | #include "TMPro_Properties.cginc" 127 | #include "TMPro.cginc" 128 | 129 | struct vertex_t { 130 | float4 position : POSITION; 131 | float3 normal : NORMAL; 132 | fixed4 color : COLOR; 133 | float2 texcoord0 : TEXCOORD0; 134 | float2 texcoord1 : TEXCOORD1; 135 | }; 136 | 137 | 138 | struct pixel_t { 139 | float4 position : SV_POSITION; 140 | fixed4 color : COLOR; 141 | float2 atlas : TEXCOORD0; // Atlas 142 | float4 param : TEXCOORD1; // alphaClip, scale, bias, weight 143 | float4 mask : TEXCOORD2; // Position in object space(xy), pixel Size(zw) 144 | float3 viewDir : TEXCOORD3; 145 | 146 | #if (UNDERLAY_ON || UNDERLAY_INNER) 147 | float4 texcoord2 : TEXCOORD4; // u,v, scale, bias 148 | fixed4 underlayColor : COLOR1; 149 | #endif 150 | float4 textures : TEXCOORD5; 151 | }; 152 | 153 | // Used by Unity internally to handle Texture Tiling and Offset. 154 | float4 _FaceTex_ST; 155 | float4 _OutlineTex_ST; 156 | 157 | pixel_t VertShader(vertex_t input) 158 | { 159 | float bold = step(input.texcoord1.y, 0); 160 | 161 | float4 vert = input.position; 162 | vert.x += _VertexOffsetX; 163 | vert.y += _VertexOffsetY; 164 | 165 | float4 vPosition = UnityObjectToClipPos(vert); 166 | 167 | float2 pixelSize = vPosition.w; 168 | pixelSize /= float2(_ScaleX, _ScaleY) * abs(mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy)); 169 | float scale = rsqrt(dot(pixelSize, pixelSize)); 170 | scale *= abs(input.texcoord1.y) * _GradientScale * 1.5; 171 | if (UNITY_MATRIX_P[3][3] == 0) scale = lerp(abs(scale) * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(input.normal.xyz), normalize(WorldSpaceViewDir(vert))))); 172 | 173 | float weight = lerp(_WeightNormal, _WeightBold, bold) / 4.0; 174 | weight = (weight + _FaceDilate) * _ScaleRatioA * 0.5; 175 | 176 | float bias =(.5 - weight) + (.5 / scale); 177 | 178 | float alphaClip = (1.0 - _OutlineWidth*_ScaleRatioA - _OutlineSoftness*_ScaleRatioA); 179 | 180 | #if GLOW_ON 181 | alphaClip = min(alphaClip, 1.0 - _GlowOffset * _ScaleRatioB - _GlowOuter * _ScaleRatioB); 182 | #endif 183 | 184 | alphaClip = alphaClip / 2.0 - ( .5 / scale) - weight; 185 | 186 | #if (UNDERLAY_ON || UNDERLAY_INNER) 187 | float4 underlayColor = _UnderlayColor; 188 | underlayColor.rgb *= underlayColor.a; 189 | 190 | float bScale = scale; 191 | bScale /= 1 + ((_UnderlaySoftness*_ScaleRatioC) * bScale); 192 | float bBias = (0.5 - weight) * bScale - 0.5 - ((_UnderlayDilate * _ScaleRatioC) * 0.5 * bScale); 193 | 194 | float x = -(_UnderlayOffsetX * _ScaleRatioC) * _GradientScale / _TextureWidth; 195 | float y = -(_UnderlayOffsetY * _ScaleRatioC) * _GradientScale / _TextureHeight; 196 | float2 bOffset = float2(x, y); 197 | #endif 198 | 199 | // Generate UV for the Masking Texture 200 | float4 clampedRect = clamp(_ClipRect, -2e10, 2e10); 201 | float2 maskUV = (vert.xy - clampedRect.xy) / (clampedRect.zw - clampedRect.xy); 202 | 203 | // Support for texture tiling and offset 204 | float2 textureUV = UnpackUV(input.texcoord1.x); 205 | float2 faceUV = TRANSFORM_TEX(textureUV, _FaceTex); 206 | float2 outlineUV = TRANSFORM_TEX(textureUV, _OutlineTex); 207 | 208 | pixel_t output = { 209 | vPosition, 210 | input.color, 211 | input.texcoord0, 212 | float4(alphaClip, scale, bias, weight), 213 | half4(vert.xy * 2 - clampedRect.xy - clampedRect.zw, 0.25 / (0.25 * half2(_MaskSoftnessX, _MaskSoftnessY) + pixelSize.xy)), 214 | mul((float3x3)_EnvMatrix, _WorldSpaceCameraPos.xyz - mul(unity_ObjectToWorld, vert).xyz), 215 | #if (UNDERLAY_ON || UNDERLAY_INNER) 216 | float4(input.texcoord0 + bOffset, bScale, bBias), 217 | underlayColor, 218 | #endif 219 | float4(faceUV, outlineUV), 220 | }; 221 | 222 | return output; 223 | } 224 | 225 | 226 | fixed4 PixShader(pixel_t input) : SV_Target 227 | { 228 | float c = tex2D(_MainTex, input.atlas).a; 229 | 230 | #ifndef UNDERLAY_ON 231 | clip(c - input.param.x); 232 | #endif 233 | 234 | float scale = input.param.y; 235 | float bias = input.param.z; 236 | float weight = input.param.w; 237 | float sd = (bias - c) * scale; 238 | 239 | float outline = (_OutlineWidth * _ScaleRatioA) * scale; 240 | float softness = (_OutlineSoftness * _ScaleRatioA) * scale; 241 | 242 | half4 faceColor = _FaceColor; 243 | half4 outlineColor = _OutlineColor; 244 | 245 | faceColor.rgb *= input.color.rgb; 246 | 247 | faceColor *= tex2D(_FaceTex, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y); 248 | outlineColor *= tex2D(_OutlineTex, input.textures.zw + float2(_OutlineUVSpeedX, _OutlineUVSpeedY) * _Time.y); 249 | 250 | faceColor = GetColor(sd, faceColor, outlineColor, outline, softness); 251 | 252 | #if BEVEL_ON 253 | float3 dxy = float3(0.5 / _TextureWidth, 0.5 / _TextureHeight, 0); 254 | float3 n = GetSurfaceNormal(input.atlas, weight, dxy); 255 | 256 | float3 bump = UnpackNormal(tex2D(_BumpMap, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y)).xyz; 257 | bump *= lerp(_BumpFace, _BumpOutline, saturate(sd + outline * 0.5)); 258 | n = normalize(n- bump); 259 | 260 | float3 light = normalize(float3(sin(_LightAngle), cos(_LightAngle), -1.0)); 261 | 262 | float3 col = GetSpecular(n, light); 263 | faceColor.rgb += col*faceColor.a; 264 | faceColor.rgb *= 1-(dot(n, light)*_Diffuse); 265 | faceColor.rgb *= lerp(_Ambient, 1, n.z*n.z); 266 | 267 | fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDir, -n)); 268 | faceColor.rgb += reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a; 269 | #endif 270 | 271 | #if UNDERLAY_ON 272 | float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z; 273 | faceColor += input.underlayColor * saturate(d - input.texcoord2.w) * (1 - faceColor.a); 274 | #endif 275 | 276 | #if UNDERLAY_INNER 277 | float d = tex2D(_MainTex, input.texcoord2.xy).a * input.texcoord2.z; 278 | faceColor += input.underlayColor * (1 - saturate(d - input.texcoord2.w)) * saturate(1 - sd) * (1 - faceColor.a); 279 | #endif 280 | 281 | #if GLOW_ON 282 | float4 glowColor = GetGlowColor(sd, scale); 283 | faceColor.rgb += glowColor.rgb * glowColor.a; 284 | #endif 285 | 286 | // Alternative implementation to UnityGet2DClipping with support for softness. 287 | #if UNITY_UI_CLIP_RECT 288 | half2 m = saturate((_ClipRect.zw - _ClipRect.xy - abs(input.mask.xy)) * input.mask.zw); 289 | faceColor *= m.x * m.y; 290 | #endif 291 | 292 | #if UNITY_UI_ALPHACLIP 293 | clip(faceColor.a - 0.001); 294 | #endif 295 | 296 | return faceColor * input.color.a; 297 | } 298 | 299 | ENDCG 300 | } 301 | } 302 | 303 | Fallback "TextMeshPro/Mobile/Distance Field" 304 | CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI" 305 | } 306 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_SDF.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 68e6db2ebdc24f95958faec2be5558d6 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_Sprite.shader: -------------------------------------------------------------------------------- 1 | Shader "TextMeshPro/Sprite" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Sprite Texture", 2D) = "white" {} 6 | _Color ("Tint", Color) = (1,1,1,1) 7 | 8 | _StencilComp ("Stencil Comparison", Float) = 8 9 | _Stencil ("Stencil ID", Float) = 0 10 | _StencilOp ("Stencil Operation", Float) = 0 11 | _StencilWriteMask ("Stencil Write Mask", Float) = 255 12 | _StencilReadMask ("Stencil Read Mask", Float) = 255 13 | 14 | _ColorMask ("Color Mask", Float) = 15 15 | _ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767) 16 | 17 | [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 18 | } 19 | 20 | SubShader 21 | { 22 | Tags 23 | { 24 | "Queue"="Transparent" 25 | "IgnoreProjector"="True" 26 | "RenderType"="Transparent" 27 | "PreviewType"="Plane" 28 | "CanUseSpriteAtlas"="True" 29 | } 30 | 31 | Stencil 32 | { 33 | Ref [_Stencil] 34 | Comp [_StencilComp] 35 | Pass [_StencilOp] 36 | ReadMask [_StencilReadMask] 37 | WriteMask [_StencilWriteMask] 38 | } 39 | 40 | Cull Off 41 | Lighting Off 42 | ZWrite Off 43 | ZTest [unity_GUIZTestMode] 44 | Blend SrcAlpha OneMinusSrcAlpha 45 | ColorMask [_ColorMask] 46 | 47 | Pass 48 | { 49 | CGPROGRAM 50 | #pragma vertex vert 51 | #pragma fragment frag 52 | 53 | #include "UnityCG.cginc" 54 | #include "UnityUI.cginc" 55 | 56 | #pragma multi_compile __ UNITY_UI_CLIP_RECT 57 | #pragma multi_compile __ UNITY_UI_ALPHACLIP 58 | 59 | struct appdata_t 60 | { 61 | float4 vertex : POSITION; 62 | float4 color : COLOR; 63 | float2 texcoord : TEXCOORD0; 64 | }; 65 | 66 | struct v2f 67 | { 68 | float4 vertex : SV_POSITION; 69 | fixed4 color : COLOR; 70 | half2 texcoord : TEXCOORD0; 71 | float4 worldPosition : TEXCOORD1; 72 | }; 73 | 74 | fixed4 _Color; 75 | fixed4 _TextureSampleAdd; 76 | float4 _ClipRect; 77 | 78 | v2f vert(appdata_t IN) 79 | { 80 | v2f OUT; 81 | OUT.worldPosition = IN.vertex; 82 | OUT.vertex = UnityObjectToClipPos(OUT.worldPosition); 83 | 84 | OUT.texcoord = IN.texcoord; 85 | 86 | #ifdef UNITY_HALF_TEXEL_OFFSET 87 | OUT.vertex.xy += (_ScreenParams.zw-1.0)*float2(-1,1); 88 | #endif 89 | 90 | OUT.color = IN.color * _Color; 91 | return OUT; 92 | } 93 | 94 | sampler2D _MainTex; 95 | 96 | fixed4 frag(v2f IN) : SV_Target 97 | { 98 | half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color; 99 | 100 | #if UNITY_UI_CLIP_RECT 101 | color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect); 102 | #endif 103 | 104 | #ifdef UNITY_UI_ALPHACLIP 105 | clip (color.a - 0.001); 106 | #endif 107 | 108 | return color; 109 | } 110 | ENDCG 111 | } 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMP_Sprite.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf81c85f95fe47e1a27f6ae460cf182c 3 | timeCreated: 1450517184 4 | licenseType: Pro 5 | ShaderImporter: 6 | defaultTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMPro.cginc: -------------------------------------------------------------------------------- 1 | float2 UnpackUV(float uv) 2 | { 3 | float2 output; 4 | output.x = floor(uv / 4096); 5 | output.y = uv - 4096 * output.x; 6 | 7 | return output * 0.001953125; 8 | } 9 | 10 | fixed4 GetColor(half d, fixed4 faceColor, fixed4 outlineColor, half outline, half softness) 11 | { 12 | half faceAlpha = 1-saturate((d - outline * 0.5 + softness * 0.5) / (1.0 + softness)); 13 | half outlineAlpha = saturate((d + outline * 0.5)) * sqrt(min(1.0, outline)); 14 | 15 | faceColor.rgb *= faceColor.a; 16 | outlineColor.rgb *= outlineColor.a; 17 | 18 | faceColor = lerp(faceColor, outlineColor, outlineAlpha); 19 | 20 | faceColor *= faceAlpha; 21 | 22 | return faceColor; 23 | } 24 | 25 | float3 GetSurfaceNormal(float4 h, float bias) 26 | { 27 | bool raisedBevel = step(1, fmod(_ShaderFlags, 2)); 28 | 29 | h += bias+_BevelOffset; 30 | 31 | float bevelWidth = max(.01, _OutlineWidth+_BevelWidth); 32 | 33 | // Track outline 34 | h -= .5; 35 | h /= bevelWidth; 36 | h = saturate(h+.5); 37 | 38 | if(raisedBevel) h = 1 - abs(h*2.0 - 1.0); 39 | h = lerp(h, sin(h*3.141592/2.0), _BevelRoundness); 40 | h = min(h, 1.0-_BevelClamp); 41 | h *= _Bevel * bevelWidth * _GradientScale * -2.0; 42 | 43 | float3 va = normalize(float3(1.0, 0.0, h.y - h.x)); 44 | float3 vb = normalize(float3(0.0, -1.0, h.w - h.z)); 45 | 46 | return cross(va, vb); 47 | } 48 | 49 | float3 GetSurfaceNormal(float2 uv, float bias, float3 delta) 50 | { 51 | // Read "height field" 52 | float4 h = {tex2D(_MainTex, uv - delta.xz).a, 53 | tex2D(_MainTex, uv + delta.xz).a, 54 | tex2D(_MainTex, uv - delta.zy).a, 55 | tex2D(_MainTex, uv + delta.zy).a}; 56 | 57 | return GetSurfaceNormal(h, bias); 58 | } 59 | 60 | float3 GetSpecular(float3 n, float3 l) 61 | { 62 | float spec = pow(max(0.0, dot(n, l)), _Reflectivity); 63 | return _SpecularColor.rgb * spec * _SpecularPower; 64 | } 65 | 66 | float4 GetGlowColor(float d, float scale) 67 | { 68 | float glow = d - (_GlowOffset*_ScaleRatioB) * 0.5 * scale; 69 | float t = lerp(_GlowInner, (_GlowOuter * _ScaleRatioB), step(0.0, glow)) * 0.5 * scale; 70 | glow = saturate(abs(glow/(1.0 + t))); 71 | glow = 1.0-pow(glow, _GlowPower); 72 | glow *= sqrt(min(1.0, t)); // Fade off glow thinner than 1 screen pixel 73 | return float4(_GlowColor.rgb, saturate(_GlowColor.a * glow * 2)); 74 | } 75 | 76 | float4 BlendARGB(float4 overlying, float4 underlying) 77 | { 78 | overlying.rgb *= overlying.a; 79 | underlying.rgb *= underlying.a; 80 | float3 blended = overlying.rgb + ((1-overlying.a)*underlying.rgb); 81 | float alpha = underlying.a + (1-underlying.a)*overlying.a; 82 | return float4(blended, alpha); 83 | } 84 | 85 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMPro.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 407bc68d299748449bbf7f48ee690f8d 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMPro_Properties.cginc: -------------------------------------------------------------------------------- 1 | // UI Editable properties 2 | uniform sampler2D _FaceTex; // Alpha : Signed Distance 3 | uniform float _FaceUVSpeedX; 4 | uniform float _FaceUVSpeedY; 5 | uniform fixed4 _FaceColor; // RGBA : Color + Opacity 6 | uniform float _FaceDilate; // v[ 0, 1] 7 | uniform float _OutlineSoftness; // v[ 0, 1] 8 | 9 | uniform sampler2D _OutlineTex; // RGBA : Color + Opacity 10 | uniform float _OutlineUVSpeedX; 11 | uniform float _OutlineUVSpeedY; 12 | uniform fixed4 _OutlineColor; // RGBA : Color + Opacity 13 | uniform float _OutlineWidth; // v[ 0, 1] 14 | 15 | uniform float _Bevel; // v[ 0, 1] 16 | uniform float _BevelOffset; // v[-1, 1] 17 | uniform float _BevelWidth; // v[-1, 1] 18 | uniform float _BevelClamp; // v[ 0, 1] 19 | uniform float _BevelRoundness; // v[ 0, 1] 20 | 21 | uniform sampler2D _BumpMap; // Normal map 22 | uniform float _BumpOutline; // v[ 0, 1] 23 | uniform float _BumpFace; // v[ 0, 1] 24 | 25 | uniform samplerCUBE _Cube; // Cube / sphere map 26 | uniform fixed4 _ReflectFaceColor; // RGB intensity 27 | uniform fixed4 _ReflectOutlineColor; 28 | //uniform float _EnvTiltX; // v[-1, 1] 29 | //uniform float _EnvTiltY; // v[-1, 1] 30 | uniform float3 _EnvMatrixRotation; 31 | uniform float4x4 _EnvMatrix; 32 | 33 | uniform fixed4 _SpecularColor; // RGB intensity 34 | uniform float _LightAngle; // v[ 0,Tau] 35 | uniform float _SpecularPower; // v[ 0, 1] 36 | uniform float _Reflectivity; // v[ 5, 15] 37 | uniform float _Diffuse; // v[ 0, 1] 38 | uniform float _Ambient; // v[ 0, 1] 39 | 40 | uniform fixed4 _UnderlayColor; // RGBA : Color + Opacity 41 | uniform float _UnderlayOffsetX; // v[-1, 1] 42 | uniform float _UnderlayOffsetY; // v[-1, 1] 43 | uniform float _UnderlayDilate; // v[-1, 1] 44 | uniform float _UnderlaySoftness; // v[ 0, 1] 45 | 46 | uniform fixed4 _GlowColor; // RGBA : Color + Intesity 47 | uniform float _GlowOffset; // v[-1, 1] 48 | uniform float _GlowOuter; // v[ 0, 1] 49 | uniform float _GlowInner; // v[ 0, 1] 50 | uniform float _GlowPower; // v[ 1, 1/(1+4*4)] 51 | 52 | // API Editable properties 53 | uniform float _ShaderFlags; 54 | uniform float _WeightNormal; 55 | uniform float _WeightBold; 56 | 57 | uniform float _ScaleRatioA; 58 | uniform float _ScaleRatioB; 59 | uniform float _ScaleRatioC; 60 | 61 | uniform float _VertexOffsetX; 62 | uniform float _VertexOffsetY; 63 | 64 | //uniform float _UseClipRect; 65 | uniform float _MaskID; 66 | uniform sampler2D _MaskTex; 67 | uniform float4 _MaskCoord; 68 | uniform float4 _ClipRect; // bottom left(x,y) : top right(z,w) 69 | //uniform float _MaskWipeControl; 70 | //uniform float _MaskEdgeSoftness; 71 | //uniform fixed4 _MaskEdgeColor; 72 | //uniform bool _MaskInverse; 73 | 74 | uniform float _MaskSoftnessX; 75 | uniform float _MaskSoftnessY; 76 | 77 | // Font Atlas properties 78 | uniform sampler2D _MainTex; 79 | uniform float _TextureWidth; 80 | uniform float _TextureHeight; 81 | uniform float _GradientScale; 82 | uniform float _ScaleX; 83 | uniform float _ScaleY; 84 | uniform float _PerspectiveFilter; 85 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMPro_Properties.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3997e2241185407d80309a82f9148466 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMPro_Surface.cginc: -------------------------------------------------------------------------------- 1 | void VertShader(inout appdata_full v, out Input data) 2 | { 3 | v.vertex.x += _VertexOffsetX; 4 | v.vertex.y += _VertexOffsetY; 5 | 6 | UNITY_INITIALIZE_OUTPUT(Input, data); 7 | 8 | float bold = step(v.texcoord1.y, 0); 9 | 10 | // Generate normal for backface 11 | float3 view = ObjSpaceViewDir(v.vertex); 12 | v.normal *= sign(dot(v.normal, view)); 13 | 14 | #if USE_DERIVATIVE 15 | data.param.y = 1; 16 | #else 17 | float4 vert = v.vertex; 18 | float4 vPosition = UnityObjectToClipPos(vert); 19 | float2 pixelSize = vPosition.w; 20 | 21 | pixelSize /= float2(_ScaleX, _ScaleY) * mul((float2x2)UNITY_MATRIX_P, _ScreenParams.xy); 22 | float scale = rsqrt(dot(pixelSize, pixelSize)); 23 | scale *= abs(v.texcoord1.y) * _GradientScale * 1.5; 24 | scale = lerp(scale * (1 - _PerspectiveFilter), scale, abs(dot(UnityObjectToWorldNormal(v.normal.xyz), normalize(WorldSpaceViewDir(vert))))); 25 | data.param.y = scale; 26 | #endif 27 | 28 | //float opacity = v.color.a; 29 | 30 | data.param.x = (lerp(_WeightNormal, _WeightBold, bold) / 4.0 + _FaceDilate) * _ScaleRatioA * 0.5; // 31 | 32 | v.texcoord1.xy = UnpackUV(v.texcoord1.x); 33 | data.viewDirEnv = mul((float3x3)_EnvMatrix, WorldSpaceViewDir(v.vertex)); 34 | } 35 | 36 | void PixShader(Input input, inout SurfaceOutput o) 37 | { 38 | 39 | #if USE_DERIVATIVE | BEVEL_ON 40 | float3 delta = float3(1.0 / _TextureWidth, 1.0 / _TextureHeight, 0.0); 41 | 42 | float4 smp4x = { tex2D(_MainTex, input.uv_MainTex - delta.xz).a, 43 | tex2D(_MainTex, input.uv_MainTex + delta.xz).a, 44 | tex2D(_MainTex, input.uv_MainTex - delta.zy).a, 45 | tex2D(_MainTex, input.uv_MainTex + delta.zy).a }; 46 | #endif 47 | 48 | #if USE_DERIVATIVE 49 | // Screen space scaling reciprocal with anisotropic correction 50 | float2 edgeNormal = Normalize(float2(smp4x.x - smp4x.y, smp4x.z - smp4x.w)); 51 | float2 res = float2(_TextureWidth * input.param.y, _TextureHeight); 52 | float2 tdx = ddx(input.uv_MainTex)*res; 53 | float2 tdy = ddy(input.uv_MainTex)*res; 54 | float lx = length(tdx); 55 | float ly = length(tdy); 56 | float s = sqrt(min(lx, ly) / max(lx, ly)); 57 | s = lerp(1, s, abs(dot(normalize(tdx + tdy), edgeNormal))); 58 | float scale = rsqrt(abs(tdx.x * tdy.y - tdx.y * tdy.x)) * (_GradientScale * 2) * s; 59 | #else 60 | float scale = input.param.y; 61 | #endif 62 | 63 | // Signed distance 64 | float c = tex2D(_MainTex, input.uv_MainTex).a; 65 | float sd = (.5 - c - input.param.x) * scale + .5; 66 | float outline = _OutlineWidth*_ScaleRatioA * scale; 67 | float softness = _OutlineSoftness*_ScaleRatioA * scale; 68 | 69 | // Color & Alpha 70 | float4 faceColor = _FaceColor; 71 | float4 outlineColor = _OutlineColor; 72 | faceColor *= input.color; 73 | outlineColor.a *= input.color.a; 74 | faceColor *= tex2D(_FaceTex, float2(input.uv2_FaceTex.x + _FaceUVSpeedX * _Time.y, input.uv2_FaceTex.y + _FaceUVSpeedY * _Time.y)); 75 | outlineColor *= tex2D(_OutlineTex, float2(input.uv2_OutlineTex.x + _OutlineUVSpeedX * _Time.y, input.uv2_OutlineTex.y + _OutlineUVSpeedY * _Time.y)); 76 | faceColor = GetColor(sd, faceColor, outlineColor, outline, softness); 77 | faceColor.rgb /= max(faceColor.a, 0.0001); 78 | 79 | 80 | #if BEVEL_ON 81 | // Face Normal 82 | float3 n = GetSurfaceNormal(smp4x, input.param.x); 83 | 84 | // Bumpmap 85 | float3 bump = UnpackNormal(tex2D(_BumpMap, input.uv2_FaceTex.xy)).xyz; 86 | bump *= lerp(_BumpFace, _BumpOutline, saturate(sd + outline * 0.5)); 87 | bump = lerp(float3(0, 0, 1), bump, faceColor.a); 88 | n = normalize(n - bump); 89 | 90 | // Cubemap reflection 91 | fixed4 reflcol = texCUBE(_Cube, reflect(input.viewDirEnv, mul((float3x3)unity_ObjectToWorld, n))); 92 | float3 emission = reflcol.rgb * lerp(_ReflectFaceColor.rgb, _ReflectOutlineColor.rgb, saturate(sd + outline * 0.5)) * faceColor.a; 93 | #else 94 | float3 n = float3(0, 0, -1); 95 | float3 emission = float3(0, 0, 0); 96 | #endif 97 | 98 | 99 | 100 | #if GLOW_ON 101 | float4 glowColor = GetGlowColor(sd, scale); 102 | glowColor.a *= input.color.a; 103 | emission += glowColor.rgb*glowColor.a; 104 | faceColor = BlendARGB(glowColor, faceColor); 105 | faceColor.rgb /= max(faceColor.a, 0.0001); 106 | #endif 107 | 108 | // Set Standard output structure 109 | o.Albedo = faceColor.rgb; 110 | o.Normal = -n; 111 | o.Emission = emission; 112 | o.Specular = lerp(_FaceShininess, _OutlineShininess, saturate(sd + outline * 0.5)); 113 | o.Gloss = 1; 114 | o.Alpha = faceColor.a; 115 | } 116 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Shaders/TMPro_Surface.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d930090c0cd643c7b55f19a38538c162 3 | ShaderImporter: 4 | defaultTextures: [] 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Sprite Assets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 512a49d95c0c4332bdd98131869c23c9 3 | folderAsset: yes 4 | timeCreated: 1441876896 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2103686 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 1 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: TextMeshPro/Sprite 10 | m_Shader: {fileID: 4800000, guid: cf81c85f95fe47e1a27f6ae460cf182c, type: 3} 11 | m_ShaderKeywords: UNITY_UI_CLIP_RECT 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _MainTex: 22 | m_Texture: {fileID: 2800000, guid: dffef66376be4fa480fb02b19edbe903, type: 3} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | m_Floats: 26 | - _ColorMask: 15 27 | - _Stencil: 0 28 | - _StencilComp: 8 29 | - _StencilOp: 0 30 | - _StencilReadMask: 255 31 | - _StencilWriteMask: 255 32 | - _UseUIAlphaClip: 0 33 | m_Colors: 34 | - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} 35 | - _Color: {r: 1, g: 1, b: 1, a: 1} 36 | --- !u!114 &11400000 37 | MonoBehaviour: 38 | m_ObjectHideFlags: 0 39 | m_PrefabParentObject: {fileID: 0} 40 | m_PrefabInternal: {fileID: 0} 41 | m_GameObject: {fileID: 0} 42 | m_Enabled: 1 43 | m_EditorHideFlags: 0 44 | m_Script: {fileID: 11500000, guid: 84a92b25f83d49b9bc132d206b370281, type: 3} 45 | m_Name: EmojiOne 46 | m_EditorClassIdentifier: 47 | hashCode: -1836805472 48 | material: {fileID: 2103686} 49 | materialHashCode: 0 50 | spriteSheet: {fileID: 2800000, guid: dffef66376be4fa480fb02b19edbe903, type: 3} 51 | spriteInfoList: 52 | - id: 0 53 | x: 0 54 | y: 384 55 | width: 128 56 | height: 128 57 | xOffset: 0 58 | yOffset: 115.6 59 | xAdvance: 128 60 | scale: 1 61 | name: Smiling face with smiling eyes 62 | hashCode: -1318250903 63 | unicode: 128522 64 | pivot: {x: 0.5, y: 0.5} 65 | sprite: {fileID: 0} 66 | - id: 1 67 | x: 128 68 | y: 384 69 | width: 128 70 | height: 128 71 | xOffset: 0 72 | yOffset: 115.6 73 | xAdvance: 128 74 | scale: 1 75 | name: 1f60b 76 | hashCode: 57188339 77 | unicode: 128523 78 | pivot: {x: 0.5, y: 0.5} 79 | sprite: {fileID: 0} 80 | - id: 2 81 | x: 256 82 | y: 384 83 | width: 128 84 | height: 128 85 | xOffset: 0 86 | yOffset: 115.6 87 | xAdvance: 128 88 | scale: 1 89 | name: 1f60d 90 | hashCode: 57188341 91 | unicode: 128525 92 | pivot: {x: 0.5, y: 0.5} 93 | sprite: {fileID: 0} 94 | - id: 3 95 | x: 384 96 | y: 384 97 | width: 128 98 | height: 128 99 | xOffset: 0 100 | yOffset: 115.6 101 | xAdvance: 128 102 | scale: 1 103 | name: 1f60e 104 | hashCode: 57188340 105 | unicode: 128526 106 | pivot: {x: 0.5, y: 0.5} 107 | sprite: {fileID: 0} 108 | - id: 4 109 | x: 0 110 | y: 256 111 | width: 128 112 | height: 128 113 | xOffset: 0 114 | yOffset: 115.6 115 | xAdvance: 128 116 | scale: 1 117 | name: Grinning face 118 | hashCode: -95541379 119 | unicode: 128512 120 | pivot: {x: 0.5, y: 0.5} 121 | sprite: {fileID: 0} 122 | - id: 5 123 | x: 128 124 | y: 256 125 | width: 128 126 | height: 128 127 | xOffset: 0 128 | yOffset: 115.6 129 | xAdvance: 128 130 | scale: 1 131 | name: 1f601 132 | hashCode: 57188256 133 | unicode: 128513 134 | pivot: {x: 0.5, y: 0.5} 135 | sprite: {fileID: 0} 136 | - id: 6 137 | x: 256 138 | y: 256 139 | width: 128 140 | height: 128 141 | xOffset: 0 142 | yOffset: 115.6 143 | xAdvance: 128 144 | scale: 1 145 | name: Face with tears of joy 146 | hashCode: 239522663 147 | unicode: 128514 148 | pivot: {x: 0.5, y: 0.5} 149 | sprite: {fileID: 0} 150 | - id: 7 151 | x: 384 152 | y: 256 153 | width: 128 154 | height: 128 155 | xOffset: 0 156 | yOffset: 115.6 157 | xAdvance: 128 158 | scale: 1 159 | name: 1f603 160 | hashCode: 57188258 161 | unicode: 128515 162 | pivot: {x: 0.5, y: 0.5} 163 | sprite: {fileID: 0} 164 | - id: 8 165 | x: 0 166 | y: 128 167 | width: 128 168 | height: 128 169 | xOffset: 0 170 | yOffset: 115.6 171 | xAdvance: 128 172 | scale: 1 173 | name: 1f604 174 | hashCode: 57188261 175 | unicode: 128516 176 | pivot: {x: 0.5, y: 0.5} 177 | sprite: {fileID: 0} 178 | - id: 9 179 | x: 128 180 | y: 128 181 | width: 128 182 | height: 128 183 | xOffset: 0 184 | yOffset: 115.6 185 | xAdvance: 128 186 | scale: 1 187 | name: 1f605 188 | hashCode: 57188260 189 | unicode: 128517 190 | pivot: {x: 0.5, y: 0.5} 191 | sprite: {fileID: 0} 192 | - id: 10 193 | x: 256 194 | y: 128 195 | width: 128 196 | height: 128 197 | xOffset: 0 198 | yOffset: 115.6 199 | xAdvance: 128 200 | scale: 1 201 | name: 1f606 202 | hashCode: 57188263 203 | unicode: 128518 204 | pivot: {x: 0.5, y: 0.5} 205 | sprite: {fileID: 0} 206 | - id: 11 207 | x: 384 208 | y: 128 209 | width: 128 210 | height: 128 211 | xOffset: 0 212 | yOffset: 115.6 213 | xAdvance: 128 214 | scale: 1 215 | name: 1f609 216 | hashCode: 57188264 217 | unicode: 128521 218 | pivot: {x: 0.5, y: 0.5} 219 | sprite: {fileID: 0} 220 | - id: 12 221 | x: 0 222 | y: 0 223 | width: 128 224 | height: 128 225 | xOffset: 0 226 | yOffset: 115.6 227 | xAdvance: 128 228 | scale: 1 229 | name: 1f618 230 | hashCode: 57188168 231 | unicode: 128536 232 | pivot: {x: 0.5, y: 0.5} 233 | sprite: {fileID: 0} 234 | - id: 13 235 | x: 128 236 | y: 0 237 | width: 128 238 | height: 128 239 | xOffset: 0 240 | yOffset: 115.6 241 | xAdvance: 128 242 | scale: 1 243 | name: 1f923 244 | hashCode: 57200239 245 | unicode: 129315 246 | pivot: {x: 0.5, y: 0.5} 247 | sprite: {fileID: 0} 248 | - id: 14 249 | x: 256 250 | y: 0 251 | width: 128 252 | height: 128 253 | xOffset: 0 254 | yOffset: 115.6 255 | xAdvance: 128 256 | scale: 1 257 | name: 263a 258 | hashCode: 1748406 259 | unicode: 9786 260 | pivot: {x: 0.5, y: 0.5} 261 | sprite: {fileID: 0} 262 | - id: 15 263 | x: 384 264 | y: 0 265 | width: 128 266 | height: 128 267 | xOffset: 0 268 | yOffset: 115.6 269 | xAdvance: 128 270 | scale: 1 271 | name: 2639 272 | hashCode: 1748462 273 | unicode: 9785 274 | pivot: {x: 0.5, y: 0.5} 275 | sprite: {fileID: 0} 276 | fallbackSpriteAssets: [] 277 | --- !u!21 &1369835458 278 | Material: 279 | serializedVersion: 6 280 | m_ObjectHideFlags: 1 281 | m_PrefabParentObject: {fileID: 0} 282 | m_PrefabInternal: {fileID: 0} 283 | m_Name: TextMeshPro/Sprite 284 | m_Shader: {fileID: 4800000, guid: cf81c85f95fe47e1a27f6ae460cf182c, type: 3} 285 | m_ShaderKeywords: 286 | m_LightmapFlags: 5 287 | m_EnableInstancingVariants: 0 288 | m_DoubleSidedGI: 0 289 | m_CustomRenderQueue: -1 290 | stringTagMap: {} 291 | disabledShaderPasses: [] 292 | m_SavedProperties: 293 | serializedVersion: 3 294 | m_TexEnvs: [] 295 | m_Floats: [] 296 | m_Colors: [] 297 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c41005c129ba4d66911b75229fd70b45 3 | timeCreated: 1480316912 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Style Sheets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4aecb92fff08436c8303b10eab8da368 3 | folderAsset: yes 4 | timeCreated: 1441876950 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: ab2114bdc8544297b417dfefe9f1e410, type: 3} 12 | m_Name: Default Style Sheet 13 | m_EditorClassIdentifier: 14 | m_StyleList: 15 | - m_Name: H1 16 | m_HashCode: 2425 17 | m_OpeningDefinition: <#40ff80>* 18 | m_ClosingDefinition: '*' 19 | m_OpeningTagArray: 3c00000073000000690000007a000000650000003d00000032000000650000006d0000003e0000003c000000620000003e0000003c000000230000003400000030000000660000006600000038000000300000003e0000002a000000 20 | m_ClosingTagArray: 2a0000003c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000 21 | - m_Name: Quote 22 | m_HashCode: 92254330 23 | m_OpeningDefinition: 24 | m_ClosingDefinition: 25 | m_OpeningTagArray: 3c000000690000003e0000003c00000073000000690000007a000000650000003d0000003700000035000000250000003e0000003c0000006d000000610000007200000067000000690000006e0000003d0000003100000030000000250000003e000000 26 | m_ClosingTagArray: 3c0000002f000000690000003e0000003c0000002f00000073000000690000007a000000650000003e0000003c0000002f00000077000000690000006400000074000000680000003e0000003c0000002f0000006d000000610000007200000067000000690000006e0000003e000000 27 | - m_Name: Link 28 | m_HashCode: 2687968 29 | m_OpeningDefinition: <#40a0ff> 30 | m_ClosingDefinition: 31 | m_OpeningTagArray: 3c000000750000003e0000003c000000230000003400000030000000610000003000000066000000660000003e0000003c0000006c000000690000006e0000006b0000003d0000002200000049000000440000005f0000003000000031000000220000003e000000 32 | m_ClosingTagArray: 3c0000002f000000750000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f0000006c000000690000006e0000006b0000003e000000 33 | - m_Name: Title 34 | m_HashCode: 98732960 35 | m_OpeningDefinition: 36 | m_ClosingDefinition: 37 | m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000003200000035000000250000003e0000003c000000620000003e0000003c000000610000006c00000069000000670000006e0000003d00000063000000650000006e0000007400000065000000720000003e000000 38 | m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000610000006c00000069000000670000006e0000003e000000 39 | - m_Name: H2 40 | m_HashCode: 2426 41 | m_OpeningDefinition: <#4080FF> 42 | m_ClosingDefinition: 43 | m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000002e00000035000000650000006d0000003e0000003c000000620000003e0000003c000000230000003400000030000000380000003000000046000000460000003e000000 44 | m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000 45 | - m_Name: H3 46 | m_HashCode: 2427 47 | m_OpeningDefinition: <#FF8040> 48 | m_ClosingDefinition: 49 | m_OpeningTagArray: 3c00000073000000690000007a000000650000003d000000310000002e0000003100000037000000650000006d0000003e0000003c000000620000003e0000003c000000230000004600000046000000380000003000000034000000300000003e000000 50 | m_ClosingTagArray: 3c0000002f00000073000000690000007a000000650000003e0000003c0000002f000000620000003e0000003c0000002f000000630000006f0000006c0000006f000000720000003e000000 51 | - m_Name: C1 52 | m_HashCode: 2194 53 | m_OpeningDefinition: 54 | m_ClosingDefinition: 55 | m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000006600000066000000660000006600000034000000300000003e000000 56 | m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e000000 57 | - m_Name: C2 58 | m_HashCode: 2193 59 | m_OpeningDefinition: 60 | m_ClosingDefinition: 61 | m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000006600000066000000340000003000000046000000460000003e0000003c00000073000000690000007a000000650000003d000000310000003200000035000000250000003e000000 62 | m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f00000073000000690000007a000000650000003e000000 63 | - m_Name: C3 64 | m_HashCode: 2192 65 | m_OpeningDefinition: 66 | m_ClosingDefinition: 67 | m_OpeningTagArray: 3c000000630000006f0000006c0000006f000000720000003d000000230000003800000030000000410000003000000046000000460000003e0000003c000000620000003e000000 68 | m_ClosingTagArray: 3c0000002f000000630000006f0000006c0000006f000000720000003e0000003c0000002f000000620000003e000000 69 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f952c082cb03451daed3ee968ac6c63e 3 | timeCreated: 1432805430 4 | licenseType: Store 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/TMP Settings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: 2705215ac5b84b70bacc50632be6e391, type: 3} 12 | m_Name: TMP Settings 13 | m_EditorClassIdentifier: 14 | m_enableWordWrapping: 1 15 | m_enableKerning: 1 16 | m_enableExtraPadding: 0 17 | m_enableTintAllSprites: 0 18 | m_enableParseEscapeCharacters: 1 19 | m_missingGlyphCharacter: 0 20 | m_warningsDisabled: 0 21 | m_defaultFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 22 | m_defaultFontAssetPath: Fonts & Materials/ 23 | m_defaultFontSize: 36 24 | m_defaultAutoSizeMinRatio: 0.5 25 | m_defaultAutoSizeMaxRatio: 2 26 | m_defaultTextMeshProTextContainerSize: {x: 20, y: 5} 27 | m_defaultTextMeshProUITextContainerSize: {x: 200, y: 50} 28 | m_autoSizeTextContainer: 0 29 | m_fallbackFontAssets: [] 30 | m_matchMaterialPreset: 1 31 | m_defaultSpriteAsset: {fileID: 11400000, guid: c41005c129ba4d66911b75229fd70b45, 32 | type: 2} 33 | m_defaultSpriteAssetPath: Sprite Assets/ 34 | m_defaultColorGradientPresetsPath: Color Gradient Presets/ 35 | m_enableEmojiSupport: 1 36 | m_defaultStyleSheet: {fileID: 11400000, guid: f952c082cb03451daed3ee968ac6c63e, 37 | type: 2} 38 | m_leadingCharacters: {fileID: 4900000, guid: d82c1b31c7e74239bff1220585707d2b, type: 3} 39 | m_followingCharacters: {fileID: 4900000, guid: fade42e8bc714b018fac513c043d323b, 40 | type: 3} 41 | m_FontCreatorRecentSettings: 42 | - sourceFontFileName: 43 | sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21 44 | pointSizeSamplingMode: 1 45 | pointSize: 109 46 | padding: 12 47 | packingMode: 0 48 | atlasWidth: 128 49 | atlasHeight: 128 50 | characterSetSelectionMode: 5 51 | characterSequence: 64 52 | fontStyle: 0 53 | fontStyleModifier: 2 54 | renderMode: 281 55 | includeFontFeatures: 0 56 | referenceFontAssetGUID: 903613a9fe4b65946aa20dfcce07abec 57 | - sourceFontFileName: 58 | sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21 59 | pointSizeSamplingMode: 0 60 | pointSize: 108 61 | padding: 12 62 | packingMode: 0 63 | atlasWidth: 128 64 | atlasHeight: 128 65 | characterSetSelectionMode: 5 66 | characterSequence: 64 67 | fontStyle: 0 68 | fontStyleModifier: 2 69 | renderMode: 2090 70 | includeFontFeatures: 0 71 | referenceFontAssetGUID: 70cf10c1d306ada42aa6cd7268db990d 72 | - sourceFontFileName: 73 | sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21 74 | pointSizeSamplingMode: 1 75 | pointSize: 109 76 | padding: 12 77 | packingMode: 0 78 | atlasWidth: 128 79 | atlasHeight: 128 80 | characterSetSelectionMode: 5 81 | characterSequence: 64 82 | fontStyle: 0 83 | fontStyleModifier: 2 84 | renderMode: 329 85 | includeFontFeatures: 0 86 | referenceFontAssetGUID: 396d465a5821ead47b589b228da7e980 87 | - sourceFontFileName: 88 | sourceFontFileGUID: edcaa01543603ae4cb6b2edf25967e21 89 | pointSizeSamplingMode: 1 90 | pointSize: 338 91 | padding: 36 92 | packingMode: 0 93 | atlasWidth: 4096 94 | atlasHeight: 4096 95 | characterSetSelectionMode: 1 96 | characterSequence: 32 - 126, 160 - 255, 8192 - 8303, 8364, 8482, 9633 97 | fontStyle: 0 98 | fontStyleModifier: 2 99 | renderMode: 329 100 | includeFontFeatures: 0 101 | referenceFontAssetGUID: 3a4171c252e1112499af739474d9f48e 102 | m_CreationSettingsSelectionIndex: 0 103 | m_CreationSettingsIndex: 0 104 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Resources/TMP Settings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f5b5dff67a942289a9defa416b206f3 3 | timeCreated: 1436653997 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0603b6d5186471b96c778c3949c7ce2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt: -------------------------------------------------------------------------------- 1 | This sample of beautiful emojis are provided by EmojiOne https://www.emojione.com/ 2 | 3 | Please visit their website to view the complete set of their emojis and review their licensing terms. -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 381dcb09d5029d14897e55f98031fca5 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Sprites/EmojiOne.json: -------------------------------------------------------------------------------- 1 | {"frames": [ 2 | 3 | { 4 | "filename": "1f60a.png", 5 | "frame": {"x":0,"y":0,"w":128,"h":128}, 6 | "rotated": false, 7 | "trimmed": false, 8 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 9 | "sourceSize": {"w":128,"h":128}, 10 | "pivot": {"x":0.5,"y":0.5} 11 | }, 12 | { 13 | "filename": "1f60b.png", 14 | "frame": {"x":128,"y":0,"w":128,"h":128}, 15 | "rotated": false, 16 | "trimmed": false, 17 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 18 | "sourceSize": {"w":128,"h":128}, 19 | "pivot": {"x":0.5,"y":0.5} 20 | }, 21 | { 22 | "filename": "1f60d.png", 23 | "frame": {"x":256,"y":0,"w":128,"h":128}, 24 | "rotated": false, 25 | "trimmed": false, 26 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 27 | "sourceSize": {"w":128,"h":128}, 28 | "pivot": {"x":0.5,"y":0.5} 29 | }, 30 | { 31 | "filename": "1f60e.png", 32 | "frame": {"x":384,"y":0,"w":128,"h":128}, 33 | "rotated": false, 34 | "trimmed": false, 35 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 36 | "sourceSize": {"w":128,"h":128}, 37 | "pivot": {"x":0.5,"y":0.5} 38 | }, 39 | { 40 | "filename": "1f600.png", 41 | "frame": {"x":0,"y":128,"w":128,"h":128}, 42 | "rotated": false, 43 | "trimmed": false, 44 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 45 | "sourceSize": {"w":128,"h":128}, 46 | "pivot": {"x":0.5,"y":0.5} 47 | }, 48 | { 49 | "filename": "1f601.png", 50 | "frame": {"x":128,"y":128,"w":128,"h":128}, 51 | "rotated": false, 52 | "trimmed": false, 53 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 54 | "sourceSize": {"w":128,"h":128}, 55 | "pivot": {"x":0.5,"y":0.5} 56 | }, 57 | { 58 | "filename": "1f602.png", 59 | "frame": {"x":256,"y":128,"w":128,"h":128}, 60 | "rotated": false, 61 | "trimmed": false, 62 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 63 | "sourceSize": {"w":128,"h":128}, 64 | "pivot": {"x":0.5,"y":0.5} 65 | }, 66 | { 67 | "filename": "1f603.png", 68 | "frame": {"x":384,"y":128,"w":128,"h":128}, 69 | "rotated": false, 70 | "trimmed": false, 71 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 72 | "sourceSize": {"w":128,"h":128}, 73 | "pivot": {"x":0.5,"y":0.5} 74 | }, 75 | { 76 | "filename": "1f604.png", 77 | "frame": {"x":0,"y":256,"w":128,"h":128}, 78 | "rotated": false, 79 | "trimmed": false, 80 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 81 | "sourceSize": {"w":128,"h":128}, 82 | "pivot": {"x":0.5,"y":0.5} 83 | }, 84 | { 85 | "filename": "1f605.png", 86 | "frame": {"x":128,"y":256,"w":128,"h":128}, 87 | "rotated": false, 88 | "trimmed": false, 89 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 90 | "sourceSize": {"w":128,"h":128}, 91 | "pivot": {"x":0.5,"y":0.5} 92 | }, 93 | { 94 | "filename": "1f606.png", 95 | "frame": {"x":256,"y":256,"w":128,"h":128}, 96 | "rotated": false, 97 | "trimmed": false, 98 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 99 | "sourceSize": {"w":128,"h":128}, 100 | "pivot": {"x":0.5,"y":0.5} 101 | }, 102 | { 103 | "filename": "1f609.png", 104 | "frame": {"x":384,"y":256,"w":128,"h":128}, 105 | "rotated": false, 106 | "trimmed": false, 107 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 108 | "sourceSize": {"w":128,"h":128}, 109 | "pivot": {"x":0.5,"y":0.5} 110 | }, 111 | { 112 | "filename": "1f618.png", 113 | "frame": {"x":0,"y":384,"w":128,"h":128}, 114 | "rotated": false, 115 | "trimmed": false, 116 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 117 | "sourceSize": {"w":128,"h":128}, 118 | "pivot": {"x":0.5,"y":0.5} 119 | }, 120 | { 121 | "filename": "1f923.png", 122 | "frame": {"x":128,"y":384,"w":128,"h":128}, 123 | "rotated": false, 124 | "trimmed": false, 125 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 126 | "sourceSize": {"w":128,"h":128}, 127 | "pivot": {"x":0.5,"y":0.5} 128 | }, 129 | { 130 | "filename": "263a.png", 131 | "frame": {"x":256,"y":384,"w":128,"h":128}, 132 | "rotated": false, 133 | "trimmed": false, 134 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 135 | "sourceSize": {"w":128,"h":128}, 136 | "pivot": {"x":0.5,"y":0.5} 137 | }, 138 | { 139 | "filename": "2639.png", 140 | "frame": {"x":384,"y":384,"w":128,"h":128}, 141 | "rotated": false, 142 | "trimmed": false, 143 | "spriteSourceSize": {"x":0,"y":0,"w":128,"h":128}, 144 | "sourceSize": {"w":128,"h":128}, 145 | "pivot": {"x":0.5,"y":0.5} 146 | }], 147 | "meta": { 148 | "app": "http://www.codeandweb.com/texturepacker", 149 | "version": "1.0", 150 | "image": "EmojiOne.png", 151 | "format": "RGBA8888", 152 | "size": {"w":512,"h":512}, 153 | "scale": "1", 154 | "smartupdate": "$TexturePacker:SmartUpdate:196a26a2e149d875b91ffc8fa3581e76:fc928c7e275404b7e0649307410475cb:424723c3774975ddb2053fd5c4b85f6e$" 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f05276190cf498a8153f6cbe761d4e6 3 | timeCreated: 1480316860 4 | licenseType: Pro 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Sprites/EmojiOne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/baba-s/tmp-rule/496f96c5844d3fb70b85d6a8a975fb67afad11d1/app/Assets/TextMesh Pro/Sprites/EmojiOne.png -------------------------------------------------------------------------------- /app/Assets/TextMesh Pro/Sprites/EmojiOne.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dffef66376be4fa480fb02b19edbe903 3 | TextureImporter: 4 | fileIDToRecycleName: 5 | 21300000: EmojiOne_0 6 | 21300002: EmojiOne_1 7 | 21300004: EmojiOne_2 8 | 21300006: EmojiOne_3 9 | 21300008: EmojiOne_4 10 | 21300010: EmojiOne_6 11 | 21300012: EmojiOne_7 12 | 21300014: EmojiOne_8 13 | 21300016: EmojiOne_9 14 | 21300018: EmojiOne_10 15 | 21300020: EmojiOne_11 16 | 21300022: EmojiOne_12 17 | 21300024: EmojiOne_13 18 | 21300026: EmojiOne_5 19 | 21300028: EmojiOne_14 20 | externalObjects: {} 21 | serializedVersion: 5 22 | mipmaps: 23 | mipMapMode: 0 24 | enableMipMap: 1 25 | sRGBTexture: 1 26 | linearTexture: 0 27 | fadeOut: 0 28 | borderMipMap: 0 29 | mipMapsPreserveCoverage: 0 30 | alphaTestReferenceValue: 0.5 31 | mipMapFadeDistanceStart: 1 32 | mipMapFadeDistanceEnd: 3 33 | bumpmap: 34 | convertToNormalMap: 0 35 | externalNormalMap: 0 36 | heightScale: 0.25 37 | normalMapFilter: 0 38 | isReadable: 0 39 | grayScaleToAlpha: 0 40 | generateCubemap: 6 41 | cubemapConvolution: 0 42 | seamlessCubemap: 0 43 | textureFormat: -1 44 | maxTextureSize: 2048 45 | textureSettings: 46 | serializedVersion: 2 47 | filterMode: -1 48 | aniso: -1 49 | mipBias: -1 50 | wrapU: 1 51 | wrapV: 1 52 | wrapW: 1 53 | nPOTScale: 0 54 | lightmap: 0 55 | compressionQuality: 50 56 | spriteMode: 2 57 | spriteExtrude: 1 58 | spriteMeshType: 1 59 | alignment: 0 60 | spritePivot: {x: 0.5, y: 0.5} 61 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 62 | spritePixelsToUnits: 100 63 | alphaUsage: 1 64 | alphaIsTransparency: 1 65 | spriteTessellationDetail: -1 66 | textureType: 0 67 | textureShape: 1 68 | singleChannelComponent: 0 69 | maxTextureSizeSet: 0 70 | compressionQualitySet: 0 71 | textureFormatSet: 0 72 | platformSettings: 73 | - serializedVersion: 2 74 | buildTarget: DefaultTexturePlatform 75 | maxTextureSize: 512 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | - serializedVersion: 2 85 | buildTarget: Standalone 86 | maxTextureSize: 512 87 | resizeAlgorithm: 0 88 | textureFormat: -1 89 | textureCompression: 1 90 | compressionQuality: 50 91 | crunchedCompression: 0 92 | allowsAlphaSplitting: 0 93 | overridden: 0 94 | androidETC2FallbackOverride: 0 95 | - serializedVersion: 2 96 | buildTarget: iPhone 97 | maxTextureSize: 512 98 | resizeAlgorithm: 0 99 | textureFormat: -1 100 | textureCompression: 1 101 | compressionQuality: 50 102 | crunchedCompression: 0 103 | allowsAlphaSplitting: 0 104 | overridden: 0 105 | androidETC2FallbackOverride: 0 106 | - serializedVersion: 2 107 | buildTarget: Android 108 | maxTextureSize: 512 109 | resizeAlgorithm: 0 110 | textureFormat: -1 111 | textureCompression: 1 112 | compressionQuality: 50 113 | crunchedCompression: 0 114 | allowsAlphaSplitting: 0 115 | overridden: 0 116 | androidETC2FallbackOverride: 0 117 | spriteSheet: 118 | serializedVersion: 2 119 | sprites: 120 | - serializedVersion: 2 121 | name: EmojiOne_0 122 | rect: 123 | serializedVersion: 2 124 | x: 0 125 | y: 384 126 | width: 128 127 | height: 128 128 | alignment: 0 129 | pivot: {x: 0.5, y: 0.5} 130 | border: {x: 0, y: 0, z: 0, w: 0} 131 | outline: [] 132 | physicsShape: [] 133 | tessellationDetail: 0 134 | bones: [] 135 | spriteID: 4bcc36da2108f2c4ba3de5c921d25c3c 136 | vertices: [] 137 | indices: 138 | edges: [] 139 | weights: [] 140 | - serializedVersion: 2 141 | name: EmojiOne_1 142 | rect: 143 | serializedVersion: 2 144 | x: 128 145 | y: 384 146 | width: 128 147 | height: 128 148 | alignment: 0 149 | pivot: {x: 0.5, y: 0.5} 150 | border: {x: 0, y: 0, z: 0, w: 0} 151 | outline: [] 152 | physicsShape: [] 153 | tessellationDetail: 0 154 | bones: [] 155 | spriteID: e9eea8093eaeaee4d901c4553f572c22 156 | vertices: [] 157 | indices: 158 | edges: [] 159 | weights: [] 160 | - serializedVersion: 2 161 | name: EmojiOne_2 162 | rect: 163 | serializedVersion: 2 164 | x: 256 165 | y: 384 166 | width: 128 167 | height: 128 168 | alignment: 0 169 | pivot: {x: 0.5, y: 0.5} 170 | border: {x: 0, y: 0, z: 0, w: 0} 171 | outline: [] 172 | physicsShape: [] 173 | tessellationDetail: 0 174 | bones: [] 175 | spriteID: 49451da35411dcc42a3692e39b0fde70 176 | vertices: [] 177 | indices: 178 | edges: [] 179 | weights: [] 180 | - serializedVersion: 2 181 | name: EmojiOne_3 182 | rect: 183 | serializedVersion: 2 184 | x: 384 185 | y: 384 186 | width: 128 187 | height: 128 188 | alignment: 0 189 | pivot: {x: 0.5, y: 0.5} 190 | border: {x: 0, y: 0, z: 0, w: 0} 191 | outline: [] 192 | physicsShape: [] 193 | tessellationDetail: 0 194 | bones: [] 195 | spriteID: f65709664b924904790c850a50ca82bc 196 | vertices: [] 197 | indices: 198 | edges: [] 199 | weights: [] 200 | - serializedVersion: 2 201 | name: EmojiOne_4 202 | rect: 203 | serializedVersion: 2 204 | x: 0 205 | y: 256 206 | width: 128 207 | height: 128 208 | alignment: 0 209 | pivot: {x: 0.5, y: 0.5} 210 | border: {x: 0, y: 0, z: 0, w: 0} 211 | outline: [] 212 | physicsShape: [] 213 | tessellationDetail: 0 214 | bones: [] 215 | spriteID: 5b92c568a5ec9ad4b9ed90e271f1c9a8 216 | vertices: [] 217 | indices: 218 | edges: [] 219 | weights: [] 220 | - serializedVersion: 2 221 | name: EmojiOne_6 222 | rect: 223 | serializedVersion: 2 224 | x: 256 225 | y: 256 226 | width: 128 227 | height: 128 228 | alignment: 0 229 | pivot: {x: 0.5, y: 0.5} 230 | border: {x: 0, y: 0, z: 0, w: 0} 231 | outline: [] 232 | physicsShape: [] 233 | tessellationDetail: 0 234 | bones: [] 235 | spriteID: b10f2b48b7281594bb8a24a6511a35af 236 | vertices: [] 237 | indices: 238 | edges: [] 239 | weights: [] 240 | - serializedVersion: 2 241 | name: EmojiOne_7 242 | rect: 243 | serializedVersion: 2 244 | x: 384 245 | y: 256 246 | width: 128 247 | height: 128 248 | alignment: 0 249 | pivot: {x: 0.5, y: 0.5} 250 | border: {x: 0, y: 0, z: 0, w: 0} 251 | outline: [] 252 | physicsShape: [] 253 | tessellationDetail: 0 254 | bones: [] 255 | spriteID: 10a600f9329dc2246a897e89f4d283cd 256 | vertices: [] 257 | indices: 258 | edges: [] 259 | weights: [] 260 | - serializedVersion: 2 261 | name: EmojiOne_8 262 | rect: 263 | serializedVersion: 2 264 | x: 0 265 | y: 128 266 | width: 128 267 | height: 128 268 | alignment: 0 269 | pivot: {x: 0.5, y: 0.5} 270 | border: {x: 0, y: 0, z: 0, w: 0} 271 | outline: [] 272 | physicsShape: [] 273 | tessellationDetail: 0 274 | bones: [] 275 | spriteID: 66cffa363b90ab14787d8a5b90cf4502 276 | vertices: [] 277 | indices: 278 | edges: [] 279 | weights: [] 280 | - serializedVersion: 2 281 | name: EmojiOne_9 282 | rect: 283 | serializedVersion: 2 284 | x: 128 285 | y: 128 286 | width: 128 287 | height: 128 288 | alignment: 0 289 | pivot: {x: 0.5, y: 0.5} 290 | border: {x: 0, y: 0, z: 0, w: 0} 291 | outline: [] 292 | physicsShape: [] 293 | tessellationDetail: 0 294 | bones: [] 295 | spriteID: 55cf3d409c9b89349b1e1bdc1cc224ad 296 | vertices: [] 297 | indices: 298 | edges: [] 299 | weights: [] 300 | - serializedVersion: 2 301 | name: EmojiOne_10 302 | rect: 303 | serializedVersion: 2 304 | x: 256 305 | y: 128 306 | width: 128 307 | height: 128 308 | alignment: 0 309 | pivot: {x: 0.5, y: 0.5} 310 | border: {x: 0, y: 0, z: 0, w: 0} 311 | outline: [] 312 | physicsShape: [] 313 | tessellationDetail: 0 314 | bones: [] 315 | spriteID: 2a9e58eaf96feef42bcefa1cf257193f 316 | vertices: [] 317 | indices: 318 | edges: [] 319 | weights: [] 320 | - serializedVersion: 2 321 | name: EmojiOne_11 322 | rect: 323 | serializedVersion: 2 324 | x: 384 325 | y: 128 326 | width: 128 327 | height: 128 328 | alignment: 0 329 | pivot: {x: 0.5, y: 0.5} 330 | border: {x: 0, y: 0, z: 0, w: 0} 331 | outline: [] 332 | physicsShape: [] 333 | tessellationDetail: 0 334 | bones: [] 335 | spriteID: 2489120affc155840ae6a7be2e93ce19 336 | vertices: [] 337 | indices: 338 | edges: [] 339 | weights: [] 340 | - serializedVersion: 2 341 | name: EmojiOne_12 342 | rect: 343 | serializedVersion: 2 344 | x: 0 345 | y: 0 346 | width: 128 347 | height: 128 348 | alignment: 0 349 | pivot: {x: 0.5, y: 0.5} 350 | border: {x: 0, y: 0, z: 0, w: 0} 351 | outline: [] 352 | physicsShape: [] 353 | tessellationDetail: 0 354 | bones: [] 355 | spriteID: 412349a150598d14da4d7140df5c0286 356 | vertices: [] 357 | indices: 358 | edges: [] 359 | weights: [] 360 | - serializedVersion: 2 361 | name: EmojiOne_13 362 | rect: 363 | serializedVersion: 2 364 | x: 128 365 | y: 0 366 | width: 128 367 | height: 128 368 | alignment: 0 369 | pivot: {x: 0.5, y: 0.5} 370 | border: {x: 0, y: 0, z: 0, w: 0} 371 | outline: [] 372 | physicsShape: [] 373 | tessellationDetail: 0 374 | bones: [] 375 | spriteID: a937464b42bb3634782dea34c6becb6c 376 | vertices: [] 377 | indices: 378 | edges: [] 379 | weights: [] 380 | - serializedVersion: 2 381 | name: EmojiOne_5 382 | rect: 383 | serializedVersion: 2 384 | x: 256 385 | y: 0 386 | width: 128 387 | height: 128 388 | alignment: 0 389 | pivot: {x: 0, y: 0} 390 | border: {x: 0, y: 0, z: 0, w: 0} 391 | outline: [] 392 | physicsShape: [] 393 | tessellationDetail: 0 394 | bones: [] 395 | spriteID: b0f933b217682124dbfc5e6b89abe3d0 396 | vertices: [] 397 | indices: 398 | edges: [] 399 | weights: [] 400 | - serializedVersion: 2 401 | name: EmojiOne_14 402 | rect: 403 | serializedVersion: 2 404 | x: 128 405 | y: 256 406 | width: 128 407 | height: 128 408 | alignment: 0 409 | pivot: {x: 0, y: 0} 410 | border: {x: 0, y: 0, z: 0, w: 0} 411 | outline: [] 412 | physicsShape: [] 413 | tessellationDetail: 0 414 | bones: [] 415 | spriteID: f7235c763afe4434e8bb666750a41096 416 | vertices: [] 417 | indices: 418 | edges: [] 419 | weights: [] 420 | outline: [] 421 | physicsShape: [] 422 | bones: [] 423 | spriteID: 3e32d8f5477abfc43b19066e8ad5032e 424 | vertices: [] 425 | indices: 426 | edges: [] 427 | weights: [] 428 | spritePackingTag: 429 | userData: 430 | assetBundleName: 431 | assetBundleVariant: 432 | -------------------------------------------------------------------------------- /app/Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ads": "2.0.8", 4 | "com.unity.analytics": "3.2.2", 5 | "com.unity.collab-proxy": "1.2.15", 6 | "com.unity.package-manager-ui": "2.0.7", 7 | "com.unity.purchasing": "2.0.3", 8 | "com.unity.textmeshpro": "1.3.0", 9 | "com.unity.modules.ai": "1.0.0", 10 | "com.unity.modules.animation": "1.0.0", 11 | "com.unity.modules.assetbundle": "1.0.0", 12 | "com.unity.modules.audio": "1.0.0", 13 | "com.unity.modules.cloth": "1.0.0", 14 | "com.unity.modules.director": "1.0.0", 15 | "com.unity.modules.imageconversion": "1.0.0", 16 | "com.unity.modules.imgui": "1.0.0", 17 | "com.unity.modules.jsonserialize": "1.0.0", 18 | "com.unity.modules.particlesystem": "1.0.0", 19 | "com.unity.modules.physics": "1.0.0", 20 | "com.unity.modules.physics2d": "1.0.0", 21 | "com.unity.modules.screencapture": "1.0.0", 22 | "com.unity.modules.terrain": "1.0.0", 23 | "com.unity.modules.terrainphysics": "1.0.0", 24 | "com.unity.modules.tilemap": "1.0.0", 25 | "com.unity.modules.ui": "1.0.0", 26 | "com.unity.modules.uielements": "1.0.0", 27 | "com.unity.modules.umbra": "1.0.0", 28 | "com.unity.modules.unityanalytics": "1.0.0", 29 | "com.unity.modules.unitywebrequest": "1.0.0", 30 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 31 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 32 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 33 | "com.unity.modules.unitywebrequestwww": "1.0.0", 34 | "com.unity.modules.vehicles": "1.0.0", 35 | "com.unity.modules.video": "1.0.0", 36 | "com.unity.modules.vr": "1.0.0", 37 | "com.unity.modules.wind": "1.0.0", 38 | "com.unity.modules.xr": "1.0.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /app/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /app/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 8 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | -------------------------------------------------------------------------------- /app/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | m_configObjects: {} 9 | -------------------------------------------------------------------------------- /app/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 1 11 | m_SpritePackerMode: 4 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /app/ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 35 | m_PreloadedShaders: [] 36 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 37 | type: 0} 38 | m_CustomRenderPipeline: {fileID: 0} 39 | m_TransparencySortMode: 0 40 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 41 | m_DefaultRenderingPath: 1 42 | m_DefaultMobileRenderingPath: 1 43 | m_TierSettings: [] 44 | m_LightmapStripping: 0 45 | m_FogStripping: 0 46 | m_InstancingStripping: 0 47 | m_LightmapKeepPlain: 1 48 | m_LightmapKeepDirCombined: 1 49 | m_LightmapKeepDynamicPlain: 1 50 | m_LightmapKeepDynamicDirCombined: 1 51 | m_LightmapKeepShadowMask: 1 52 | m_LightmapKeepSubtractive: 1 53 | m_FogKeepLinear: 1 54 | m_FogKeepExp: 1 55 | m_FogKeepExp2: 1 56 | m_AlbedoSwatchInfos: [] 57 | m_LightsUseLinearIntensity: 0 58 | m_LightsUseColorTemperature: 0 59 | -------------------------------------------------------------------------------- /app/ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /app/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /app/ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /app/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /app/ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 20 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: bfcfc320427f8224bbb7a96f3d3aebad, 13 | type: 2} 14 | -------------------------------------------------------------------------------- /app/ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 15 7 | productGUID: 29446808ff5549c4e80569ff67dfdb73 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: DefaultCompany 16 | productName: New Unity Project 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 53 | iosShowActivityIndicatorOnLoading: -1 54 | androidShowActivityIndicatorOnLoading: -1 55 | iosAppInBackgroundBehavior: 0 56 | displayResolutionDialog: 1 57 | iosAllowHTTPDownload: 1 58 | allowedAutorotateToPortrait: 1 59 | allowedAutorotateToPortraitUpsideDown: 1 60 | allowedAutorotateToLandscapeRight: 1 61 | allowedAutorotateToLandscapeLeft: 1 62 | useOSAutorotation: 1 63 | use32BitDisplayBuffer: 1 64 | preserveFramebufferAlpha: 0 65 | disableDepthAndStencilBuffers: 0 66 | androidStartInFullscreen: 1 67 | androidRenderOutsideSafeArea: 0 68 | androidBlitType: 0 69 | defaultIsNativeResolution: 1 70 | macRetinaSupport: 1 71 | runInBackground: 1 72 | captureSingleScreen: 0 73 | muteOtherAudioSources: 0 74 | Prepare IOS For Recording: 0 75 | Force IOS Speakers When Recording: 0 76 | deferSystemGesturesMode: 0 77 | hideHomeButton: 0 78 | submitAnalytics: 1 79 | usePlayerLog: 1 80 | bakeCollisionMeshes: 0 81 | forceSingleInstance: 0 82 | resizableWindow: 0 83 | useMacAppStoreValidation: 0 84 | macAppStoreCategory: public.app-category.games 85 | gpuSkinning: 0 86 | graphicsJobs: 0 87 | xboxPIXTextureCapture: 0 88 | xboxEnableAvatar: 0 89 | xboxEnableKinect: 0 90 | xboxEnableKinectAutoTracking: 0 91 | xboxEnableFitness: 0 92 | visibleInBackground: 1 93 | allowFullscreenSwitch: 1 94 | graphicsJobMode: 0 95 | fullscreenMode: 1 96 | xboxSpeechDB: 0 97 | xboxEnableHeadOrientation: 0 98 | xboxEnableGuest: 0 99 | xboxEnablePIXSampling: 0 100 | metalFramebufferOnly: 0 101 | xboxOneResolution: 0 102 | xboxOneSResolution: 0 103 | xboxOneXResolution: 3 104 | xboxOneMonoLoggingLevel: 0 105 | xboxOneLoggingLevel: 1 106 | xboxOneDisableEsram: 0 107 | xboxOnePresentImmediateThreshold: 0 108 | switchQueueCommandMemory: 0 109 | switchQueueControlMemory: 16384 110 | switchQueueComputeMemory: 262144 111 | switchNVNShaderPoolsGranularity: 33554432 112 | switchNVNDefaultPoolsGranularity: 16777216 113 | switchNVNOtherPoolsGranularity: 16777216 114 | vulkanEnableSetSRGBWrite: 0 115 | m_SupportedAspectRatios: 116 | 4:3: 1 117 | 5:4: 1 118 | 16:10: 1 119 | 16:9: 1 120 | Others: 1 121 | bundleVersion: 0.1 122 | preloadedAssets: [] 123 | metroInputSource: 0 124 | wsaTransparentSwapchain: 0 125 | m_HolographicPauseOnTrackingLoss: 1 126 | xboxOneDisableKinectGpuReservation: 1 127 | xboxOneEnable7thCore: 1 128 | isWsaHolographicRemotingEnabled: 0 129 | vrSettings: 130 | cardboard: 131 | depthFormat: 0 132 | enableTransitionView: 0 133 | daydream: 134 | depthFormat: 0 135 | useSustainedPerformanceMode: 0 136 | enableVideoLayer: 0 137 | useProtectedVideoMemory: 0 138 | minimumSupportedHeadTracking: 0 139 | maximumSupportedHeadTracking: 1 140 | hololens: 141 | depthFormat: 1 142 | depthBufferSharingEnabled: 1 143 | oculus: 144 | sharedDepthBuffer: 1 145 | dashSupport: 1 146 | enable360StereoCapture: 0 147 | protectGraphicsMemory: 0 148 | enableFrameTimingStats: 0 149 | useHDRDisplay: 0 150 | m_ColorGamuts: 00000000 151 | targetPixelDensity: 30 152 | resolutionScalingMode: 0 153 | androidSupportedAspectRatio: 1 154 | androidMaxAspectRatio: 2.1 155 | applicationIdentifier: 156 | Standalone: com.Company.ProductName 157 | buildNumber: {} 158 | AndroidBundleVersionCode: 1 159 | AndroidMinSdkVersion: 16 160 | AndroidTargetSdkVersion: 0 161 | AndroidPreferredInstallLocation: 1 162 | aotOptions: 163 | stripEngineCode: 1 164 | iPhoneStrippingLevel: 0 165 | iPhoneScriptCallOptimization: 0 166 | ForceInternetPermission: 0 167 | ForceSDCardPermission: 0 168 | CreateWallpaper: 0 169 | APKExpansionFiles: 0 170 | keepLoadedShadersAlive: 0 171 | StripUnusedMeshComponents: 1 172 | VertexChannelCompressionMask: 4054 173 | iPhoneSdkVersion: 988 174 | iOSTargetOSVersionString: 9.0 175 | tvOSSdkVersion: 0 176 | tvOSRequireExtendedGameController: 0 177 | tvOSTargetOSVersionString: 9.0 178 | uIPrerenderedIcon: 0 179 | uIRequiresPersistentWiFi: 0 180 | uIRequiresFullScreen: 1 181 | uIStatusBarHidden: 1 182 | uIExitOnSuspend: 0 183 | uIStatusBarStyle: 0 184 | iPhoneSplashScreen: {fileID: 0} 185 | iPhoneHighResSplashScreen: {fileID: 0} 186 | iPhoneTallHighResSplashScreen: {fileID: 0} 187 | iPhone47inSplashScreen: {fileID: 0} 188 | iPhone55inPortraitSplashScreen: {fileID: 0} 189 | iPhone55inLandscapeSplashScreen: {fileID: 0} 190 | iPhone58inPortraitSplashScreen: {fileID: 0} 191 | iPhone58inLandscapeSplashScreen: {fileID: 0} 192 | iPadPortraitSplashScreen: {fileID: 0} 193 | iPadHighResPortraitSplashScreen: {fileID: 0} 194 | iPadLandscapeSplashScreen: {fileID: 0} 195 | iPadHighResLandscapeSplashScreen: {fileID: 0} 196 | appleTVSplashScreen: {fileID: 0} 197 | appleTVSplashScreen2x: {fileID: 0} 198 | tvOSSmallIconLayers: [] 199 | tvOSSmallIconLayers2x: [] 200 | tvOSLargeIconLayers: [] 201 | tvOSLargeIconLayers2x: [] 202 | tvOSTopShelfImageLayers: [] 203 | tvOSTopShelfImageLayers2x: [] 204 | tvOSTopShelfImageWideLayers: [] 205 | tvOSTopShelfImageWideLayers2x: [] 206 | iOSLaunchScreenType: 0 207 | iOSLaunchScreenPortrait: {fileID: 0} 208 | iOSLaunchScreenLandscape: {fileID: 0} 209 | iOSLaunchScreenBackgroundColor: 210 | serializedVersion: 2 211 | rgba: 0 212 | iOSLaunchScreenFillPct: 100 213 | iOSLaunchScreenSize: 100 214 | iOSLaunchScreenCustomXibPath: 215 | iOSLaunchScreeniPadType: 0 216 | iOSLaunchScreeniPadImage: {fileID: 0} 217 | iOSLaunchScreeniPadBackgroundColor: 218 | serializedVersion: 2 219 | rgba: 0 220 | iOSLaunchScreeniPadFillPct: 100 221 | iOSLaunchScreeniPadSize: 100 222 | iOSLaunchScreeniPadCustomXibPath: 223 | iOSUseLaunchScreenStoryboard: 0 224 | iOSLaunchScreenCustomStoryboardPath: 225 | iOSDeviceRequirements: [] 226 | iOSURLSchemes: [] 227 | iOSBackgroundModes: 0 228 | iOSMetalForceHardShadows: 0 229 | metalEditorSupport: 1 230 | metalAPIValidation: 1 231 | iOSRenderExtraFrameOnPause: 0 232 | appleDeveloperTeamID: 233 | iOSManualSigningProvisioningProfileID: 234 | tvOSManualSigningProvisioningProfileID: 235 | iOSManualSigningProvisioningProfileType: 0 236 | tvOSManualSigningProvisioningProfileType: 0 237 | appleEnableAutomaticSigning: 0 238 | iOSRequireARKit: 0 239 | iOSAutomaticallyDetectAndAddCapabilities: 1 240 | appleEnableProMotion: 0 241 | clonedFromGUID: 5f34be1353de5cf4398729fda238591b 242 | templatePackageId: com.unity.template.2d@1.3.0 243 | templateDefaultScene: Assets/Scenes/SampleScene.unity 244 | AndroidTargetArchitectures: 5 245 | AndroidSplashScreenScale: 0 246 | androidSplashScreen: {fileID: 0} 247 | AndroidKeystoreName: 248 | AndroidKeyaliasName: 249 | AndroidBuildApkPerCpuArchitecture: 0 250 | AndroidTVCompatibility: 1 251 | AndroidIsGame: 1 252 | AndroidEnableTango: 0 253 | androidEnableBanner: 1 254 | androidUseLowAccuracyLocation: 0 255 | m_AndroidBanners: 256 | - width: 320 257 | height: 180 258 | banner: {fileID: 0} 259 | androidGamepadSupportLevel: 0 260 | resolutionDialogBanner: {fileID: 0} 261 | m_BuildTargetIcons: [] 262 | m_BuildTargetPlatformIcons: [] 263 | m_BuildTargetBatching: [] 264 | m_BuildTargetGraphicsAPIs: [] 265 | m_BuildTargetVRSettings: [] 266 | m_BuildTargetEnableVuforiaSettings: [] 267 | openGLRequireES31: 0 268 | openGLRequireES31AEP: 0 269 | m_TemplateCustomTags: {} 270 | mobileMTRendering: 271 | Android: 1 272 | iPhone: 1 273 | tvOS: 1 274 | m_BuildTargetGroupLightmapEncodingQuality: [] 275 | m_BuildTargetGroupLightmapSettings: [] 276 | playModeTestRunnerEnabled: 0 277 | runPlayModeTestAsEditModeTest: 0 278 | actionOnDotNetUnhandledException: 1 279 | enableInternalProfiler: 0 280 | logObjCUncaughtExceptions: 1 281 | enableCrashReportAPI: 0 282 | cameraUsageDescription: 283 | locationUsageDescription: 284 | microphoneUsageDescription: 285 | switchNetLibKey: 286 | switchSocketMemoryPoolSize: 6144 287 | switchSocketAllocatorPoolSize: 128 288 | switchSocketConcurrencyLimit: 14 289 | switchScreenResolutionBehavior: 2 290 | switchUseCPUProfiler: 0 291 | switchApplicationID: 0x01004b9000490000 292 | switchNSODependencies: 293 | switchTitleNames_0: 294 | switchTitleNames_1: 295 | switchTitleNames_2: 296 | switchTitleNames_3: 297 | switchTitleNames_4: 298 | switchTitleNames_5: 299 | switchTitleNames_6: 300 | switchTitleNames_7: 301 | switchTitleNames_8: 302 | switchTitleNames_9: 303 | switchTitleNames_10: 304 | switchTitleNames_11: 305 | switchTitleNames_12: 306 | switchTitleNames_13: 307 | switchTitleNames_14: 308 | switchPublisherNames_0: 309 | switchPublisherNames_1: 310 | switchPublisherNames_2: 311 | switchPublisherNames_3: 312 | switchPublisherNames_4: 313 | switchPublisherNames_5: 314 | switchPublisherNames_6: 315 | switchPublisherNames_7: 316 | switchPublisherNames_8: 317 | switchPublisherNames_9: 318 | switchPublisherNames_10: 319 | switchPublisherNames_11: 320 | switchPublisherNames_12: 321 | switchPublisherNames_13: 322 | switchPublisherNames_14: 323 | switchIcons_0: {fileID: 0} 324 | switchIcons_1: {fileID: 0} 325 | switchIcons_2: {fileID: 0} 326 | switchIcons_3: {fileID: 0} 327 | switchIcons_4: {fileID: 0} 328 | switchIcons_5: {fileID: 0} 329 | switchIcons_6: {fileID: 0} 330 | switchIcons_7: {fileID: 0} 331 | switchIcons_8: {fileID: 0} 332 | switchIcons_9: {fileID: 0} 333 | switchIcons_10: {fileID: 0} 334 | switchIcons_11: {fileID: 0} 335 | switchIcons_12: {fileID: 0} 336 | switchIcons_13: {fileID: 0} 337 | switchIcons_14: {fileID: 0} 338 | switchSmallIcons_0: {fileID: 0} 339 | switchSmallIcons_1: {fileID: 0} 340 | switchSmallIcons_2: {fileID: 0} 341 | switchSmallIcons_3: {fileID: 0} 342 | switchSmallIcons_4: {fileID: 0} 343 | switchSmallIcons_5: {fileID: 0} 344 | switchSmallIcons_6: {fileID: 0} 345 | switchSmallIcons_7: {fileID: 0} 346 | switchSmallIcons_8: {fileID: 0} 347 | switchSmallIcons_9: {fileID: 0} 348 | switchSmallIcons_10: {fileID: 0} 349 | switchSmallIcons_11: {fileID: 0} 350 | switchSmallIcons_12: {fileID: 0} 351 | switchSmallIcons_13: {fileID: 0} 352 | switchSmallIcons_14: {fileID: 0} 353 | switchManualHTML: 354 | switchAccessibleURLs: 355 | switchLegalInformation: 356 | switchMainThreadStackSize: 1048576 357 | switchPresenceGroupId: 358 | switchLogoHandling: 0 359 | switchReleaseVersion: 0 360 | switchDisplayVersion: 1.0.0 361 | switchStartupUserAccount: 0 362 | switchTouchScreenUsage: 0 363 | switchSupportedLanguagesMask: 0 364 | switchLogoType: 0 365 | switchApplicationErrorCodeCategory: 366 | switchUserAccountSaveDataSize: 0 367 | switchUserAccountSaveDataJournalSize: 0 368 | switchApplicationAttribute: 0 369 | switchCardSpecSize: -1 370 | switchCardSpecClock: -1 371 | switchRatingsMask: 0 372 | switchRatingsInt_0: 0 373 | switchRatingsInt_1: 0 374 | switchRatingsInt_2: 0 375 | switchRatingsInt_3: 0 376 | switchRatingsInt_4: 0 377 | switchRatingsInt_5: 0 378 | switchRatingsInt_6: 0 379 | switchRatingsInt_7: 0 380 | switchRatingsInt_8: 0 381 | switchRatingsInt_9: 0 382 | switchRatingsInt_10: 0 383 | switchRatingsInt_11: 0 384 | switchLocalCommunicationIds_0: 385 | switchLocalCommunicationIds_1: 386 | switchLocalCommunicationIds_2: 387 | switchLocalCommunicationIds_3: 388 | switchLocalCommunicationIds_4: 389 | switchLocalCommunicationIds_5: 390 | switchLocalCommunicationIds_6: 391 | switchLocalCommunicationIds_7: 392 | switchParentalControl: 0 393 | switchAllowsScreenshot: 1 394 | switchAllowsVideoCapturing: 1 395 | switchAllowsRuntimeAddOnContentInstall: 0 396 | switchDataLossConfirmation: 0 397 | switchUserAccountLockEnabled: 0 398 | switchSystemResourceMemory: 16777216 399 | switchSupportedNpadStyles: 3 400 | switchNativeFsCacheSize: 32 401 | switchIsHoldTypeHorizontal: 0 402 | switchSupportedNpadCount: 8 403 | switchSocketConfigEnabled: 0 404 | switchTcpInitialSendBufferSize: 32 405 | switchTcpInitialReceiveBufferSize: 64 406 | switchTcpAutoSendBufferSizeMax: 256 407 | switchTcpAutoReceiveBufferSizeMax: 256 408 | switchUdpSendBufferSize: 9 409 | switchUdpReceiveBufferSize: 42 410 | switchSocketBufferEfficiency: 4 411 | switchSocketInitializeEnabled: 1 412 | switchNetworkInterfaceManagerInitializeEnabled: 1 413 | switchPlayerConnectionEnabled: 1 414 | ps4NPAgeRating: 12 415 | ps4NPTitleSecret: 416 | ps4NPTrophyPackPath: 417 | ps4ParentalLevel: 11 418 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 419 | ps4Category: 0 420 | ps4MasterVersion: 01.00 421 | ps4AppVersion: 01.00 422 | ps4AppType: 0 423 | ps4ParamSfxPath: 424 | ps4VideoOutPixelFormat: 0 425 | ps4VideoOutInitialWidth: 1920 426 | ps4VideoOutBaseModeInitialWidth: 1920 427 | ps4VideoOutReprojectionRate: 60 428 | ps4PronunciationXMLPath: 429 | ps4PronunciationSIGPath: 430 | ps4BackgroundImagePath: 431 | ps4StartupImagePath: 432 | ps4StartupImagesFolder: 433 | ps4IconImagesFolder: 434 | ps4SaveDataImagePath: 435 | ps4SdkOverride: 436 | ps4BGMPath: 437 | ps4ShareFilePath: 438 | ps4ShareOverlayImagePath: 439 | ps4PrivacyGuardImagePath: 440 | ps4NPtitleDatPath: 441 | ps4RemotePlayKeyAssignment: -1 442 | ps4RemotePlayKeyMappingDir: 443 | ps4PlayTogetherPlayerCount: 0 444 | ps4EnterButtonAssignment: 1 445 | ps4ApplicationParam1: 0 446 | ps4ApplicationParam2: 0 447 | ps4ApplicationParam3: 0 448 | ps4ApplicationParam4: 0 449 | ps4DownloadDataSize: 0 450 | ps4GarlicHeapSize: 2048 451 | ps4ProGarlicHeapSize: 2560 452 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 453 | ps4pnSessions: 1 454 | ps4pnPresence: 1 455 | ps4pnFriends: 1 456 | ps4pnGameCustomData: 1 457 | playerPrefsSupport: 0 458 | enableApplicationExit: 0 459 | resetTempFolder: 1 460 | restrictedAudioUsageRights: 0 461 | ps4UseResolutionFallback: 0 462 | ps4ReprojectionSupport: 0 463 | ps4UseAudio3dBackend: 0 464 | ps4SocialScreenEnabled: 0 465 | ps4ScriptOptimizationLevel: 0 466 | ps4Audio3dVirtualSpeakerCount: 14 467 | ps4attribCpuUsage: 0 468 | ps4PatchPkgPath: 469 | ps4PatchLatestPkgPath: 470 | ps4PatchChangeinfoPath: 471 | ps4PatchDayOne: 0 472 | ps4attribUserManagement: 0 473 | ps4attribMoveSupport: 0 474 | ps4attrib3DSupport: 0 475 | ps4attribShareSupport: 0 476 | ps4attribExclusiveVR: 0 477 | ps4disableAutoHideSplash: 0 478 | ps4videoRecordingFeaturesUsed: 0 479 | ps4contentSearchFeaturesUsed: 0 480 | ps4attribEyeToEyeDistanceSettingVR: 0 481 | ps4IncludedModules: [] 482 | monoEnv: 483 | splashScreenBackgroundSourceLandscape: {fileID: 0} 484 | splashScreenBackgroundSourcePortrait: {fileID: 0} 485 | spritePackerPolicy: 486 | webGLMemorySize: 256 487 | webGLExceptionSupport: 1 488 | webGLNameFilesAsHashes: 0 489 | webGLDataCaching: 1 490 | webGLDebugSymbols: 0 491 | webGLEmscriptenArgs: 492 | webGLModulesDirectory: 493 | webGLTemplate: APPLICATION:Default 494 | webGLAnalyzeBuildSize: 0 495 | webGLUseEmbeddedResources: 0 496 | webGLCompressionFormat: 1 497 | webGLLinkerTarget: 1 498 | webGLThreadsSupport: 0 499 | scriptingDefineSymbols: {} 500 | platformArchitecture: {} 501 | scriptingBackend: {} 502 | il2cppCompilerConfiguration: {} 503 | managedStrippingLevel: {} 504 | incrementalIl2cppBuild: {} 505 | allowUnsafeCode: 0 506 | additionalIl2CppArgs: 507 | scriptingRuntimeVersion: 1 508 | apiCompatibilityLevelPerPlatform: {} 509 | m_RenderingPath: 1 510 | m_MobileRenderingPath: 1 511 | metroPackageName: Template_2D 512 | metroPackageVersion: 513 | metroCertificatePath: 514 | metroCertificatePassword: 515 | metroCertificateSubject: 516 | metroCertificateIssuer: 517 | metroCertificateNotAfter: 0000000000000000 518 | metroApplicationDescription: Template_2D 519 | wsaImages: {} 520 | metroTileShortName: 521 | metroTileShowName: 0 522 | metroMediumTileShowName: 0 523 | metroLargeTileShowName: 0 524 | metroWideTileShowName: 0 525 | metroSupportStreamingInstall: 0 526 | metroLastRequiredScene: 0 527 | metroDefaultTileSize: 1 528 | metroTileForegroundText: 2 529 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 530 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 531 | a: 1} 532 | metroSplashScreenUseBackgroundColor: 0 533 | platformCapabilities: {} 534 | metroTargetDeviceFamilies: {} 535 | metroFTAName: 536 | metroFTAFileTypes: [] 537 | metroProtocolName: 538 | metroCompilationOverrides: 1 539 | XboxOneProductId: 540 | XboxOneUpdateKey: 541 | XboxOneSandboxId: 542 | XboxOneContentId: 543 | XboxOneTitleId: 544 | XboxOneSCId: 545 | XboxOneGameOsOverridePath: 546 | XboxOnePackagingOverridePath: 547 | XboxOneAppManifestOverridePath: 548 | XboxOneVersion: 1.0.0.0 549 | XboxOnePackageEncryption: 0 550 | XboxOnePackageUpdateGranularity: 2 551 | XboxOneDescription: 552 | XboxOneLanguage: 553 | - enus 554 | XboxOneCapability: [] 555 | XboxOneGameRating: {} 556 | XboxOneIsContentPackage: 0 557 | XboxOneEnableGPUVariability: 1 558 | XboxOneSockets: {} 559 | XboxOneSplashScreen: {fileID: 0} 560 | XboxOneAllowedProductIds: [] 561 | XboxOnePersistentLocalStorageSize: 0 562 | XboxOneXTitleMemory: 8 563 | xboxOneScriptCompiler: 1 564 | XboxOneOverrideIdentityName: 565 | vrEditorSettings: 566 | daydream: 567 | daydreamIconForeground: {fileID: 0} 568 | daydreamIconBackground: {fileID: 0} 569 | cloudServicesEnabled: 570 | UNet: 1 571 | luminIcon: 572 | m_Name: 573 | m_ModelFolderPath: 574 | m_PortalFolderPath: 575 | luminCert: 576 | m_CertPath: 577 | m_PrivateKeyPath: 578 | luminIsChannelApp: 0 579 | luminVersion: 580 | m_VersionCode: 1 581 | m_VersionName: 582 | facebookSdkVersion: 7.9.4 583 | facebookAppId: 584 | facebookCookies: 1 585 | facebookLogging: 1 586 | facebookStatus: 1 587 | facebookXfbml: 0 588 | facebookFrictionlessRequests: 1 589 | apiCompatibilityLevel: 6 590 | cloudProjectId: 591 | framebufferDepthMemorylessMode: 0 592 | projectName: 593 | organizationId: 594 | cloudEnabled: 0 595 | enableNativePlatformBackendsForNewInputSystem: 0 596 | disableOldInputManagerSupport: 0 597 | legacyClampBlendShapeWeights: 0 598 | -------------------------------------------------------------------------------- /app/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2018.3.11f1 2 | -------------------------------------------------------------------------------- /app/ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 3 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 16 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 16 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 0 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 0 80 | antiAliasing: 0 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 16 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 0 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 0 108 | antiAliasing: 0 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 0 112 | billboardsFaceCameraPosition: 0 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 16 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 0 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 70 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 0 136 | antiAliasing: 0 137 | softParticles: 0 138 | softVegetation: 1 139 | realtimeReflectionProbes: 0 140 | billboardsFaceCameraPosition: 0 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 16 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 0 153 | shadowResolution: 0 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 150 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 0 164 | antiAliasing: 0 165 | softParticles: 0 166 | softVegetation: 1 167 | realtimeReflectionProbes: 0 168 | billboardsFaceCameraPosition: 0 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 16 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSM: 5 183 | PSP2: 2 184 | Standalone: 5 185 | Tizen: 2 186 | WebGL: 3 187 | WiiU: 5 188 | Windows Store Apps: 5 189 | XboxOne: 5 190 | iPhone: 2 191 | tvOS: 2 192 | -------------------------------------------------------------------------------- /app/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /app/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /app/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /app/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | --------------------------------------------------------------------------------