├── 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://github.com/baba-s/tmp-rule/releases)
6 | [](https://github.com/baba-s/tmp-rule/releases)
7 | 
8 | 
9 | [](https://github.com/baba-s/tmp-rule/blob/master/LICENSE)
10 |
11 | ## バージョン
12 |
13 | - Unity 2018.3.11f1
14 |
15 | ## 使い方
16 |
17 | 
18 |
19 | Project ビューの「Create > TMP Rule Settings」を選択します
20 |
21 | 
22 |
23 | すると、TextMesh Pro の設定をルール化して管理できるアセットが作成されます
24 |
25 | 
26 |
27 | このアセットを編集して、TextMesh Pro の設定をルール化して登録していきます
28 |
29 | 
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 |
--------------------------------------------------------------------------------