├── .editorconfig
├── .gitattributes
├── .gitignore
├── CodeAnalysis.ruleset
├── LICENSE
├── README.md
├── build.cmd
├── build.fsx
├── docs
├── Features.png
├── Font.png
├── FontExtended.png
└── UnderTheHood.md
├── src
└── UnityPackage
│ ├── .gitignore
│ ├── Assets
│ ├── Editor.meta
│ ├── Editor
│ │ ├── CodeAnalysisVsHook.cs
│ │ └── CodeAnalysisVsHook.cs.meta
│ ├── ThaiFontAdjuster.meta
│ ├── ThaiFontAdjuster
│ │ ├── ThaiFontAdjuster.cs
│ │ └── ThaiFontAdjuster.cs.meta
│ ├── ThaiFontAdjusterDemo.meta
│ └── ThaiFontAdjusterDemo
│ │ ├── Garuda.ttf
│ │ ├── Garuda.ttf.meta
│ │ ├── Kinnari.ttf
│ │ ├── Kinnari.ttf.meta
│ │ ├── Loma.ttf
│ │ ├── Loma.ttf.meta
│ │ ├── Norasi.ttf
│ │ ├── Norasi.ttf.meta
│ │ ├── NotoSansThai-Regular-Adjusted.ttf
│ │ ├── NotoSansThai-Regular-Adjusted.ttf.meta
│ │ ├── ThaiFontAdjusterDemo.cs
│ │ ├── ThaiFontAdjusterDemo.cs.meta
│ │ ├── ThaiFontAdjusterDemo.unity
│ │ └── ThaiFontAdjusterDemo.unity.meta
│ ├── ProjectSettings
│ ├── AudioManager.asset
│ ├── ClusterInputManager.asset
│ ├── DynamicsManager.asset
│ ├── EditorBuildSettings.asset
│ ├── EditorSettings.asset
│ ├── GraphicsSettings.asset
│ ├── InputManager.asset
│ ├── NavMeshAreas.asset
│ ├── NetworkManager.asset
│ ├── Physics2DSettings.asset
│ ├── ProjectSettings.asset
│ ├── ProjectVersion.txt
│ ├── QualitySettings.asset
│ ├── TagManager.asset
│ ├── TimeManager.asset
│ ├── UnityAdsSettings.asset
│ └── UnityConnectSettings.asset
│ └── ThaiFontAdjuster.unitypackage.json
└── tools
└── nuget
├── NuGet.Config
├── NuGet.targets
├── nuget.exe
└── packages.config
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*.{cs, py, fsx}]
4 | indent_style = space
5 | indent_size = 4
6 | trim_trailing_whitespace = true
7 | insert_final_newline = true
8 |
9 | [*.{json, xml}]
10 | indent_style = space
11 | indent_size = 2
12 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # User-specific files
2 | *.suo
3 | *.user
4 | *.userosscache
5 | *.sln.docstates
6 |
7 | # Build results
8 | [Dd]ebug/
9 | [Dd]ebugPublic/
10 | [Rr]elease/
11 | [Rr]eleases/
12 | x64/
13 | x86/
14 | build/
15 | bld/
16 | [Bb]in/
17 | [Oo]bj/
18 |
19 | # Coverity output
20 | cov-int/
21 |
22 | # Visual Studio 2015 cache/options directory
23 | .vs/
24 |
25 | # DNX
26 | project.lock.json
27 | artifacts/
28 |
29 | # Visual Studio profiler
30 | *.psess
31 | *.vsp
32 | *.vspx
33 |
34 | # Visual Studio Code
35 | .vscode
36 |
37 | # Click-Once directory
38 | [Pp]ublish/
39 |
40 | # NuGet Packages
41 | *.nupkg
42 | # The packages folder can be ignored because of Package Restore
43 | **/packages/*
44 | # except build/, which is used as an MSBuild target.
45 | !**/packages/build/
46 | # Uncomment if necessary however generally it will be regenerated when needed
47 | #!**/packages/repositories.config
48 |
49 | # Windows Azure Build Output
50 | csx/
51 | *.build.csdef
52 |
53 | # Windows Store app package directory
54 | AppPackages/
55 |
56 | # Visual Studio cache files
57 | # files ending in .cache can be ignored
58 | *.[Cc]ache
59 | # but keep track of directories ending in .cache
60 | !*.[Cc]ache/
61 |
62 | # Fake
63 | .fake/
64 |
65 | # No APK
66 | *.apk
67 |
--------------------------------------------------------------------------------
/CodeAnalysis.ruleset:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
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 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 SaladLab
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 | # ThaiFontAdjuster
2 |
3 | Unity3D font renderer lacks support for
4 | [GPOS and GSUB](https://www.microsoft.com/typography/otspec/gpos.htm).
5 | Because Thai font heavily depends on these features, rendered image looks ugly without them.
6 |
7 | This library gives workaround to render Thai font almost correctly.
8 | Following image shows differences between results from original Unity3D and this library.
9 | Position of tone mark, upper vowel and lower vowel would be adjusted by surrounding characters.
10 |
11 | 
12 |
13 | ## Where can I get it?
14 |
15 | Visit [Release](https://github.com/SaladLab/Unity3D.ThaiFontAdjuster/releases)
16 | page to get latest ThaiFontAdjuster unity-package.
17 |
18 | ## How to use
19 |
20 | Just before setting text of UnityEngine.UI.Text, text need to be translated by
21 | `ThaiFontAdjuster.Adjust`. Font of Text should be one of supported Thai fonts.
22 |
23 | ```csharp
24 | var s = "Thai ก์กิ์ป์ปิ์ฎุญุ";
25 | Label.text = ThaiFontAdjuster.Adjust(s);
26 | ```
27 |
28 | For other UI library using Unity3D dynamic font (like NGUI), you can do it by the same way.
29 |
30 | ## Limitation
31 |
32 | #### ThaiFontAdjuster only can handle special fonts.
33 | - Font should have extended glyphs from U+F700 to U+F71A providing various position of Thai characters.
34 | - [NECTEC National Fonts](http://www.nectec.or.th/pub/review-software/font/national-fonts.html) (Garuda, Loma, Kinnari, Norasi) already provide it.
35 | - Modified NotoSansThai containing extended glyphs is included in this package.
36 | - If you want to use another font, check it contains extended glyphs, otherwise glyphs have to be added to font by yourself.
37 |
38 | #### Adjusting position is not same as true-type rendered one with GPOS and GSUB support.
39 | - This library adjusts position of glyph at best with limited extended set of character.
40 | But without GPOS, ideal positioning is impossibe.
41 |
42 | ## Under the hood
43 |
44 | If you want to know more detail about this libary, check [UnderTheHood](./docs/UnderTheHood.md) article.
45 |
--------------------------------------------------------------------------------
/build.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 |
3 | pushd %~dp0
4 |
5 | SET PACKAGEPATH=.\packages\
6 | SET NUGET=.\tools\nuget\NuGet.exe
7 | SET NUGETOPTIONS=-ConfigFile .\tools\nuget\NuGet.Config -OutputDirectory %PACKAGEPATH% -ExcludeVersion
8 |
9 | IF NOT EXIST %PACKAGEPATH%FAKE\Ver_4.25.4 (
10 | RD /S/Q %PACKAGEPATH%FAKE
11 | %NUGET% install FAKE -Version 4.25.4 %NUGETOPTIONS%
12 | COPY NUL %PACKAGEPATH%FAKE\Ver_4.25.4
13 | )
14 |
15 | IF NOT EXIST %PACKAGEPATH%FAKE.BuildLib\Ver_0.3.1 (
16 | RD /S/Q %PACKAGEPATH%FAKE.BuildLib
17 | %NUGET% install FAKE.BuildLib -Version 0.3.1 %NUGETOPTIONS%
18 | COPY NUL %PACKAGEPATH%FAKE.BuildLib\Ver_0.3.1
19 | )
20 |
21 | set encoding=utf-8
22 | "%PACKAGEPATH%FAKE\tools\FAKE.exe" build.fsx %*
23 |
24 | popd
25 |
--------------------------------------------------------------------------------
/build.fsx:
--------------------------------------------------------------------------------
1 | #I @"packages/FAKE/tools"
2 | #I @"packages/FAKE.BuildLib/lib/net451"
3 | #r "FakeLib.dll"
4 | #r "BuildLib.dll"
5 |
6 | open Fake
7 | open BuildLib
8 |
9 | let solution = initSolution "" "" []
10 |
11 | Target "Clean" <| fun _ -> cleanBin
12 |
13 | Target "PackUnity" <| fun _ ->
14 | packUnityPackage "./src/UnityPackage/ThaiFontAdjuster.unitypackage.json"
15 |
16 | Target "Pack" <| fun _ -> ()
17 |
18 | Target "Help" <| fun _ ->
19 | showUsage solution (fun _ -> None)
20 |
21 | "Clean"
22 | ==> "PackUnity"
23 | ==> "Pack"
24 |
25 | RunTargetOrDefault "Help"
26 |
--------------------------------------------------------------------------------
/docs/Features.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/36571c714d9ae7cca21c12f7c1eb86158382f12b/docs/Features.png
--------------------------------------------------------------------------------
/docs/Font.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/36571c714d9ae7cca21c12f7c1eb86158382f12b/docs/Font.png
--------------------------------------------------------------------------------
/docs/FontExtended.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/36571c714d9ae7cca21c12f7c1eb86158382f12b/docs/FontExtended.png
--------------------------------------------------------------------------------
/docs/UnderTheHood.md:
--------------------------------------------------------------------------------
1 | # Under the hood
2 |
3 | ## The structure of Thai letter clusters.
4 |
5 | Thai letter use composition of multiple character to make one thai letter.
6 | For example, letter กิ้ has 3 unicode characters.
7 |
8 | > ก + ◌ี + ◌้ → กิ้
9 | > - ก: Base consonant KO KAI (U+0E01)
10 | > - ◌ี: Upper vowel SARA I (U+0E34)
11 | > - ◌้: Top tone mark MAI THO (U+0E49)
12 |
13 | Because font cannot have full composed glyphs for Thai letters,
14 | font renderer has to support composition of glyphs to compose single letter.
15 |
16 | Simply drawing multiple glyphs at sample position can compose glyphs.
17 | But for letter ปิ้
18 |
19 | > ป + ◌ี + ◌้ → ปิ้
20 | > - ก: Base consonant PO PLA (U+0E1B)
21 | > - ◌ี: Upper vowel SARA I (U+0E34)
22 | > - ◌้: Top tone mark MAI THO (U+0E49)
23 |
24 | Base consonant ป has an ascender with right side, upper vowel and top tone mark
25 | should be positioned slight shifted to left to avoid conflict of glyphs.
26 |
27 | ## GSUB and GPOS
28 |
29 | Opentype font provides GSUB and GPOS to deal with these problem.
30 | GSUB is used for substituting glyphs and can control thing like:
31 |
32 | > ญ + ◌ุ → ญุ
33 | > - ญ: Base consonant YO YING (U+0E0D)
34 | > - ◌ุ: Lower vowel SARA U (U+0E38)
35 |
36 | Consonant ญ has lower part and when combined with lower vowel like SARA U,
37 | lower part of ญ should be removed. GSUB will handle like this:
38 |
39 | > ญ + ◌ุ → ญ_descless + ◌ุ
40 |
41 | GPOS is used for positioning glyphs, which can control vowel and tone mark positioning.
42 |
43 | > Glyph ◌้ positioning
44 | > - ก + ◌้ → ก้
45 | > - ก + ◌ี + ◌้ → กิ้
46 | > - ป + ◌้ → ป้
47 | > - ป + ◌ี + ◌้ → ปิ้
48 |
49 | Regular Thai fonts have many GPOS data for positiong glyphs delicately.
50 | With GSUB and GPOS, Thai letter can be constructed neatly.
51 |
52 | ## The C90 encoding for Thai
53 |
54 | Without GPOS support, they already solved glyph positioning problem.
55 | Font was developed to have extended glyphs for upper vowel, lower vowel and tone mark
56 | to have various positions like left-one, top-one, etc.
57 | Thai letters are categoried into various graphical glyph classes, and
58 | context patterns for base glyphs with vowels and tone marks is written like:
59 |
60 | > Glyph ◌้ positioning
61 | > - ก + ◌้ → ก้ + ◌้_low
62 | > - ก + ◌ี + ◌้ → ก + ◌ี + ◌้
63 | > - ป + ◌้ → ป + ◌้_lowleft
64 | > - ป + ◌ี + ◌้ → ป + ◌ี_left + ◌้_left
65 |
66 | For more information about this, read [Thai fonts, TUGboat, Volume 21 (2000), No. 2](https://www.tug.org/TUGboat/tb21-2/tb67lemb.pdf) and
67 | [The C90 encoding for Thai](http://www.bakoma-tex.com/doc/fonts/enc/c90/c90.pdf).
68 |
69 | And they have been using this strategy for long time, regular Thai font have
70 | extended glyphs which meets C90 encoding.
71 | For example [Garuda](http://www.nectec.or.th/pub/review-software/font/national-fonts.html)
72 | font has Thai glyphs
73 |
74 | 
75 |
76 | In addition this standard glyphs, extended glyphs are included.
77 |
78 | 
79 |
80 | Extended glyphs consist of:
81 |
82 | | Code | Description | C90 Category |
83 | | --------- | ------------------- | ------------- |
84 | | U+F700 | uni0E10.descless | base.descless |
85 | | U+F701~04 | uni0E34~37.left | upper.left |
86 | | U+F705~09 | uni0E48~4C.lowleft | top.lowleft |
87 | | U+F70A~0E | uni0E48~4C.low | top.low |
88 | | U+F70F | uni0E0D.descless | base.descless |
89 | | U+F710~12 | uni0E31,4D,47.left | upper.left |
90 | | U+F713~17 | uni0E48~4C.left | top.left |
91 | | U+F718~1A | uni0E38~3A.low | lower.low |
92 |
93 | ## Unity3D
94 |
95 | Because Unity3D lacks support for GSUB and GPOS, C90 encoding is used for controlling
96 | the position of glyphs.
97 | GPOS is impossible to mimic without support but GSUB is possible with
98 | simple finding and replacing string.
99 |
--------------------------------------------------------------------------------
/src/UnityPackage/.gitignore:
--------------------------------------------------------------------------------
1 | /[Ll]ibrary/
2 | /[Tt]emp/
3 | /[Oo]bj/
4 | /[Bb]uild/
5 | /[Oo]utput/
6 |
7 | # Autogenerated VS/MD solution and project files
8 | *.csproj
9 | *.unityproj
10 | *.sln
11 | *.suo
12 | *.tmp
13 | *.user
14 | *.userprefs
15 | *.pidb
16 | *.booproj
17 |
18 | # Unity3D generated meta files
19 | *.pidb.meta
20 |
21 | # Unity3D Generated File On Crash Reports
22 | sysinfo.txt
23 |
24 | # UnityPackage
25 | *.unitypackage
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/Editor.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 36bf8da78c78dbc4c9b1e196ae8fb4d3
3 | folderAsset: yes
4 | timeCreated: 1447574544
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/Editor/CodeAnalysisVsHook.cs:
--------------------------------------------------------------------------------
1 | #if UNITY_EDITOR_WIN
2 |
3 | using System;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Xml.Linq;
8 | using SyntaxTree.VisualStudio.Unity.Bridge;
9 | using UnityEditor;
10 |
11 | [InitializeOnLoad]
12 | public class CodeAnalysisVsHook
13 | {
14 | private class Utf8StringWriter : StringWriter
15 | {
16 | public override Encoding Encoding
17 | {
18 | get { return Encoding.UTF8; }
19 | }
20 | }
21 |
22 | // NOTE: Good to have
23 | // - automatic nuget package download
24 | // - stylecop file or directory exclude list
25 |
26 | static CodeAnalysisVsHook()
27 | {
28 | ProjectFilesGenerator.ProjectFileGeneration += (name, content) =>
29 | {
30 | var rulesetPath = GetRulesetFile();
31 | if (string.IsNullOrEmpty(rulesetPath))
32 | return content;
33 |
34 | var getStyleCopAnalyzersPath = GetStyleCopAnalyzersPath();
35 | if (string.IsNullOrEmpty(getStyleCopAnalyzersPath))
36 | return content;
37 |
38 | // Insert a ruleset file and StyleCop.Analyzers into a project file
39 |
40 | var document = XDocument.Parse(content);
41 |
42 | var ns = document.Root.Name.Namespace;
43 |
44 | var propertyGroup = document.Root.Descendants(ns + "PropertyGroup").FirstOrDefault();
45 | if (propertyGroup != null)
46 | {
47 | propertyGroup.Add(new XElement(ns + "CodeAnalysisRuleSet", rulesetPath));
48 | }
49 |
50 | var itemGroup = document.Root.Descendants(ns + "ItemGroup").LastOrDefault();
51 | if (itemGroup != null)
52 | {
53 | var newItemGroup = new XElement(ns + "ItemGroup");
54 | foreach (var file in Directory.GetFiles(getStyleCopAnalyzersPath + @"\analyzers\dotnet\cs", "*.dll"))
55 | {
56 | newItemGroup.Add(new XElement(ns + "Analyzer", new XAttribute("Include", file)));
57 | }
58 | itemGroup.AddAfterSelf(newItemGroup);
59 | }
60 |
61 | var str = new Utf8StringWriter();
62 | document.Save(str);
63 | return str.ToString();
64 | };
65 | }
66 |
67 | private static string GetRulesetFile()
68 | {
69 | // Find *.ruleset in traversing parent directories.
70 |
71 | var dir = Directory.GetCurrentDirectory();
72 | try
73 | {
74 | while (true)
75 | {
76 | var files = Directory.GetFiles(dir, "*.ruleset");
77 | if (files.Length > 0)
78 | return files[0];
79 |
80 | dir = Path.GetDirectoryName(dir);
81 | }
82 | }
83 | catch (Exception)
84 | {
85 | return null;
86 | }
87 | }
88 |
89 | private static string GetStyleCopAnalyzersPath()
90 | {
91 | // Find /packages/StyleCop.Analyzers* in traversing parent directories.
92 |
93 | var dir = Directory.GetCurrentDirectory();
94 | try
95 | {
96 | while (true)
97 | {
98 | var packagesPath = Path.Combine(dir, "packages");
99 | if (Directory.Exists(packagesPath))
100 | {
101 | var dirs = Directory.GetDirectories(packagesPath, "StyleCop.Analyzers*");
102 | if (dirs.Length > 0)
103 | return dirs[0];
104 | }
105 |
106 | dir = Path.GetDirectoryName(dir);
107 | }
108 | }
109 | catch (Exception)
110 | {
111 | return null;
112 | }
113 | }
114 | }
115 |
116 | #endif
117 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/Editor/CodeAnalysisVsHook.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 306392ace64e24f439e3b04e76770427
3 | timeCreated: 1459906747
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjuster.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8768715d637d3fd4e8faa45309557063
3 | folderAsset: yes
4 | timeCreated: 1454139301
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjuster/ThaiFontAdjuster.cs:
--------------------------------------------------------------------------------
1 | using System.Text;
2 |
3 | public static class ThaiFontAdjuster
4 | {
5 | public static bool IsThaiString(string s)
6 | {
7 | var length = s.Length;
8 | for (var i = 0; i < length; i++)
9 | {
10 | var c = s[i];
11 | if (c >= '\x0E00' && c <= '\x0E7F')
12 | return true;
13 | }
14 | return false;
15 | }
16 |
17 | // ========== EXTENDED CHARACTER TABLE ==========
18 | // F700: uni0E10.descless (base.descless)
19 | // F701~04: uni0E34~37.left (upper.left)
20 | // F705~09: uni0E48~4C.lowleft (top.lowleft)
21 | // F70A~0E: uni0E48~4C.low (top.low)
22 | // F70F: uni0E0D.descless (base.descless)
23 | // F710~12: uni0E31,4D,47.left (upper.left)
24 | // F713~17: uni0E48~4C.left (top.left)
25 | // F718~1A: uni0E38~3A.low (lower.low)
26 | // ==============================================
27 |
28 | public static string Adjust(string s)
29 | {
30 | // http://www.bakoma-tex.com/doc/fonts/enc/c90/c90.pdf
31 |
32 | var length = s.Length;
33 | var sb = new StringBuilder(length);
34 | for (var i = 0; i < length; i++)
35 | {
36 | var c = s[i];
37 |
38 | // [base] ~ [top]
39 | if (IsTop(c) && i > 0)
40 | {
41 | // [base] [top] -> [base] [top.low]
42 | // [base] [lower] [top] -> [base] [lower] [top.low]
43 | // [base.asc] [top] -> [base.asc] [top.lowleft]
44 | // [base.asc] [lower] [top] -> [base.asc] [lower] [top.lowleft]
45 | var b = s[i - 1];
46 | if (IsLower(b) && i > 1)
47 | b = s[i - 2];
48 | if (IsBase(b))
49 | {
50 | var followingNikhahit = (i < length - 1 && (s[i + 1] == '\x0E33' || s[i + 1] == '\x0E4D'));
51 | if (IsBaseAsc(b))
52 | {
53 | if (followingNikhahit)
54 | {
55 | // [base.asc] [top] [sara am] -> [base.asc] [nikhahit] [top.left] [sara aa]
56 | c = (char)(c + ('\xF713' - '\x0E48'));
57 | sb.Append('\xF711');
58 | sb.Append(c);
59 | if (s[i + 1] == '\x0E33')
60 | sb.Append('\x0E32');
61 | i += 1;
62 | continue;
63 | }
64 | else
65 | {
66 | c = (char)(c + ('\xF705' - '\x0E48'));
67 | }
68 | }
69 | else
70 | {
71 | if (followingNikhahit == false)
72 | c = (char)(c + ('\xF70A' - '\x0E48'));
73 | }
74 | }
75 |
76 | // [base.asc] [upper] [top] -> [base.asc] [upper] [top.left]
77 | if (i > 1 && IsUpper(s[i - 1]) && IsBaseAsc(s[i - 2]))
78 | {
79 | c = (char)(c + ('\xF713' - '\x0E48'));
80 | }
81 | }
82 | // [base.asc] [upper] -> [base.asc] [upper-left]
83 | else if (IsUpper(c) && i > 0 && IsBaseAsc(s[i - 1]))
84 | {
85 | switch (c)
86 | {
87 | case '\x0E31': c = '\xF710'; break;
88 | case '\x0E34': c = '\xF701'; break;
89 | case '\x0E35': c = '\xF702'; break;
90 | case '\x0E36': c = '\xF703'; break;
91 | case '\x0E37': c = '\xF704'; break;
92 | case '\x0E4D': c = '\xF711'; break;
93 | case '\x0E47': c = '\xF712'; break;
94 | }
95 | }
96 | // [base.desc] [lower] -> [base.desc] [lower.low]
97 | else if (IsLower(c) && i > 0 && IsBaseDesc(s[i - 1]))
98 | {
99 | c = (char)(c + ('\xF718' - '\x0E38'));
100 | }
101 | // [YO YING] [lower] -> [YO YING w/o lower] [lower]
102 | else if (c == '\x0E0D' && i < length - 1 && IsLower(s[i + 1]))
103 | {
104 | c = '\xF70F';
105 | }
106 | // [THO THAN] [lower] -> [THO THAN w/o lower] [lower]
107 | else if (c == '\x0E10' && i < length - 1 && IsLower(s[i + 1]))
108 | {
109 | c = '\xF700';
110 | }
111 | sb.Append(c);
112 | }
113 | return sb.ToString();
114 | }
115 |
116 | private static bool IsBase(char c)
117 | {
118 | return (c >= '\x0E01' && c <= '\x0E2F') || c == '\x0E30' || c == '\x0E40' || c == '\x0E41';
119 | }
120 |
121 | private static bool IsBaseDesc(char c)
122 | {
123 | return c == '\x0E0E' || c == '\x0E0F';
124 | }
125 |
126 | private static bool IsBaseAsc(char c)
127 | {
128 | return c == '\x0E1B' || c == '\x0E1D' || c == '\x0E1F' || c == '\x0E2C';
129 | }
130 |
131 | private static bool IsTop(char c)
132 | {
133 | // Tone Mark, THANTHAKHAT
134 | return c >= '\x0E48' && c <= '\x0E4C';
135 | }
136 |
137 | private static bool IsLower(char c)
138 | {
139 | // SARA U, SARA UU, PHINTHU
140 | return c >= '\x0E38' && c <= '\x0E3A';
141 | }
142 |
143 | private static bool IsUpper(char c)
144 | {
145 | return c == '\x0E31' || c == '\x0E34' || c == '\x0E35' || c == '\x0E36' ||
146 | c == '\x0E37' || c == '\x0E47' || c == '\x0E4D';
147 | }
148 | }
149 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjuster/ThaiFontAdjuster.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9077f203dcc94c44485127d06287261a
3 | timeCreated: 1454134178
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 91feb4bcbfdaa29429c63eacc10ce034
3 | folderAsset: yes
4 | timeCreated: 1454139334
5 | licenseType: Pro
6 | DefaultImporter:
7 | userData:
8 | assetBundleName:
9 | assetBundleVariant:
10 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Garuda.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/36571c714d9ae7cca21c12f7c1eb86158382f12b/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Garuda.ttf
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Garuda.ttf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 150d3e88cbefb184388ba52188cfe2c2
3 | timeCreated: 1454159000
4 | licenseType: Pro
5 | TrueTypeFontImporter:
6 | serializedVersion: 2
7 | fontSize: 16
8 | forceTextureCase: -2
9 | characterSpacing: 1
10 | characterPadding: 0
11 | includeFontData: 1
12 | use2xBehaviour: 0
13 | fontNames: []
14 | fallbackFontReferences: []
15 | customCharacters:
16 | fontRenderingMode: 0
17 | userData:
18 | assetBundleName:
19 | assetBundleVariant:
20 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Kinnari.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/36571c714d9ae7cca21c12f7c1eb86158382f12b/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Kinnari.ttf
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Kinnari.ttf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d1ad354a98fa5f3499d7f24a4214a230
3 | timeCreated: 1454159000
4 | licenseType: Pro
5 | TrueTypeFontImporter:
6 | serializedVersion: 2
7 | fontSize: 16
8 | forceTextureCase: -2
9 | characterSpacing: 1
10 | characterPadding: 0
11 | includeFontData: 1
12 | use2xBehaviour: 0
13 | fontNames: []
14 | fallbackFontReferences: []
15 | customCharacters:
16 | fontRenderingMode: 0
17 | userData:
18 | assetBundleName:
19 | assetBundleVariant:
20 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Loma.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/36571c714d9ae7cca21c12f7c1eb86158382f12b/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Loma.ttf
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Loma.ttf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 673976873f7ccf946b7a36125644fe54
3 | timeCreated: 1454159000
4 | licenseType: Pro
5 | TrueTypeFontImporter:
6 | serializedVersion: 2
7 | fontSize: 16
8 | forceTextureCase: -2
9 | characterSpacing: 1
10 | characterPadding: 0
11 | includeFontData: 1
12 | use2xBehaviour: 0
13 | fontNames: []
14 | fallbackFontReferences: []
15 | customCharacters:
16 | fontRenderingMode: 0
17 | userData:
18 | assetBundleName:
19 | assetBundleVariant:
20 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Norasi.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/36571c714d9ae7cca21c12f7c1eb86158382f12b/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Norasi.ttf
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/Norasi.ttf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 14e4f1fd302790444b92953ca92a5d86
3 | timeCreated: 1454159000
4 | licenseType: Pro
5 | TrueTypeFontImporter:
6 | serializedVersion: 2
7 | fontSize: 16
8 | forceTextureCase: -2
9 | characterSpacing: 1
10 | characterPadding: 0
11 | includeFontData: 1
12 | use2xBehaviour: 0
13 | fontNames: []
14 | fallbackFontReferences: []
15 | customCharacters:
16 | fontRenderingMode: 0
17 | userData:
18 | assetBundleName:
19 | assetBundleVariant:
20 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/NotoSansThai-Regular-Adjusted.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/36571c714d9ae7cca21c12f7c1eb86158382f12b/src/UnityPackage/Assets/ThaiFontAdjusterDemo/NotoSansThai-Regular-Adjusted.ttf
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/NotoSansThai-Regular-Adjusted.ttf.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1bd51dcfff236b949915f17ee6c191bd
3 | timeCreated: 1454139571
4 | licenseType: Pro
5 | TrueTypeFontImporter:
6 | serializedVersion: 2
7 | fontSize: 16
8 | forceTextureCase: -2
9 | characterSpacing: 1
10 | characterPadding: 0
11 | includeFontData: 1
12 | use2xBehaviour: 0
13 | fontNames: []
14 | fallbackFontReferences: []
15 | customCharacters:
16 | fontRenderingMode: 0
17 | userData:
18 | assetBundleName:
19 | assetBundleVariant:
20 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/ThaiFontAdjusterDemo.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.UI;
3 |
4 | public class ThaiFontAdjusterDemo : MonoBehaviour
5 | {
6 | public Dropdown FontDropdown;
7 | public Font[] Fonts;
8 | public Text OriginalText;
9 | public Text AdjustedText;
10 |
11 | private void Start()
12 | {
13 | PrepareFontDropdown();
14 | ShowText();
15 | }
16 |
17 | private void PrepareFontDropdown()
18 | {
19 | FontDropdown.options.Clear();
20 | foreach (var font in Fonts)
21 | FontDropdown.options.Add(new Dropdown.OptionData(font.name));
22 | FontDropdown.captionText.text = Fonts[0].name;
23 | }
24 |
25 | public void OnFontDropdownValueChange()
26 | {
27 | ShowText();
28 | }
29 |
30 | private void ShowText()
31 | {
32 | var s =
33 | // top -> top.low
34 | "\x0E01\x0E34 \x0E01\x0E4C \x0E01\x0E38\x0E4C \x0E01\x0E34\x0E4C \x0E01\x0E4C\x0E33".Replace(" ", "") + " " +
35 | // top -> top.lowleft | top.left
36 | "\x0E1B\x0E34 \x0E1B\x0E4C \x0E1B\x0E38\x0E4C \x0E1B\x0E34\x0E4C \x0E1B\x0E4C\x0E33".Replace(" ", "") + " " +
37 | // lower -> lower.low
38 | "\x0E0E\x0E38 \x0E0F\x0E38".Replace(" ", "") + " " +
39 | // base.desclike -> base.descless
40 | "\x0E01\x0E38 \x0E0D\x0E38 \x0E10\x0E38".Replace(" ", "") + " ";
41 |
42 | ShowText(s);
43 | }
44 |
45 | private void ShowText(string s)
46 | {
47 | var font = Fonts[FontDropdown.value];
48 | OriginalText.font = font;
49 | OriginalText.text = s;
50 | AdjustedText.font = font;
51 | AdjustedText.text = ThaiFontAdjuster.Adjust(s);
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/ThaiFontAdjusterDemo.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 43c4fc9f377cbb343a4b9b45e48c9e6d
3 | timeCreated: 1454139706
4 | licenseType: Pro
5 | MonoImporter:
6 | serializedVersion: 2
7 | defaultReferences: []
8 | executionOrder: 0
9 | icon: {instanceID: 0}
10 | userData:
11 | assetBundleName:
12 | assetBundleVariant:
13 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/ThaiFontAdjusterDemo.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | SceneSettings:
5 | m_ObjectHideFlags: 0
6 | m_PVSData:
7 | m_PVSObjectsArray: []
8 | m_PVSPortalsArray: []
9 | m_OcclusionBakeSettings:
10 | smallestOccluder: 5
11 | smallestHole: 0.25
12 | backfaceThreshold: 100
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 6
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 3
28 | m_SkyboxMaterial: {fileID: 0}
29 | m_HaloStrength: 0.5
30 | m_FlareStrength: 1
31 | m_FlareFadeSpeed: 3
32 | m_HaloTexture: {fileID: 0}
33 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
34 | m_DefaultReflectionMode: 0
35 | m_DefaultReflectionResolution: 128
36 | m_ReflectionBounces: 1
37 | m_ReflectionIntensity: 1
38 | m_CustomReflection: {fileID: 0}
39 | m_Sun: {fileID: 0}
40 | --- !u!157 &3
41 | LightmapSettings:
42 | m_ObjectHideFlags: 0
43 | serializedVersion: 6
44 | m_GIWorkflowMode: 1
45 | m_LightmapsMode: 1
46 | m_GISettings:
47 | serializedVersion: 2
48 | m_BounceScale: 1
49 | m_IndirectOutputScale: 1
50 | m_AlbedoBoost: 1
51 | m_TemporalCoherenceThreshold: 1
52 | m_EnvironmentLightingMode: 0
53 | m_EnableBakedLightmaps: 0
54 | m_EnableRealtimeLightmaps: 0
55 | m_LightmapEditorSettings:
56 | serializedVersion: 3
57 | m_Resolution: 2
58 | m_BakeResolution: 40
59 | m_TextureWidth: 1024
60 | m_TextureHeight: 1024
61 | m_AOMaxDistance: 1
62 | m_Padding: 2
63 | m_CompAOExponent: 0
64 | m_LightmapParameters: {fileID: 0}
65 | m_TextureCompression: 1
66 | m_FinalGather: 0
67 | m_FinalGatherRayCount: 1024
68 | m_ReflectionCompression: 2
69 | m_LightingDataAsset: {fileID: 0}
70 | m_RuntimeCPUUsage: 25
71 | --- !u!196 &4
72 | NavMeshSettings:
73 | serializedVersion: 2
74 | m_ObjectHideFlags: 0
75 | m_BuildSettings:
76 | serializedVersion: 2
77 | agentRadius: 0.5
78 | agentHeight: 2
79 | agentSlope: 45
80 | agentClimb: 0.4
81 | ledgeDropHeight: 0
82 | maxJumpAcrossDistance: 0
83 | accuratePlacement: 0
84 | minRegionArea: 2
85 | cellSize: 0.16666667
86 | manualCellSize: 0
87 | m_NavMeshData: {fileID: 0}
88 | --- !u!1 &66417927
89 | GameObject:
90 | m_ObjectHideFlags: 0
91 | m_PrefabParentObject: {fileID: 0}
92 | m_PrefabInternal: {fileID: 0}
93 | serializedVersion: 4
94 | m_Component:
95 | - 224: {fileID: 66417928}
96 | - 114: {fileID: 66417931}
97 | - 222: {fileID: 66417930}
98 | - 114: {fileID: 66417929}
99 | m_Layer: 5
100 | m_Name: Viewport
101 | m_TagString: Untagged
102 | m_Icon: {fileID: 0}
103 | m_NavMeshLayer: 0
104 | m_StaticEditorFlags: 0
105 | m_IsActive: 1
106 | --- !u!224 &66417928
107 | RectTransform:
108 | m_ObjectHideFlags: 0
109 | m_PrefabParentObject: {fileID: 0}
110 | m_PrefabInternal: {fileID: 0}
111 | m_GameObject: {fileID: 66417927}
112 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
113 | m_LocalPosition: {x: 0, y: 0, z: 0}
114 | m_LocalScale: {x: 1, y: 1, z: 1}
115 | m_Children:
116 | - {fileID: 1434340705}
117 | m_Father: {fileID: 430655442}
118 | m_RootOrder: 0
119 | m_AnchorMin: {x: 0, y: 0}
120 | m_AnchorMax: {x: 1, y: 1}
121 | m_AnchoredPosition: {x: 0, y: 0}
122 | m_SizeDelta: {x: -18, y: 0}
123 | m_Pivot: {x: 0, y: 1}
124 | --- !u!114 &66417929
125 | MonoBehaviour:
126 | m_ObjectHideFlags: 0
127 | m_PrefabParentObject: {fileID: 0}
128 | m_PrefabInternal: {fileID: 0}
129 | m_GameObject: {fileID: 66417927}
130 | m_Enabled: 1
131 | m_EditorHideFlags: 0
132 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
133 | m_Name:
134 | m_EditorClassIdentifier:
135 | m_Material: {fileID: 0}
136 | m_Color: {r: 1, g: 1, b: 1, a: 1}
137 | m_RaycastTarget: 1
138 | m_OnCullStateChanged:
139 | m_PersistentCalls:
140 | m_Calls: []
141 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
142 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
143 | m_Sprite: {fileID: 10917, guid: 0000000000000000f000000000000000, type: 0}
144 | m_Type: 1
145 | m_PreserveAspect: 0
146 | m_FillCenter: 1
147 | m_FillMethod: 4
148 | m_FillAmount: 1
149 | m_FillClockwise: 1
150 | m_FillOrigin: 0
151 | --- !u!222 &66417930
152 | CanvasRenderer:
153 | m_ObjectHideFlags: 0
154 | m_PrefabParentObject: {fileID: 0}
155 | m_PrefabInternal: {fileID: 0}
156 | m_GameObject: {fileID: 66417927}
157 | --- !u!114 &66417931
158 | MonoBehaviour:
159 | m_ObjectHideFlags: 0
160 | m_PrefabParentObject: {fileID: 0}
161 | m_PrefabInternal: {fileID: 0}
162 | m_GameObject: {fileID: 66417927}
163 | m_Enabled: 1
164 | m_EditorHideFlags: 0
165 | m_Script: {fileID: -1200242548, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
166 | m_Name:
167 | m_EditorClassIdentifier:
168 | m_ShowMaskGraphic: 0
169 | --- !u!1 &242386654
170 | GameObject:
171 | m_ObjectHideFlags: 0
172 | m_PrefabParentObject: {fileID: 0}
173 | m_PrefabInternal: {fileID: 0}
174 | serializedVersion: 4
175 | m_Component:
176 | - 224: {fileID: 242386655}
177 | - 222: {fileID: 242386657}
178 | - 114: {fileID: 242386656}
179 | m_Layer: 5
180 | m_Name: Item Background
181 | m_TagString: Untagged
182 | m_Icon: {fileID: 0}
183 | m_NavMeshLayer: 0
184 | m_StaticEditorFlags: 0
185 | m_IsActive: 1
186 | --- !u!224 &242386655
187 | RectTransform:
188 | m_ObjectHideFlags: 0
189 | m_PrefabParentObject: {fileID: 0}
190 | m_PrefabInternal: {fileID: 0}
191 | m_GameObject: {fileID: 242386654}
192 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
193 | m_LocalPosition: {x: 0, y: 0, z: 0}
194 | m_LocalScale: {x: 1, y: 1, z: 1}
195 | m_Children: []
196 | m_Father: {fileID: 581963732}
197 | m_RootOrder: 0
198 | m_AnchorMin: {x: 0, y: 0}
199 | m_AnchorMax: {x: 1, y: 1}
200 | m_AnchoredPosition: {x: 0, y: 0}
201 | m_SizeDelta: {x: 0, y: 0}
202 | m_Pivot: {x: 0.5, y: 0.5}
203 | --- !u!114 &242386656
204 | MonoBehaviour:
205 | m_ObjectHideFlags: 0
206 | m_PrefabParentObject: {fileID: 0}
207 | m_PrefabInternal: {fileID: 0}
208 | m_GameObject: {fileID: 242386654}
209 | m_Enabled: 1
210 | m_EditorHideFlags: 0
211 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
212 | m_Name:
213 | m_EditorClassIdentifier:
214 | m_Material: {fileID: 0}
215 | m_Color: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
216 | m_RaycastTarget: 1
217 | m_OnCullStateChanged:
218 | m_PersistentCalls:
219 | m_Calls: []
220 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
221 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
222 | m_Sprite: {fileID: 0}
223 | m_Type: 0
224 | m_PreserveAspect: 0
225 | m_FillCenter: 1
226 | m_FillMethod: 4
227 | m_FillAmount: 1
228 | m_FillClockwise: 1
229 | m_FillOrigin: 0
230 | --- !u!222 &242386657
231 | CanvasRenderer:
232 | m_ObjectHideFlags: 0
233 | m_PrefabParentObject: {fileID: 0}
234 | m_PrefabInternal: {fileID: 0}
235 | m_GameObject: {fileID: 242386654}
236 | --- !u!1 &334365441
237 | GameObject:
238 | m_ObjectHideFlags: 0
239 | m_PrefabParentObject: {fileID: 0}
240 | m_PrefabInternal: {fileID: 0}
241 | serializedVersion: 4
242 | m_Component:
243 | - 224: {fileID: 334365442}
244 | - 222: {fileID: 334365444}
245 | - 114: {fileID: 334365443}
246 | m_Layer: 5
247 | m_Name: AdjustedLabel
248 | m_TagString: Untagged
249 | m_Icon: {fileID: 0}
250 | m_NavMeshLayer: 0
251 | m_StaticEditorFlags: 0
252 | m_IsActive: 1
253 | --- !u!224 &334365442
254 | RectTransform:
255 | m_ObjectHideFlags: 0
256 | m_PrefabParentObject: {fileID: 0}
257 | m_PrefabInternal: {fileID: 0}
258 | m_GameObject: {fileID: 334365441}
259 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
260 | m_LocalPosition: {x: 0, y: 0, z: 0}
261 | m_LocalScale: {x: 1, y: 1, z: 1}
262 | m_Children: []
263 | m_Father: {fileID: 976904208}
264 | m_RootOrder: 3
265 | m_AnchorMin: {x: 0, y: 0.5}
266 | m_AnchorMax: {x: 0, y: 0.5}
267 | m_AnchoredPosition: {x: 75, y: -50}
268 | m_SizeDelta: {x: 150, y: 50}
269 | m_Pivot: {x: 0.5, y: 0.5}
270 | --- !u!114 &334365443
271 | MonoBehaviour:
272 | m_ObjectHideFlags: 0
273 | m_PrefabParentObject: {fileID: 0}
274 | m_PrefabInternal: {fileID: 0}
275 | m_GameObject: {fileID: 334365441}
276 | m_Enabled: 1
277 | m_EditorHideFlags: 0
278 | m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
279 | m_Name:
280 | m_EditorClassIdentifier:
281 | m_Material: {fileID: 0}
282 | m_Color: {r: 0.77205884, g: 0.78341264, b: 0.78341264, a: 1}
283 | m_RaycastTarget: 1
284 | m_OnCullStateChanged:
285 | m_PersistentCalls:
286 | m_Calls: []
287 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
288 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
289 | m_FontData:
290 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
291 | m_FontSize: 25
292 | m_FontStyle: 0
293 | m_BestFit: 0
294 | m_MinSize: 2
295 | m_MaxSize: 40
296 | m_Alignment: 8
297 | m_AlignByGeometry: 0
298 | m_RichText: 1
299 | m_HorizontalOverflow: 0
300 | m_VerticalOverflow: 0
301 | m_LineSpacing: 1
302 | m_Text: 'Adjusted: '
303 | --- !u!222 &334365444
304 | CanvasRenderer:
305 | m_ObjectHideFlags: 0
306 | m_PrefabParentObject: {fileID: 0}
307 | m_PrefabInternal: {fileID: 0}
308 | m_GameObject: {fileID: 334365441}
309 | --- !u!1 &430655441
310 | GameObject:
311 | m_ObjectHideFlags: 0
312 | m_PrefabParentObject: {fileID: 0}
313 | m_PrefabInternal: {fileID: 0}
314 | serializedVersion: 4
315 | m_Component:
316 | - 224: {fileID: 430655442}
317 | - 222: {fileID: 430655445}
318 | - 114: {fileID: 430655444}
319 | - 114: {fileID: 430655443}
320 | m_Layer: 5
321 | m_Name: Template
322 | m_TagString: Untagged
323 | m_Icon: {fileID: 0}
324 | m_NavMeshLayer: 0
325 | m_StaticEditorFlags: 0
326 | m_IsActive: 0
327 | --- !u!224 &430655442
328 | RectTransform:
329 | m_ObjectHideFlags: 0
330 | m_PrefabParentObject: {fileID: 0}
331 | m_PrefabInternal: {fileID: 0}
332 | m_GameObject: {fileID: 430655441}
333 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
334 | m_LocalPosition: {x: 0, y: 0, z: 0}
335 | m_LocalScale: {x: 1, y: 1, z: 1}
336 | m_Children:
337 | - {fileID: 66417928}
338 | - {fileID: 1453284918}
339 | m_Father: {fileID: 872436002}
340 | m_RootOrder: 2
341 | m_AnchorMin: {x: 0, y: 0}
342 | m_AnchorMax: {x: 1, y: 0}
343 | m_AnchoredPosition: {x: 0, y: 2}
344 | m_SizeDelta: {x: 0, y: 300}
345 | m_Pivot: {x: 0.5, y: 1}
346 | --- !u!114 &430655443
347 | MonoBehaviour:
348 | m_ObjectHideFlags: 0
349 | m_PrefabParentObject: {fileID: 0}
350 | m_PrefabInternal: {fileID: 0}
351 | m_GameObject: {fileID: 430655441}
352 | m_Enabled: 1
353 | m_EditorHideFlags: 0
354 | m_Script: {fileID: 1367256648, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
355 | m_Name:
356 | m_EditorClassIdentifier:
357 | m_Content: {fileID: 1434340705}
358 | m_Horizontal: 0
359 | m_Vertical: 1
360 | m_MovementType: 2
361 | m_Elasticity: 0.1
362 | m_Inertia: 1
363 | m_DecelerationRate: 0.135
364 | m_ScrollSensitivity: 1
365 | m_Viewport: {fileID: 66417928}
366 | m_HorizontalScrollbar: {fileID: 0}
367 | m_VerticalScrollbar: {fileID: 1453284919}
368 | m_HorizontalScrollbarVisibility: 0
369 | m_VerticalScrollbarVisibility: 2
370 | m_HorizontalScrollbarSpacing: 0
371 | m_VerticalScrollbarSpacing: -3
372 | m_OnValueChanged:
373 | m_PersistentCalls:
374 | m_Calls: []
375 | m_TypeName: UnityEngine.UI.ScrollRect+ScrollRectEvent, UnityEngine.UI, Version=1.0.0.0,
376 | Culture=neutral, PublicKeyToken=null
377 | --- !u!114 &430655444
378 | MonoBehaviour:
379 | m_ObjectHideFlags: 0
380 | m_PrefabParentObject: {fileID: 0}
381 | m_PrefabInternal: {fileID: 0}
382 | m_GameObject: {fileID: 430655441}
383 | m_Enabled: 1
384 | m_EditorHideFlags: 0
385 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
386 | m_Name:
387 | m_EditorClassIdentifier:
388 | m_Material: {fileID: 0}
389 | m_Color: {r: 1, g: 1, b: 1, a: 1}
390 | m_RaycastTarget: 1
391 | m_OnCullStateChanged:
392 | m_PersistentCalls:
393 | m_Calls: []
394 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
395 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
396 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
397 | m_Type: 1
398 | m_PreserveAspect: 0
399 | m_FillCenter: 1
400 | m_FillMethod: 4
401 | m_FillAmount: 1
402 | m_FillClockwise: 1
403 | m_FillOrigin: 0
404 | --- !u!222 &430655445
405 | CanvasRenderer:
406 | m_ObjectHideFlags: 0
407 | m_PrefabParentObject: {fileID: 0}
408 | m_PrefabInternal: {fileID: 0}
409 | m_GameObject: {fileID: 430655441}
410 | --- !u!1 &485839605
411 | GameObject:
412 | m_ObjectHideFlags: 0
413 | m_PrefabParentObject: {fileID: 0}
414 | m_PrefabInternal: {fileID: 0}
415 | serializedVersion: 4
416 | m_Component:
417 | - 224: {fileID: 485839606}
418 | - 222: {fileID: 485839608}
419 | - 114: {fileID: 485839607}
420 | m_Layer: 5
421 | m_Name: Label
422 | m_TagString: Untagged
423 | m_Icon: {fileID: 0}
424 | m_NavMeshLayer: 0
425 | m_StaticEditorFlags: 0
426 | m_IsActive: 1
427 | --- !u!224 &485839606
428 | RectTransform:
429 | m_ObjectHideFlags: 0
430 | m_PrefabParentObject: {fileID: 0}
431 | m_PrefabInternal: {fileID: 0}
432 | m_GameObject: {fileID: 485839605}
433 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
434 | m_LocalPosition: {x: 0, y: 0, z: 0}
435 | m_LocalScale: {x: 1, y: 1, z: 1}
436 | m_Children: []
437 | m_Father: {fileID: 872436002}
438 | m_RootOrder: 0
439 | m_AnchorMin: {x: 0, y: 0}
440 | m_AnchorMax: {x: 1, y: 1}
441 | m_AnchoredPosition: {x: -7.5, y: -0.5}
442 | m_SizeDelta: {x: -35, y: -13}
443 | m_Pivot: {x: 0.5, y: 0.5}
444 | --- !u!114 &485839607
445 | MonoBehaviour:
446 | m_ObjectHideFlags: 0
447 | m_PrefabParentObject: {fileID: 0}
448 | m_PrefabInternal: {fileID: 0}
449 | m_GameObject: {fileID: 485839605}
450 | m_Enabled: 1
451 | m_EditorHideFlags: 0
452 | m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
453 | m_Name:
454 | m_EditorClassIdentifier:
455 | m_Material: {fileID: 0}
456 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
457 | m_RaycastTarget: 1
458 | m_OnCullStateChanged:
459 | m_PersistentCalls:
460 | m_Calls: []
461 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
462 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
463 | m_FontData:
464 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
465 | m_FontSize: 20
466 | m_FontStyle: 0
467 | m_BestFit: 0
468 | m_MinSize: 2
469 | m_MaxSize: 40
470 | m_Alignment: 3
471 | m_AlignByGeometry: 0
472 | m_RichText: 1
473 | m_HorizontalOverflow: 0
474 | m_VerticalOverflow: 0
475 | m_LineSpacing: 1
476 | m_Text: Option A
477 | --- !u!222 &485839608
478 | CanvasRenderer:
479 | m_ObjectHideFlags: 0
480 | m_PrefabParentObject: {fileID: 0}
481 | m_PrefabInternal: {fileID: 0}
482 | m_GameObject: {fileID: 485839605}
483 | --- !u!1 &505912548
484 | GameObject:
485 | m_ObjectHideFlags: 0
486 | m_PrefabParentObject: {fileID: 0}
487 | m_PrefabInternal: {fileID: 0}
488 | serializedVersion: 4
489 | m_Component:
490 | - 224: {fileID: 505912549}
491 | - 222: {fileID: 505912551}
492 | - 114: {fileID: 505912550}
493 | m_Layer: 5
494 | m_Name: OriginalLabel
495 | m_TagString: Untagged
496 | m_Icon: {fileID: 0}
497 | m_NavMeshLayer: 0
498 | m_StaticEditorFlags: 0
499 | m_IsActive: 1
500 | --- !u!224 &505912549
501 | RectTransform:
502 | m_ObjectHideFlags: 0
503 | m_PrefabParentObject: {fileID: 0}
504 | m_PrefabInternal: {fileID: 0}
505 | m_GameObject: {fileID: 505912548}
506 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
507 | m_LocalPosition: {x: 0, y: 0, z: 0}
508 | m_LocalScale: {x: 1, y: 1, z: 1}
509 | m_Children: []
510 | m_Father: {fileID: 976904208}
511 | m_RootOrder: 1
512 | m_AnchorMin: {x: 0, y: 0.5}
513 | m_AnchorMax: {x: 0, y: 0.5}
514 | m_AnchoredPosition: {x: 75, y: 50}
515 | m_SizeDelta: {x: 150, y: 50}
516 | m_Pivot: {x: 0.5, y: 0.5}
517 | --- !u!114 &505912550
518 | MonoBehaviour:
519 | m_ObjectHideFlags: 0
520 | m_PrefabParentObject: {fileID: 0}
521 | m_PrefabInternal: {fileID: 0}
522 | m_GameObject: {fileID: 505912548}
523 | m_Enabled: 1
524 | m_EditorHideFlags: 0
525 | m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
526 | m_Name:
527 | m_EditorClassIdentifier:
528 | m_Material: {fileID: 0}
529 | m_Color: {r: 0.77205884, g: 0.78341264, b: 0.78341264, a: 1}
530 | m_RaycastTarget: 1
531 | m_OnCullStateChanged:
532 | m_PersistentCalls:
533 | m_Calls: []
534 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
535 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
536 | m_FontData:
537 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
538 | m_FontSize: 25
539 | m_FontStyle: 0
540 | m_BestFit: 0
541 | m_MinSize: 2
542 | m_MaxSize: 40
543 | m_Alignment: 8
544 | m_AlignByGeometry: 0
545 | m_RichText: 1
546 | m_HorizontalOverflow: 0
547 | m_VerticalOverflow: 0
548 | m_LineSpacing: 1
549 | m_Text: 'Original: '
550 | --- !u!222 &505912551
551 | CanvasRenderer:
552 | m_ObjectHideFlags: 0
553 | m_PrefabParentObject: {fileID: 0}
554 | m_PrefabInternal: {fileID: 0}
555 | m_GameObject: {fileID: 505912548}
556 | --- !u!1 &581963731
557 | GameObject:
558 | m_ObjectHideFlags: 0
559 | m_PrefabParentObject: {fileID: 0}
560 | m_PrefabInternal: {fileID: 0}
561 | serializedVersion: 4
562 | m_Component:
563 | - 224: {fileID: 581963732}
564 | - 114: {fileID: 581963733}
565 | m_Layer: 5
566 | m_Name: Item
567 | m_TagString: Untagged
568 | m_Icon: {fileID: 0}
569 | m_NavMeshLayer: 0
570 | m_StaticEditorFlags: 0
571 | m_IsActive: 1
572 | --- !u!224 &581963732
573 | RectTransform:
574 | m_ObjectHideFlags: 0
575 | m_PrefabParentObject: {fileID: 0}
576 | m_PrefabInternal: {fileID: 0}
577 | m_GameObject: {fileID: 581963731}
578 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
579 | m_LocalPosition: {x: 0, y: 0, z: 0}
580 | m_LocalScale: {x: 1, y: 1, z: 1}
581 | m_Children:
582 | - {fileID: 242386655}
583 | - {fileID: 1348519864}
584 | - {fileID: 1514516379}
585 | m_Father: {fileID: 1434340705}
586 | m_RootOrder: 0
587 | m_AnchorMin: {x: 0, y: 0.5}
588 | m_AnchorMax: {x: 1, y: 0.5}
589 | m_AnchoredPosition: {x: 0, y: 0}
590 | m_SizeDelta: {x: 0, y: 40}
591 | m_Pivot: {x: 0.5, y: 0.5}
592 | --- !u!114 &581963733
593 | MonoBehaviour:
594 | m_ObjectHideFlags: 0
595 | m_PrefabParentObject: {fileID: 0}
596 | m_PrefabInternal: {fileID: 0}
597 | m_GameObject: {fileID: 581963731}
598 | m_Enabled: 1
599 | m_EditorHideFlags: 0
600 | m_Script: {fileID: 2109663825, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
601 | m_Name:
602 | m_EditorClassIdentifier:
603 | m_Navigation:
604 | m_Mode: 3
605 | m_SelectOnUp: {fileID: 0}
606 | m_SelectOnDown: {fileID: 0}
607 | m_SelectOnLeft: {fileID: 0}
608 | m_SelectOnRight: {fileID: 0}
609 | m_Transition: 1
610 | m_Colors:
611 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
612 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
613 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
614 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
615 | m_ColorMultiplier: 1
616 | m_FadeDuration: 0.1
617 | m_SpriteState:
618 | m_HighlightedSprite: {fileID: 0}
619 | m_PressedSprite: {fileID: 0}
620 | m_DisabledSprite: {fileID: 0}
621 | m_AnimationTriggers:
622 | m_NormalTrigger: Normal
623 | m_HighlightedTrigger: Highlighted
624 | m_PressedTrigger: Pressed
625 | m_DisabledTrigger: Disabled
626 | m_Interactable: 1
627 | m_TargetGraphic: {fileID: 242386656}
628 | toggleTransition: 1
629 | graphic: {fileID: 1348519865}
630 | m_Group: {fileID: 0}
631 | onValueChanged:
632 | m_PersistentCalls:
633 | m_Calls: []
634 | m_TypeName: UnityEngine.UI.Toggle+ToggleEvent, UnityEngine.UI, Version=1.0.0.0,
635 | Culture=neutral, PublicKeyToken=null
636 | m_IsOn: 1
637 | --- !u!1 &601839909
638 | GameObject:
639 | m_ObjectHideFlags: 0
640 | m_PrefabParentObject: {fileID: 0}
641 | m_PrefabInternal: {fileID: 0}
642 | serializedVersion: 4
643 | m_Component:
644 | - 224: {fileID: 601839910}
645 | - 222: {fileID: 601839912}
646 | - 114: {fileID: 601839911}
647 | m_Layer: 5
648 | m_Name: AdjustedText
649 | m_TagString: Untagged
650 | m_Icon: {fileID: 0}
651 | m_NavMeshLayer: 0
652 | m_StaticEditorFlags: 0
653 | m_IsActive: 1
654 | --- !u!224 &601839910
655 | RectTransform:
656 | m_ObjectHideFlags: 0
657 | m_PrefabParentObject: {fileID: 0}
658 | m_PrefabInternal: {fileID: 0}
659 | m_GameObject: {fileID: 601839909}
660 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
661 | m_LocalPosition: {x: 0, y: 0, z: 0}
662 | m_LocalScale: {x: 1, y: 1, z: 1}
663 | m_Children: []
664 | m_Father: {fileID: 976904208}
665 | m_RootOrder: 4
666 | m_AnchorMin: {x: 0, y: 0.5}
667 | m_AnchorMax: {x: 1, y: 0.5}
668 | m_AnchoredPosition: {x: 75, y: -50}
669 | m_SizeDelta: {x: -150, y: 80}
670 | m_Pivot: {x: 0.5, y: 0.5}
671 | --- !u!114 &601839911
672 | MonoBehaviour:
673 | m_ObjectHideFlags: 0
674 | m_PrefabParentObject: {fileID: 0}
675 | m_PrefabInternal: {fileID: 0}
676 | m_GameObject: {fileID: 601839909}
677 | m_Enabled: 1
678 | m_EditorHideFlags: 0
679 | m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
680 | m_Name:
681 | m_EditorClassIdentifier:
682 | m_Material: {fileID: 0}
683 | m_Color: {r: 1, g: 1, b: 1, a: 1}
684 | m_RaycastTarget: 1
685 | m_OnCullStateChanged:
686 | m_PersistentCalls:
687 | m_Calls: []
688 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
689 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
690 | m_FontData:
691 | m_Font: {fileID: 12800000, guid: 150d3e88cbefb184388ba52188cfe2c2, type: 3}
692 | m_FontSize: 45
693 | m_FontStyle: 0
694 | m_BestFit: 0
695 | m_MinSize: 3
696 | m_MaxSize: 45
697 | m_Alignment: 3
698 | m_AlignByGeometry: 0
699 | m_RichText: 1
700 | m_HorizontalOverflow: 0
701 | m_VerticalOverflow: 1
702 | m_LineSpacing: 1
703 | m_Text: Text
704 | --- !u!222 &601839912
705 | CanvasRenderer:
706 | m_ObjectHideFlags: 0
707 | m_PrefabParentObject: {fileID: 0}
708 | m_PrefabInternal: {fileID: 0}
709 | m_GameObject: {fileID: 601839909}
710 | --- !u!1 &872436001
711 | GameObject:
712 | m_ObjectHideFlags: 0
713 | m_PrefabParentObject: {fileID: 0}
714 | m_PrefabInternal: {fileID: 0}
715 | serializedVersion: 4
716 | m_Component:
717 | - 224: {fileID: 872436002}
718 | - 222: {fileID: 872436005}
719 | - 114: {fileID: 872436004}
720 | - 114: {fileID: 872436003}
721 | m_Layer: 5
722 | m_Name: FontDropdown
723 | m_TagString: Untagged
724 | m_Icon: {fileID: 0}
725 | m_NavMeshLayer: 0
726 | m_StaticEditorFlags: 0
727 | m_IsActive: 1
728 | --- !u!224 &872436002
729 | RectTransform:
730 | m_ObjectHideFlags: 0
731 | m_PrefabParentObject: {fileID: 0}
732 | m_PrefabInternal: {fileID: 0}
733 | m_GameObject: {fileID: 872436001}
734 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
735 | m_LocalPosition: {x: 0, y: 0, z: 0}
736 | m_LocalScale: {x: 1, y: 1, z: 1}
737 | m_Children:
738 | - {fileID: 485839606}
739 | - {fileID: 1002904993}
740 | - {fileID: 430655442}
741 | m_Father: {fileID: 976904208}
742 | m_RootOrder: 0
743 | m_AnchorMin: {x: 0, y: 0.5}
744 | m_AnchorMax: {x: 0, y: 0.5}
745 | m_AnchoredPosition: {x: 40, y: 260}
746 | m_SizeDelta: {x: 400, y: 40}
747 | m_Pivot: {x: 0, y: 0.5}
748 | --- !u!114 &872436003
749 | MonoBehaviour:
750 | m_ObjectHideFlags: 0
751 | m_PrefabParentObject: {fileID: 0}
752 | m_PrefabInternal: {fileID: 0}
753 | m_GameObject: {fileID: 872436001}
754 | m_Enabled: 1
755 | m_EditorHideFlags: 0
756 | m_Script: {fileID: 853051423, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
757 | m_Name:
758 | m_EditorClassIdentifier:
759 | m_Navigation:
760 | m_Mode: 3
761 | m_SelectOnUp: {fileID: 0}
762 | m_SelectOnDown: {fileID: 0}
763 | m_SelectOnLeft: {fileID: 0}
764 | m_SelectOnRight: {fileID: 0}
765 | m_Transition: 1
766 | m_Colors:
767 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
768 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
769 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
770 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
771 | m_ColorMultiplier: 1
772 | m_FadeDuration: 0.1
773 | m_SpriteState:
774 | m_HighlightedSprite: {fileID: 0}
775 | m_PressedSprite: {fileID: 0}
776 | m_DisabledSprite: {fileID: 0}
777 | m_AnimationTriggers:
778 | m_NormalTrigger: Normal
779 | m_HighlightedTrigger: Highlighted
780 | m_PressedTrigger: Pressed
781 | m_DisabledTrigger: Disabled
782 | m_Interactable: 1
783 | m_TargetGraphic: {fileID: 872436004}
784 | m_Template: {fileID: 430655442}
785 | m_CaptionText: {fileID: 485839607}
786 | m_CaptionImage: {fileID: 0}
787 | m_ItemText: {fileID: 1514516380}
788 | m_ItemImage: {fileID: 0}
789 | m_Value: 0
790 | m_Options:
791 | m_Options:
792 | - m_Text: Option A
793 | m_Image: {fileID: 0}
794 | - m_Text: Option B
795 | m_Image: {fileID: 0}
796 | - m_Text: Option C
797 | m_Image: {fileID: 0}
798 | m_OnValueChanged:
799 | m_PersistentCalls:
800 | m_Calls:
801 | - m_Target: {fileID: 976904209}
802 | m_MethodName: OnFontDropdownValueChange
803 | m_Mode: 1
804 | m_Arguments:
805 | m_ObjectArgument: {fileID: 0}
806 | m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
807 | m_IntArgument: 0
808 | m_FloatArgument: 0
809 | m_StringArgument:
810 | m_BoolArgument: 0
811 | m_CallState: 2
812 | m_TypeName: UnityEngine.UI.Dropdown+DropdownEvent, UnityEngine.UI, Version=1.0.0.0,
813 | Culture=neutral, PublicKeyToken=null
814 | --- !u!114 &872436004
815 | MonoBehaviour:
816 | m_ObjectHideFlags: 0
817 | m_PrefabParentObject: {fileID: 0}
818 | m_PrefabInternal: {fileID: 0}
819 | m_GameObject: {fileID: 872436001}
820 | m_Enabled: 1
821 | m_EditorHideFlags: 0
822 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
823 | m_Name:
824 | m_EditorClassIdentifier:
825 | m_Material: {fileID: 0}
826 | m_Color: {r: 1, g: 1, b: 1, a: 1}
827 | m_RaycastTarget: 1
828 | m_OnCullStateChanged:
829 | m_PersistentCalls:
830 | m_Calls: []
831 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
832 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
833 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
834 | m_Type: 1
835 | m_PreserveAspect: 0
836 | m_FillCenter: 1
837 | m_FillMethod: 4
838 | m_FillAmount: 1
839 | m_FillClockwise: 1
840 | m_FillOrigin: 0
841 | --- !u!222 &872436005
842 | CanvasRenderer:
843 | m_ObjectHideFlags: 0
844 | m_PrefabParentObject: {fileID: 0}
845 | m_PrefabInternal: {fileID: 0}
846 | m_GameObject: {fileID: 872436001}
847 | --- !u!1 &976904207
848 | GameObject:
849 | m_ObjectHideFlags: 0
850 | m_PrefabParentObject: {fileID: 0}
851 | m_PrefabInternal: {fileID: 0}
852 | serializedVersion: 4
853 | m_Component:
854 | - 224: {fileID: 976904208}
855 | - 222: {fileID: 976904211}
856 | - 114: {fileID: 976904210}
857 | - 114: {fileID: 976904209}
858 | m_Layer: 5
859 | m_Name: Panel
860 | m_TagString: Untagged
861 | m_Icon: {fileID: 0}
862 | m_NavMeshLayer: 0
863 | m_StaticEditorFlags: 0
864 | m_IsActive: 1
865 | --- !u!224 &976904208
866 | RectTransform:
867 | m_ObjectHideFlags: 0
868 | m_PrefabParentObject: {fileID: 0}
869 | m_PrefabInternal: {fileID: 0}
870 | m_GameObject: {fileID: 976904207}
871 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
872 | m_LocalPosition: {x: 0, y: 0, z: 0}
873 | m_LocalScale: {x: 1, y: 1, z: 1}
874 | m_Children:
875 | - {fileID: 872436002}
876 | - {fileID: 505912549}
877 | - {fileID: 2018922913}
878 | - {fileID: 334365442}
879 | - {fileID: 601839910}
880 | m_Father: {fileID: 1602650847}
881 | m_RootOrder: 0
882 | m_AnchorMin: {x: 0, y: 0}
883 | m_AnchorMax: {x: 1, y: 1}
884 | m_AnchoredPosition: {x: 0, y: 0}
885 | m_SizeDelta: {x: 0, y: 0}
886 | m_Pivot: {x: 0.5, y: 0.5}
887 | --- !u!114 &976904209
888 | MonoBehaviour:
889 | m_ObjectHideFlags: 0
890 | m_PrefabParentObject: {fileID: 0}
891 | m_PrefabInternal: {fileID: 0}
892 | m_GameObject: {fileID: 976904207}
893 | m_Enabled: 1
894 | m_EditorHideFlags: 0
895 | m_Script: {fileID: 11500000, guid: 43c4fc9f377cbb343a4b9b45e48c9e6d, type: 3}
896 | m_Name:
897 | m_EditorClassIdentifier:
898 | FontDropdown: {fileID: 872436003}
899 | Fonts:
900 | - {fileID: 12800000, guid: 150d3e88cbefb184388ba52188cfe2c2, type: 3}
901 | - {fileID: 12800000, guid: d1ad354a98fa5f3499d7f24a4214a230, type: 3}
902 | - {fileID: 12800000, guid: 673976873f7ccf946b7a36125644fe54, type: 3}
903 | - {fileID: 12800000, guid: 14e4f1fd302790444b92953ca92a5d86, type: 3}
904 | - {fileID: 12800000, guid: 1bd51dcfff236b949915f17ee6c191bd, type: 3}
905 | OriginalText: {fileID: 2018922914}
906 | AdjustedText: {fileID: 601839911}
907 | --- !u!114 &976904210
908 | MonoBehaviour:
909 | m_ObjectHideFlags: 0
910 | m_PrefabParentObject: {fileID: 0}
911 | m_PrefabInternal: {fileID: 0}
912 | m_GameObject: {fileID: 976904207}
913 | m_Enabled: 1
914 | m_EditorHideFlags: 0
915 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
916 | m_Name:
917 | m_EditorClassIdentifier:
918 | m_Material: {fileID: 0}
919 | m_Color: {r: 0.21960786, g: 0.21960786, b: 0.21960786, a: 1}
920 | m_RaycastTarget: 1
921 | m_OnCullStateChanged:
922 | m_PersistentCalls:
923 | m_Calls: []
924 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
925 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
926 | m_Sprite: {fileID: 0}
927 | m_Type: 1
928 | m_PreserveAspect: 0
929 | m_FillCenter: 1
930 | m_FillMethod: 4
931 | m_FillAmount: 1
932 | m_FillClockwise: 1
933 | m_FillOrigin: 0
934 | --- !u!222 &976904211
935 | CanvasRenderer:
936 | m_ObjectHideFlags: 0
937 | m_PrefabParentObject: {fileID: 0}
938 | m_PrefabInternal: {fileID: 0}
939 | m_GameObject: {fileID: 976904207}
940 | --- !u!1 &1002904992
941 | GameObject:
942 | m_ObjectHideFlags: 0
943 | m_PrefabParentObject: {fileID: 0}
944 | m_PrefabInternal: {fileID: 0}
945 | serializedVersion: 4
946 | m_Component:
947 | - 224: {fileID: 1002904993}
948 | - 222: {fileID: 1002904995}
949 | - 114: {fileID: 1002904994}
950 | m_Layer: 5
951 | m_Name: Arrow
952 | m_TagString: Untagged
953 | m_Icon: {fileID: 0}
954 | m_NavMeshLayer: 0
955 | m_StaticEditorFlags: 0
956 | m_IsActive: 1
957 | --- !u!224 &1002904993
958 | RectTransform:
959 | m_ObjectHideFlags: 0
960 | m_PrefabParentObject: {fileID: 0}
961 | m_PrefabInternal: {fileID: 0}
962 | m_GameObject: {fileID: 1002904992}
963 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
964 | m_LocalPosition: {x: 0, y: 0, z: 0}
965 | m_LocalScale: {x: 1, y: 1, z: 1}
966 | m_Children: []
967 | m_Father: {fileID: 872436002}
968 | m_RootOrder: 1
969 | m_AnchorMin: {x: 1, y: 0.5}
970 | m_AnchorMax: {x: 1, y: 0.5}
971 | m_AnchoredPosition: {x: -15, y: 0}
972 | m_SizeDelta: {x: 20, y: 20}
973 | m_Pivot: {x: 0.5, y: 0.5}
974 | --- !u!114 &1002904994
975 | MonoBehaviour:
976 | m_ObjectHideFlags: 0
977 | m_PrefabParentObject: {fileID: 0}
978 | m_PrefabInternal: {fileID: 0}
979 | m_GameObject: {fileID: 1002904992}
980 | m_Enabled: 1
981 | m_EditorHideFlags: 0
982 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
983 | m_Name:
984 | m_EditorClassIdentifier:
985 | m_Material: {fileID: 0}
986 | m_Color: {r: 1, g: 1, b: 1, a: 1}
987 | m_RaycastTarget: 1
988 | m_OnCullStateChanged:
989 | m_PersistentCalls:
990 | m_Calls: []
991 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
992 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
993 | m_Sprite: {fileID: 10915, guid: 0000000000000000f000000000000000, type: 0}
994 | m_Type: 0
995 | m_PreserveAspect: 0
996 | m_FillCenter: 1
997 | m_FillMethod: 4
998 | m_FillAmount: 1
999 | m_FillClockwise: 1
1000 | m_FillOrigin: 0
1001 | --- !u!222 &1002904995
1002 | CanvasRenderer:
1003 | m_ObjectHideFlags: 0
1004 | m_PrefabParentObject: {fileID: 0}
1005 | m_PrefabInternal: {fileID: 0}
1006 | m_GameObject: {fileID: 1002904992}
1007 | --- !u!1 &1072670757
1008 | GameObject:
1009 | m_ObjectHideFlags: 0
1010 | m_PrefabParentObject: {fileID: 0}
1011 | m_PrefabInternal: {fileID: 0}
1012 | serializedVersion: 4
1013 | m_Component:
1014 | - 4: {fileID: 1072670760}
1015 | - 114: {fileID: 1072670759}
1016 | - 114: {fileID: 1072670758}
1017 | m_Layer: 0
1018 | m_Name: EventSystem
1019 | m_TagString: Untagged
1020 | m_Icon: {fileID: 0}
1021 | m_NavMeshLayer: 0
1022 | m_StaticEditorFlags: 0
1023 | m_IsActive: 1
1024 | --- !u!114 &1072670758
1025 | MonoBehaviour:
1026 | m_ObjectHideFlags: 0
1027 | m_PrefabParentObject: {fileID: 0}
1028 | m_PrefabInternal: {fileID: 0}
1029 | m_GameObject: {fileID: 1072670757}
1030 | m_Enabled: 1
1031 | m_EditorHideFlags: 0
1032 | m_Script: {fileID: 1077351063, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
1033 | m_Name:
1034 | m_EditorClassIdentifier:
1035 | m_HorizontalAxis: Horizontal
1036 | m_VerticalAxis: Vertical
1037 | m_SubmitButton: Submit
1038 | m_CancelButton: Cancel
1039 | m_InputActionsPerSecond: 10
1040 | m_RepeatDelay: 0.5
1041 | m_ForceModuleActive: 0
1042 | --- !u!114 &1072670759
1043 | MonoBehaviour:
1044 | m_ObjectHideFlags: 0
1045 | m_PrefabParentObject: {fileID: 0}
1046 | m_PrefabInternal: {fileID: 0}
1047 | m_GameObject: {fileID: 1072670757}
1048 | m_Enabled: 1
1049 | m_EditorHideFlags: 0
1050 | m_Script: {fileID: -619905303, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
1051 | m_Name:
1052 | m_EditorClassIdentifier:
1053 | m_FirstSelected: {fileID: 0}
1054 | m_sendNavigationEvents: 1
1055 | m_DragThreshold: 5
1056 | --- !u!4 &1072670760
1057 | Transform:
1058 | m_ObjectHideFlags: 0
1059 | m_PrefabParentObject: {fileID: 0}
1060 | m_PrefabInternal: {fileID: 0}
1061 | m_GameObject: {fileID: 1072670757}
1062 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1063 | m_LocalPosition: {x: 0, y: 0, z: 0}
1064 | m_LocalScale: {x: 1, y: 1, z: 1}
1065 | m_Children: []
1066 | m_Father: {fileID: 0}
1067 | m_RootOrder: 2
1068 | --- !u!1 &1348519863
1069 | GameObject:
1070 | m_ObjectHideFlags: 0
1071 | m_PrefabParentObject: {fileID: 0}
1072 | m_PrefabInternal: {fileID: 0}
1073 | serializedVersion: 4
1074 | m_Component:
1075 | - 224: {fileID: 1348519864}
1076 | - 222: {fileID: 1348519866}
1077 | - 114: {fileID: 1348519865}
1078 | m_Layer: 5
1079 | m_Name: Item Checkmark
1080 | m_TagString: Untagged
1081 | m_Icon: {fileID: 0}
1082 | m_NavMeshLayer: 0
1083 | m_StaticEditorFlags: 0
1084 | m_IsActive: 1
1085 | --- !u!224 &1348519864
1086 | RectTransform:
1087 | m_ObjectHideFlags: 0
1088 | m_PrefabParentObject: {fileID: 0}
1089 | m_PrefabInternal: {fileID: 0}
1090 | m_GameObject: {fileID: 1348519863}
1091 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1092 | m_LocalPosition: {x: 0, y: 0, z: 0}
1093 | m_LocalScale: {x: 1, y: 1, z: 1}
1094 | m_Children: []
1095 | m_Father: {fileID: 581963732}
1096 | m_RootOrder: 1
1097 | m_AnchorMin: {x: 0, y: 0.5}
1098 | m_AnchorMax: {x: 0, y: 0.5}
1099 | m_AnchoredPosition: {x: 10, y: 0}
1100 | m_SizeDelta: {x: 20, y: 20}
1101 | m_Pivot: {x: 0.5, y: 0.5}
1102 | --- !u!114 &1348519865
1103 | MonoBehaviour:
1104 | m_ObjectHideFlags: 0
1105 | m_PrefabParentObject: {fileID: 0}
1106 | m_PrefabInternal: {fileID: 0}
1107 | m_GameObject: {fileID: 1348519863}
1108 | m_Enabled: 1
1109 | m_EditorHideFlags: 0
1110 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
1111 | m_Name:
1112 | m_EditorClassIdentifier:
1113 | m_Material: {fileID: 0}
1114 | m_Color: {r: 1, g: 1, b: 1, a: 1}
1115 | m_RaycastTarget: 1
1116 | m_OnCullStateChanged:
1117 | m_PersistentCalls:
1118 | m_Calls: []
1119 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
1120 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
1121 | m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0}
1122 | m_Type: 0
1123 | m_PreserveAspect: 0
1124 | m_FillCenter: 1
1125 | m_FillMethod: 4
1126 | m_FillAmount: 1
1127 | m_FillClockwise: 1
1128 | m_FillOrigin: 0
1129 | --- !u!222 &1348519866
1130 | CanvasRenderer:
1131 | m_ObjectHideFlags: 0
1132 | m_PrefabParentObject: {fileID: 0}
1133 | m_PrefabInternal: {fileID: 0}
1134 | m_GameObject: {fileID: 1348519863}
1135 | --- !u!1 &1434340704
1136 | GameObject:
1137 | m_ObjectHideFlags: 0
1138 | m_PrefabParentObject: {fileID: 0}
1139 | m_PrefabInternal: {fileID: 0}
1140 | serializedVersion: 4
1141 | m_Component:
1142 | - 224: {fileID: 1434340705}
1143 | m_Layer: 5
1144 | m_Name: Content
1145 | m_TagString: Untagged
1146 | m_Icon: {fileID: 0}
1147 | m_NavMeshLayer: 0
1148 | m_StaticEditorFlags: 0
1149 | m_IsActive: 1
1150 | --- !u!224 &1434340705
1151 | RectTransform:
1152 | m_ObjectHideFlags: 0
1153 | m_PrefabParentObject: {fileID: 0}
1154 | m_PrefabInternal: {fileID: 0}
1155 | m_GameObject: {fileID: 1434340704}
1156 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1157 | m_LocalPosition: {x: 0, y: 0, z: 0}
1158 | m_LocalScale: {x: 1, y: 1, z: 1}
1159 | m_Children:
1160 | - {fileID: 581963732}
1161 | m_Father: {fileID: 66417928}
1162 | m_RootOrder: 0
1163 | m_AnchorMin: {x: 0, y: 1}
1164 | m_AnchorMax: {x: 1, y: 1}
1165 | m_AnchoredPosition: {x: 0, y: 0}
1166 | m_SizeDelta: {x: 0, y: 40}
1167 | m_Pivot: {x: 0.5, y: 1}
1168 | --- !u!1 &1453284917
1169 | GameObject:
1170 | m_ObjectHideFlags: 0
1171 | m_PrefabParentObject: {fileID: 0}
1172 | m_PrefabInternal: {fileID: 0}
1173 | serializedVersion: 4
1174 | m_Component:
1175 | - 224: {fileID: 1453284918}
1176 | - 222: {fileID: 1453284921}
1177 | - 114: {fileID: 1453284920}
1178 | - 114: {fileID: 1453284919}
1179 | m_Layer: 5
1180 | m_Name: Scrollbar
1181 | m_TagString: Untagged
1182 | m_Icon: {fileID: 0}
1183 | m_NavMeshLayer: 0
1184 | m_StaticEditorFlags: 0
1185 | m_IsActive: 1
1186 | --- !u!224 &1453284918
1187 | RectTransform:
1188 | m_ObjectHideFlags: 0
1189 | m_PrefabParentObject: {fileID: 0}
1190 | m_PrefabInternal: {fileID: 0}
1191 | m_GameObject: {fileID: 1453284917}
1192 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1193 | m_LocalPosition: {x: 0, y: 0, z: 0}
1194 | m_LocalScale: {x: 1, y: 1, z: 1}
1195 | m_Children:
1196 | - {fileID: 1652000627}
1197 | m_Father: {fileID: 430655442}
1198 | m_RootOrder: 1
1199 | m_AnchorMin: {x: 1, y: 0}
1200 | m_AnchorMax: {x: 1, y: 1}
1201 | m_AnchoredPosition: {x: 0, y: 0}
1202 | m_SizeDelta: {x: 20, y: 0}
1203 | m_Pivot: {x: 1, y: 1}
1204 | --- !u!114 &1453284919
1205 | MonoBehaviour:
1206 | m_ObjectHideFlags: 0
1207 | m_PrefabParentObject: {fileID: 0}
1208 | m_PrefabInternal: {fileID: 0}
1209 | m_GameObject: {fileID: 1453284917}
1210 | m_Enabled: 1
1211 | m_EditorHideFlags: 0
1212 | m_Script: {fileID: -2061169968, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
1213 | m_Name:
1214 | m_EditorClassIdentifier:
1215 | m_Navigation:
1216 | m_Mode: 3
1217 | m_SelectOnUp: {fileID: 0}
1218 | m_SelectOnDown: {fileID: 0}
1219 | m_SelectOnLeft: {fileID: 0}
1220 | m_SelectOnRight: {fileID: 0}
1221 | m_Transition: 1
1222 | m_Colors:
1223 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
1224 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
1225 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
1226 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
1227 | m_ColorMultiplier: 1
1228 | m_FadeDuration: 0.1
1229 | m_SpriteState:
1230 | m_HighlightedSprite: {fileID: 0}
1231 | m_PressedSprite: {fileID: 0}
1232 | m_DisabledSprite: {fileID: 0}
1233 | m_AnimationTriggers:
1234 | m_NormalTrigger: Normal
1235 | m_HighlightedTrigger: Highlighted
1236 | m_PressedTrigger: Pressed
1237 | m_DisabledTrigger: Disabled
1238 | m_Interactable: 1
1239 | m_TargetGraphic: {fileID: 2123273275}
1240 | m_HandleRect: {fileID: 2123273274}
1241 | m_Direction: 2
1242 | m_Value: 0
1243 | m_Size: 0.2
1244 | m_NumberOfSteps: 0
1245 | m_OnValueChanged:
1246 | m_PersistentCalls:
1247 | m_Calls: []
1248 | m_TypeName: UnityEngine.UI.Scrollbar+ScrollEvent, UnityEngine.UI, Version=1.0.0.0,
1249 | Culture=neutral, PublicKeyToken=null
1250 | --- !u!114 &1453284920
1251 | MonoBehaviour:
1252 | m_ObjectHideFlags: 0
1253 | m_PrefabParentObject: {fileID: 0}
1254 | m_PrefabInternal: {fileID: 0}
1255 | m_GameObject: {fileID: 1453284917}
1256 | m_Enabled: 1
1257 | m_EditorHideFlags: 0
1258 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
1259 | m_Name:
1260 | m_EditorClassIdentifier:
1261 | m_Material: {fileID: 0}
1262 | m_Color: {r: 1, g: 1, b: 1, a: 1}
1263 | m_RaycastTarget: 1
1264 | m_OnCullStateChanged:
1265 | m_PersistentCalls:
1266 | m_Calls: []
1267 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
1268 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
1269 | m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
1270 | m_Type: 1
1271 | m_PreserveAspect: 0
1272 | m_FillCenter: 1
1273 | m_FillMethod: 4
1274 | m_FillAmount: 1
1275 | m_FillClockwise: 1
1276 | m_FillOrigin: 0
1277 | --- !u!222 &1453284921
1278 | CanvasRenderer:
1279 | m_ObjectHideFlags: 0
1280 | m_PrefabParentObject: {fileID: 0}
1281 | m_PrefabInternal: {fileID: 0}
1282 | m_GameObject: {fileID: 1453284917}
1283 | --- !u!1 &1514516378
1284 | GameObject:
1285 | m_ObjectHideFlags: 0
1286 | m_PrefabParentObject: {fileID: 0}
1287 | m_PrefabInternal: {fileID: 0}
1288 | serializedVersion: 4
1289 | m_Component:
1290 | - 224: {fileID: 1514516379}
1291 | - 222: {fileID: 1514516381}
1292 | - 114: {fileID: 1514516380}
1293 | m_Layer: 5
1294 | m_Name: Item Label
1295 | m_TagString: Untagged
1296 | m_Icon: {fileID: 0}
1297 | m_NavMeshLayer: 0
1298 | m_StaticEditorFlags: 0
1299 | m_IsActive: 1
1300 | --- !u!224 &1514516379
1301 | RectTransform:
1302 | m_ObjectHideFlags: 0
1303 | m_PrefabParentObject: {fileID: 0}
1304 | m_PrefabInternal: {fileID: 0}
1305 | m_GameObject: {fileID: 1514516378}
1306 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1307 | m_LocalPosition: {x: 0, y: 0, z: 0}
1308 | m_LocalScale: {x: 1, y: 1, z: 1}
1309 | m_Children: []
1310 | m_Father: {fileID: 581963732}
1311 | m_RootOrder: 2
1312 | m_AnchorMin: {x: 0, y: 0}
1313 | m_AnchorMax: {x: 1, y: 1}
1314 | m_AnchoredPosition: {x: 5, y: -0.5}
1315 | m_SizeDelta: {x: -30, y: -3}
1316 | m_Pivot: {x: 0.5, y: 0.5}
1317 | --- !u!114 &1514516380
1318 | MonoBehaviour:
1319 | m_ObjectHideFlags: 0
1320 | m_PrefabParentObject: {fileID: 0}
1321 | m_PrefabInternal: {fileID: 0}
1322 | m_GameObject: {fileID: 1514516378}
1323 | m_Enabled: 1
1324 | m_EditorHideFlags: 0
1325 | m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
1326 | m_Name:
1327 | m_EditorClassIdentifier:
1328 | m_Material: {fileID: 0}
1329 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
1330 | m_RaycastTarget: 1
1331 | m_OnCullStateChanged:
1332 | m_PersistentCalls:
1333 | m_Calls: []
1334 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
1335 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
1336 | m_FontData:
1337 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
1338 | m_FontSize: 20
1339 | m_FontStyle: 0
1340 | m_BestFit: 0
1341 | m_MinSize: 2
1342 | m_MaxSize: 40
1343 | m_Alignment: 3
1344 | m_AlignByGeometry: 0
1345 | m_RichText: 1
1346 | m_HorizontalOverflow: 0
1347 | m_VerticalOverflow: 0
1348 | m_LineSpacing: 1
1349 | m_Text: Option A
1350 | --- !u!222 &1514516381
1351 | CanvasRenderer:
1352 | m_ObjectHideFlags: 0
1353 | m_PrefabParentObject: {fileID: 0}
1354 | m_PrefabInternal: {fileID: 0}
1355 | m_GameObject: {fileID: 1514516378}
1356 | --- !u!1 &1602650843
1357 | GameObject:
1358 | m_ObjectHideFlags: 0
1359 | m_PrefabParentObject: {fileID: 0}
1360 | m_PrefabInternal: {fileID: 0}
1361 | serializedVersion: 4
1362 | m_Component:
1363 | - 224: {fileID: 1602650847}
1364 | - 223: {fileID: 1602650846}
1365 | - 114: {fileID: 1602650845}
1366 | - 114: {fileID: 1602650844}
1367 | m_Layer: 5
1368 | m_Name: Canvas
1369 | m_TagString: Untagged
1370 | m_Icon: {fileID: 0}
1371 | m_NavMeshLayer: 0
1372 | m_StaticEditorFlags: 0
1373 | m_IsActive: 1
1374 | --- !u!114 &1602650844
1375 | MonoBehaviour:
1376 | m_ObjectHideFlags: 0
1377 | m_PrefabParentObject: {fileID: 0}
1378 | m_PrefabInternal: {fileID: 0}
1379 | m_GameObject: {fileID: 1602650843}
1380 | m_Enabled: 1
1381 | m_EditorHideFlags: 0
1382 | m_Script: {fileID: 1301386320, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
1383 | m_Name:
1384 | m_EditorClassIdentifier:
1385 | m_IgnoreReversedGraphics: 1
1386 | m_BlockingObjects: 0
1387 | m_BlockingMask:
1388 | serializedVersion: 2
1389 | m_Bits: 4294967295
1390 | --- !u!114 &1602650845
1391 | MonoBehaviour:
1392 | m_ObjectHideFlags: 0
1393 | m_PrefabParentObject: {fileID: 0}
1394 | m_PrefabInternal: {fileID: 0}
1395 | m_GameObject: {fileID: 1602650843}
1396 | m_Enabled: 1
1397 | m_EditorHideFlags: 0
1398 | m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
1399 | m_Name:
1400 | m_EditorClassIdentifier:
1401 | m_UiScaleMode: 0
1402 | m_ReferencePixelsPerUnit: 100
1403 | m_ScaleFactor: 1
1404 | m_ReferenceResolution: {x: 800, y: 600}
1405 | m_ScreenMatchMode: 0
1406 | m_MatchWidthOrHeight: 0
1407 | m_PhysicalUnit: 3
1408 | m_FallbackScreenDPI: 96
1409 | m_DefaultSpriteDPI: 96
1410 | m_DynamicPixelsPerUnit: 1
1411 | --- !u!223 &1602650846
1412 | Canvas:
1413 | m_ObjectHideFlags: 0
1414 | m_PrefabParentObject: {fileID: 0}
1415 | m_PrefabInternal: {fileID: 0}
1416 | m_GameObject: {fileID: 1602650843}
1417 | m_Enabled: 1
1418 | serializedVersion: 2
1419 | m_RenderMode: 0
1420 | m_Camera: {fileID: 0}
1421 | m_PlaneDistance: 100
1422 | m_PixelPerfect: 0
1423 | m_ReceivesEvents: 1
1424 | m_OverrideSorting: 0
1425 | m_OverridePixelPerfect: 0
1426 | m_SortingBucketNormalizedSize: 0
1427 | m_SortingLayerID: 0
1428 | m_SortingOrder: 0
1429 | m_TargetDisplay: 0
1430 | --- !u!224 &1602650847
1431 | RectTransform:
1432 | m_ObjectHideFlags: 0
1433 | m_PrefabParentObject: {fileID: 0}
1434 | m_PrefabInternal: {fileID: 0}
1435 | m_GameObject: {fileID: 1602650843}
1436 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1437 | m_LocalPosition: {x: 0, y: 0, z: 0}
1438 | m_LocalScale: {x: 0, y: 0, z: 0}
1439 | m_Children:
1440 | - {fileID: 976904208}
1441 | m_Father: {fileID: 0}
1442 | m_RootOrder: 1
1443 | m_AnchorMin: {x: 0, y: 0}
1444 | m_AnchorMax: {x: 0, y: 0}
1445 | m_AnchoredPosition: {x: 0, y: 0}
1446 | m_SizeDelta: {x: 0, y: 0}
1447 | m_Pivot: {x: 0, y: 0}
1448 | --- !u!1 &1652000626
1449 | GameObject:
1450 | m_ObjectHideFlags: 0
1451 | m_PrefabParentObject: {fileID: 0}
1452 | m_PrefabInternal: {fileID: 0}
1453 | serializedVersion: 4
1454 | m_Component:
1455 | - 224: {fileID: 1652000627}
1456 | m_Layer: 5
1457 | m_Name: Sliding Area
1458 | m_TagString: Untagged
1459 | m_Icon: {fileID: 0}
1460 | m_NavMeshLayer: 0
1461 | m_StaticEditorFlags: 0
1462 | m_IsActive: 1
1463 | --- !u!224 &1652000627
1464 | RectTransform:
1465 | m_ObjectHideFlags: 0
1466 | m_PrefabParentObject: {fileID: 0}
1467 | m_PrefabInternal: {fileID: 0}
1468 | m_GameObject: {fileID: 1652000626}
1469 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1470 | m_LocalPosition: {x: 0, y: 0, z: 0}
1471 | m_LocalScale: {x: 1, y: 1, z: 1}
1472 | m_Children:
1473 | - {fileID: 2123273274}
1474 | m_Father: {fileID: 1453284918}
1475 | m_RootOrder: 0
1476 | m_AnchorMin: {x: 0, y: 0}
1477 | m_AnchorMax: {x: 1, y: 1}
1478 | m_AnchoredPosition: {x: 0, y: 0}
1479 | m_SizeDelta: {x: -20, y: -20}
1480 | m_Pivot: {x: 0.5, y: 0.5}
1481 | --- !u!1 &1994022229
1482 | GameObject:
1483 | m_ObjectHideFlags: 0
1484 | m_PrefabParentObject: {fileID: 0}
1485 | m_PrefabInternal: {fileID: 0}
1486 | serializedVersion: 4
1487 | m_Component:
1488 | - 4: {fileID: 1994022234}
1489 | - 20: {fileID: 1994022233}
1490 | - 92: {fileID: 1994022232}
1491 | - 124: {fileID: 1994022231}
1492 | - 81: {fileID: 1994022230}
1493 | m_Layer: 0
1494 | m_Name: Main Camera
1495 | m_TagString: MainCamera
1496 | m_Icon: {fileID: 0}
1497 | m_NavMeshLayer: 0
1498 | m_StaticEditorFlags: 0
1499 | m_IsActive: 1
1500 | --- !u!81 &1994022230
1501 | AudioListener:
1502 | m_ObjectHideFlags: 0
1503 | m_PrefabParentObject: {fileID: 0}
1504 | m_PrefabInternal: {fileID: 0}
1505 | m_GameObject: {fileID: 1994022229}
1506 | m_Enabled: 1
1507 | --- !u!124 &1994022231
1508 | Behaviour:
1509 | m_ObjectHideFlags: 0
1510 | m_PrefabParentObject: {fileID: 0}
1511 | m_PrefabInternal: {fileID: 0}
1512 | m_GameObject: {fileID: 1994022229}
1513 | m_Enabled: 1
1514 | --- !u!92 &1994022232
1515 | Behaviour:
1516 | m_ObjectHideFlags: 0
1517 | m_PrefabParentObject: {fileID: 0}
1518 | m_PrefabInternal: {fileID: 0}
1519 | m_GameObject: {fileID: 1994022229}
1520 | m_Enabled: 1
1521 | --- !u!20 &1994022233
1522 | Camera:
1523 | m_ObjectHideFlags: 0
1524 | m_PrefabParentObject: {fileID: 0}
1525 | m_PrefabInternal: {fileID: 0}
1526 | m_GameObject: {fileID: 1994022229}
1527 | m_Enabled: 1
1528 | serializedVersion: 2
1529 | m_ClearFlags: 3
1530 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
1531 | m_NormalizedViewPortRect:
1532 | serializedVersion: 2
1533 | x: 0
1534 | y: 0
1535 | width: 1
1536 | height: 1
1537 | near clip plane: 0.3
1538 | far clip plane: 1000
1539 | field of view: 60
1540 | orthographic: 1
1541 | orthographic size: 5
1542 | m_Depth: -1
1543 | m_CullingMask:
1544 | serializedVersion: 2
1545 | m_Bits: 4294967295
1546 | m_RenderingPath: -1
1547 | m_TargetTexture: {fileID: 0}
1548 | m_TargetDisplay: 0
1549 | m_TargetEye: 3
1550 | m_HDR: 0
1551 | m_OcclusionCulling: 1
1552 | m_StereoConvergence: 10
1553 | m_StereoSeparation: 0.022
1554 | m_StereoMirrorMode: 0
1555 | --- !u!4 &1994022234
1556 | Transform:
1557 | m_ObjectHideFlags: 0
1558 | m_PrefabParentObject: {fileID: 0}
1559 | m_PrefabInternal: {fileID: 0}
1560 | m_GameObject: {fileID: 1994022229}
1561 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1562 | m_LocalPosition: {x: 0, y: 0, z: -10}
1563 | m_LocalScale: {x: 1, y: 1, z: 1}
1564 | m_Children: []
1565 | m_Father: {fileID: 0}
1566 | m_RootOrder: 0
1567 | --- !u!1 &2018922912
1568 | GameObject:
1569 | m_ObjectHideFlags: 0
1570 | m_PrefabParentObject: {fileID: 0}
1571 | m_PrefabInternal: {fileID: 0}
1572 | serializedVersion: 4
1573 | m_Component:
1574 | - 224: {fileID: 2018922913}
1575 | - 222: {fileID: 2018922915}
1576 | - 114: {fileID: 2018922914}
1577 | m_Layer: 5
1578 | m_Name: OriginalText
1579 | m_TagString: Untagged
1580 | m_Icon: {fileID: 0}
1581 | m_NavMeshLayer: 0
1582 | m_StaticEditorFlags: 0
1583 | m_IsActive: 1
1584 | --- !u!224 &2018922913
1585 | RectTransform:
1586 | m_ObjectHideFlags: 0
1587 | m_PrefabParentObject: {fileID: 0}
1588 | m_PrefabInternal: {fileID: 0}
1589 | m_GameObject: {fileID: 2018922912}
1590 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1591 | m_LocalPosition: {x: 0, y: 0, z: 0}
1592 | m_LocalScale: {x: 1, y: 1, z: 1}
1593 | m_Children: []
1594 | m_Father: {fileID: 976904208}
1595 | m_RootOrder: 2
1596 | m_AnchorMin: {x: 0, y: 0.5}
1597 | m_AnchorMax: {x: 1, y: 0.5}
1598 | m_AnchoredPosition: {x: 75, y: 50}
1599 | m_SizeDelta: {x: -150, y: 80}
1600 | m_Pivot: {x: 0.5, y: 0.5}
1601 | --- !u!114 &2018922914
1602 | MonoBehaviour:
1603 | m_ObjectHideFlags: 0
1604 | m_PrefabParentObject: {fileID: 0}
1605 | m_PrefabInternal: {fileID: 0}
1606 | m_GameObject: {fileID: 2018922912}
1607 | m_Enabled: 1
1608 | m_EditorHideFlags: 0
1609 | m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
1610 | m_Name:
1611 | m_EditorClassIdentifier:
1612 | m_Material: {fileID: 0}
1613 | m_Color: {r: 1, g: 1, b: 1, a: 1}
1614 | m_RaycastTarget: 1
1615 | m_OnCullStateChanged:
1616 | m_PersistentCalls:
1617 | m_Calls: []
1618 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
1619 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
1620 | m_FontData:
1621 | m_Font: {fileID: 12800000, guid: 150d3e88cbefb184388ba52188cfe2c2, type: 3}
1622 | m_FontSize: 45
1623 | m_FontStyle: 0
1624 | m_BestFit: 0
1625 | m_MinSize: 3
1626 | m_MaxSize: 50
1627 | m_Alignment: 3
1628 | m_AlignByGeometry: 0
1629 | m_RichText: 1
1630 | m_HorizontalOverflow: 0
1631 | m_VerticalOverflow: 1
1632 | m_LineSpacing: 1
1633 | m_Text: Text
1634 | --- !u!222 &2018922915
1635 | CanvasRenderer:
1636 | m_ObjectHideFlags: 0
1637 | m_PrefabParentObject: {fileID: 0}
1638 | m_PrefabInternal: {fileID: 0}
1639 | m_GameObject: {fileID: 2018922912}
1640 | --- !u!1 &2123273273
1641 | GameObject:
1642 | m_ObjectHideFlags: 0
1643 | m_PrefabParentObject: {fileID: 0}
1644 | m_PrefabInternal: {fileID: 0}
1645 | serializedVersion: 4
1646 | m_Component:
1647 | - 224: {fileID: 2123273274}
1648 | - 222: {fileID: 2123273276}
1649 | - 114: {fileID: 2123273275}
1650 | m_Layer: 5
1651 | m_Name: Handle
1652 | m_TagString: Untagged
1653 | m_Icon: {fileID: 0}
1654 | m_NavMeshLayer: 0
1655 | m_StaticEditorFlags: 0
1656 | m_IsActive: 1
1657 | --- !u!224 &2123273274
1658 | RectTransform:
1659 | m_ObjectHideFlags: 0
1660 | m_PrefabParentObject: {fileID: 0}
1661 | m_PrefabInternal: {fileID: 0}
1662 | m_GameObject: {fileID: 2123273273}
1663 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
1664 | m_LocalPosition: {x: 0, y: 0, z: 0}
1665 | m_LocalScale: {x: 1, y: 1, z: 1}
1666 | m_Children: []
1667 | m_Father: {fileID: 1652000627}
1668 | m_RootOrder: 0
1669 | m_AnchorMin: {x: 0, y: 0}
1670 | m_AnchorMax: {x: 1, y: 0.2}
1671 | m_AnchoredPosition: {x: 0, y: 0}
1672 | m_SizeDelta: {x: 20, y: 20}
1673 | m_Pivot: {x: 0.5, y: 0.5}
1674 | --- !u!114 &2123273275
1675 | MonoBehaviour:
1676 | m_ObjectHideFlags: 0
1677 | m_PrefabParentObject: {fileID: 0}
1678 | m_PrefabInternal: {fileID: 0}
1679 | m_GameObject: {fileID: 2123273273}
1680 | m_Enabled: 1
1681 | m_EditorHideFlags: 0
1682 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
1683 | m_Name:
1684 | m_EditorClassIdentifier:
1685 | m_Material: {fileID: 0}
1686 | m_Color: {r: 1, g: 1, b: 1, a: 1}
1687 | m_RaycastTarget: 1
1688 | m_OnCullStateChanged:
1689 | m_PersistentCalls:
1690 | m_Calls: []
1691 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
1692 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
1693 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
1694 | m_Type: 1
1695 | m_PreserveAspect: 0
1696 | m_FillCenter: 1
1697 | m_FillMethod: 4
1698 | m_FillAmount: 1
1699 | m_FillClockwise: 1
1700 | m_FillOrigin: 0
1701 | --- !u!222 &2123273276
1702 | CanvasRenderer:
1703 | m_ObjectHideFlags: 0
1704 | m_PrefabParentObject: {fileID: 0}
1705 | m_PrefabInternal: {fileID: 0}
1706 | m_GameObject: {fileID: 2123273273}
1707 |
--------------------------------------------------------------------------------
/src/UnityPackage/Assets/ThaiFontAdjusterDemo/ThaiFontAdjusterDemo.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2f2f8582a221c064f8250e4ac00d4c49
3 | timeCreated: 1454139597
4 | licenseType: Pro
5 | DefaultImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/src/UnityPackage/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: 0
12 | m_VirtualVoiceCount: 512
13 | m_RealVoiceCount: 32
14 | m_SpatializerPlugin:
15 | m_DisableAudio: 0
16 |
--------------------------------------------------------------------------------
/src/UnityPackage/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 |
--------------------------------------------------------------------------------
/src/UnityPackage/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: 2
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_SolverIterationCount: 6
13 | m_QueriesHitTriggers: 1
14 | m_EnableAdaptiveForce: 0
15 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
16 |
--------------------------------------------------------------------------------
/src/UnityPackage/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 | - enabled: 1
9 | path: Assets/ThaiFontAdjusterDemo/ThaiFontAdjusterDemo.unity
10 |
--------------------------------------------------------------------------------
/src/UnityPackage/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: 3
7 | m_ExternalVersionControlSupport: Visible Meta Files
8 | m_SerializationMode: 2
9 | m_WebSecurityEmulationEnabled: 0
10 | m_WebSecurityEmulationHostUrl: http://www.mydomain.com/mygame.unity3d
11 | m_DefaultBehaviorMode: 1
12 | m_SpritePackerMode: 2
13 | m_SpritePackerPaddingPower: 1
14 | m_ProjectGenerationIncludedExtensions:
15 | m_ProjectGenerationRootNamespace:
16 |
--------------------------------------------------------------------------------
/src/UnityPackage/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: 5
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_LegacyDeferred:
14 | m_Mode: 1
15 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
16 | m_AlwaysIncludedShaders:
17 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
18 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
19 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
20 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
21 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
22 | - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0}
23 | m_PreloadedShaders: []
24 | m_ShaderSettings:
25 | useScreenSpaceShadows: 0
26 | m_BuildTargetShaderSettings: []
27 | m_LightmapStripping: 0
28 | m_FogStripping: 0
29 | m_LightmapKeepPlain: 1
30 | m_LightmapKeepDirCombined: 1
31 | m_LightmapKeepDirSeparate: 1
32 | m_LightmapKeepDynamicPlain: 1
33 | m_LightmapKeepDynamicDirCombined: 1
34 | m_LightmapKeepDynamicDirSeparate: 1
35 | m_FogKeepLinear: 1
36 | m_FogKeepExp: 1
37 | m_FogKeepExp2: 1
38 |
--------------------------------------------------------------------------------
/src/UnityPackage/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 |
--------------------------------------------------------------------------------
/src/UnityPackage/ProjectSettings/NavMeshAreas.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!126 &1
4 | NavMeshAreas:
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 |
--------------------------------------------------------------------------------
/src/UnityPackage/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 |
--------------------------------------------------------------------------------
/src/UnityPackage/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: 2
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_MinPenetrationForPenalty: 0.01
17 | m_BaumgarteScale: 0.2
18 | m_BaumgarteTimeOfImpactScale: 0.75
19 | m_TimeToSleep: 0.5
20 | m_LinearSleepTolerance: 0.01
21 | m_AngularSleepTolerance: 2
22 | m_QueriesHitTriggers: 1
23 | m_QueriesStartInColliders: 1
24 | m_ChangeStopsCallbacks: 0
25 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
26 |
--------------------------------------------------------------------------------
/src/UnityPackage/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: 8
7 | AndroidProfiler: 0
8 | defaultScreenOrientation: 4
9 | targetDevice: 2
10 | useOnDemandResources: 0
11 | accelerometerFrequency: 60
12 | companyName: SaladLab
13 | productName: ThaiFontAdjuster
14 | defaultCursor: {fileID: 0}
15 | cursorHotspot: {x: 0, y: 0}
16 | m_ShowUnitySplashScreen: 1
17 | m_VirtualRealitySplashScreen: {fileID: 0}
18 | defaultScreenWidth: 1024
19 | defaultScreenHeight: 768
20 | defaultScreenWidthWeb: 960
21 | defaultScreenHeightWeb: 600
22 | m_RenderingPath: 1
23 | m_MobileRenderingPath: 1
24 | m_ActiveColorSpace: 0
25 | m_MTRendering: 1
26 | m_MobileMTRendering: 0
27 | m_Stereoscopic3D: 0
28 | iosShowActivityIndicatorOnLoading: -1
29 | androidShowActivityIndicatorOnLoading: -1
30 | iosAppInBackgroundBehavior: 0
31 | displayResolutionDialog: 1
32 | iosAllowHTTPDownload: 1
33 | allowedAutorotateToPortrait: 1
34 | allowedAutorotateToPortraitUpsideDown: 1
35 | allowedAutorotateToLandscapeRight: 1
36 | allowedAutorotateToLandscapeLeft: 1
37 | useOSAutorotation: 1
38 | use32BitDisplayBuffer: 1
39 | disableDepthAndStencilBuffers: 0
40 | defaultIsFullScreen: 1
41 | defaultIsNativeResolution: 1
42 | runInBackground: 0
43 | captureSingleScreen: 0
44 | Override IPod Music: 0
45 | Prepare IOS For Recording: 0
46 | submitAnalytics: 1
47 | usePlayerLog: 1
48 | bakeCollisionMeshes: 0
49 | forceSingleInstance: 0
50 | resizableWindow: 0
51 | useMacAppStoreValidation: 0
52 | gpuSkinning: 0
53 | xboxPIXTextureCapture: 0
54 | xboxEnableAvatar: 0
55 | xboxEnableKinect: 0
56 | xboxEnableKinectAutoTracking: 0
57 | xboxEnableFitness: 0
58 | visibleInBackground: 0
59 | allowFullscreenSwitch: 1
60 | macFullscreenMode: 2
61 | d3d9FullscreenMode: 1
62 | d3d11FullscreenMode: 1
63 | xboxSpeechDB: 0
64 | xboxEnableHeadOrientation: 0
65 | xboxEnableGuest: 0
66 | xboxEnablePIXSampling: 0
67 | n3dsDisableStereoscopicView: 0
68 | n3dsEnableSharedListOpt: 1
69 | n3dsEnableVSync: 0
70 | uiUse16BitDepthBuffer: 0
71 | ignoreAlphaClear: 0
72 | xboxOneResolution: 0
73 | ps3SplashScreen: {fileID: 0}
74 | videoMemoryForVertexBuffers: 0
75 | psp2PowerMode: 0
76 | psp2AcquireBGM: 1
77 | wiiUTVResolution: 0
78 | wiiUGamePadMSAA: 1
79 | wiiUSupportsNunchuk: 0
80 | wiiUSupportsClassicController: 0
81 | wiiUSupportsBalanceBoard: 0
82 | wiiUSupportsMotionPlus: 0
83 | wiiUSupportsProController: 0
84 | wiiUAllowScreenCapture: 1
85 | wiiUControllerCount: 0
86 | m_SupportedAspectRatios:
87 | 4:3: 1
88 | 5:4: 1
89 | 16:10: 1
90 | 16:9: 1
91 | Others: 1
92 | bundleIdentifier: com.saladbowl.thaifontadjuster
93 | bundleVersion: 1.0
94 | preloadedAssets: []
95 | metroEnableIndependentInputSource: 0
96 | metroEnableLowLatencyPresentationAPI: 0
97 | xboxOneDisableKinectGpuReservation: 0
98 | virtualRealitySupported: 0
99 | productGUID: bbeb093dea3de664da87de6edcecd4e9
100 | AndroidBundleVersionCode: 1
101 | AndroidMinSdkVersion: 14
102 | AndroidPreferredInstallLocation: 1
103 | aotOptions:
104 | apiCompatibilityLevel: 2
105 | stripEngineCode: 1
106 | iPhoneStrippingLevel: 0
107 | iPhoneScriptCallOptimization: 0
108 | iPhoneBuildNumber: 0
109 | ForceInternetPermission: 0
110 | ForceSDCardPermission: 0
111 | CreateWallpaper: 0
112 | APKExpansionFiles: 0
113 | preloadShaders: 0
114 | StripUnusedMeshComponents: 0
115 | VertexChannelCompressionMask:
116 | serializedVersion: 2
117 | m_Bits: 238
118 | iPhoneSdkVersion: 988
119 | iPhoneTargetOSVersion: 22
120 | uIPrerenderedIcon: 0
121 | uIRequiresPersistentWiFi: 0
122 | uIRequiresFullScreen: 1
123 | uIStatusBarHidden: 1
124 | uIExitOnSuspend: 0
125 | uIStatusBarStyle: 0
126 | iPhoneSplashScreen: {fileID: 0}
127 | iPhoneHighResSplashScreen: {fileID: 0}
128 | iPhoneTallHighResSplashScreen: {fileID: 0}
129 | iPhone47inSplashScreen: {fileID: 0}
130 | iPhone55inPortraitSplashScreen: {fileID: 0}
131 | iPhone55inLandscapeSplashScreen: {fileID: 0}
132 | iPadPortraitSplashScreen: {fileID: 0}
133 | iPadHighResPortraitSplashScreen: {fileID: 0}
134 | iPadLandscapeSplashScreen: {fileID: 0}
135 | iPadHighResLandscapeSplashScreen: {fileID: 0}
136 | appleTVSplashScreen: {fileID: 0}
137 | tvOSSmallIconLayers: []
138 | tvOSLargeIconLayers: []
139 | tvOSTopShelfImageLayers: []
140 | iOSLaunchScreenType: 0
141 | iOSLaunchScreenPortrait: {fileID: 0}
142 | iOSLaunchScreenLandscape: {fileID: 0}
143 | iOSLaunchScreenBackgroundColor:
144 | serializedVersion: 2
145 | rgba: 0
146 | iOSLaunchScreenFillPct: 100
147 | iOSLaunchScreenSize: 100
148 | iOSLaunchScreenCustomXibPath:
149 | iOSLaunchScreeniPadType: 0
150 | iOSLaunchScreeniPadImage: {fileID: 0}
151 | iOSLaunchScreeniPadBackgroundColor:
152 | serializedVersion: 2
153 | rgba: 0
154 | iOSLaunchScreeniPadFillPct: 100
155 | iOSLaunchScreeniPadSize: 100
156 | iOSLaunchScreeniPadCustomXibPath:
157 | iOSDeviceRequirements: []
158 | AndroidTargetDevice: 0
159 | AndroidSplashScreenScale: 0
160 | androidSplashScreen: {fileID: 0}
161 | AndroidKeystoreName:
162 | AndroidKeyaliasName:
163 | AndroidTVCompatibility: 1
164 | AndroidIsGame: 1
165 | androidEnableBanner: 1
166 | m_AndroidBanners:
167 | - width: 320
168 | height: 180
169 | banner: {fileID: 0}
170 | androidGamepadSupportLevel: 0
171 | resolutionDialogBanner: {fileID: 0}
172 | m_BuildTargetIcons:
173 | - m_BuildTarget:
174 | m_Icons:
175 | - serializedVersion: 2
176 | m_Icon: {fileID: 0}
177 | m_Width: 128
178 | m_Height: 128
179 | m_BuildTargetBatching: []
180 | m_BuildTargetGraphicsAPIs: []
181 | webPlayerTemplate: APPLICATION:Default
182 | m_TemplateCustomTags: {}
183 | wiiUTitleID: 0005000011000000
184 | wiiUGroupID: 00010000
185 | wiiUCommonSaveSize: 4096
186 | wiiUAccountSaveSize: 2048
187 | wiiUOlvAccessKey: 0
188 | wiiUTinCode: 0
189 | wiiUJoinGameId: 0
190 | wiiUJoinGameModeMask: 0000000000000000
191 | wiiUCommonBossSize: 0
192 | wiiUAccountBossSize: 0
193 | wiiUAddOnUniqueIDs: []
194 | wiiUMainThreadStackSize: 3072
195 | wiiULoaderThreadStackSize: 1024
196 | wiiUSystemHeapSize: 128
197 | wiiUTVStartupScreen: {fileID: 0}
198 | wiiUGamePadStartupScreen: {fileID: 0}
199 | wiiUProfilerLibPath:
200 | actionOnDotNetUnhandledException: 1
201 | enableInternalProfiler: 0
202 | logObjCUncaughtExceptions: 1
203 | enableCrashReportAPI: 0
204 | locationUsageDescription:
205 | XboxTitleId:
206 | XboxImageXexPath:
207 | XboxSpaPath:
208 | XboxGenerateSpa: 0
209 | XboxDeployKinectResources: 0
210 | XboxSplashScreen: {fileID: 0}
211 | xboxEnableSpeech: 0
212 | xboxAdditionalTitleMemorySize: 0
213 | xboxDeployKinectHeadOrientation: 0
214 | xboxDeployKinectHeadPosition: 0
215 | ps3TitleConfigPath:
216 | ps3DLCConfigPath:
217 | ps3ThumbnailPath:
218 | ps3BackgroundPath:
219 | ps3SoundPath:
220 | ps3NPAgeRating: 12
221 | ps3TrophyCommId:
222 | ps3NpCommunicationPassphrase:
223 | ps3TrophyPackagePath:
224 | ps3BootCheckMaxSaveGameSizeKB: 128
225 | ps3TrophyCommSig:
226 | ps3SaveGameSlots: 1
227 | ps3TrialMode: 0
228 | ps3VideoMemoryForAudio: 0
229 | ps3EnableVerboseMemoryStats: 0
230 | ps3UseSPUForUmbra: 0
231 | ps3EnableMoveSupport: 1
232 | ps3DisableDolbyEncoding: 0
233 | ps4NPAgeRating: 12
234 | ps4NPTitleSecret:
235 | ps4NPTrophyPackPath:
236 | ps4ParentalLevel: 1
237 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
238 | ps4Category: 0
239 | ps4MasterVersion: 01.00
240 | ps4AppVersion: 01.00
241 | ps4AppType: 0
242 | ps4ParamSfxPath:
243 | ps4VideoOutPixelFormat: 0
244 | ps4VideoOutResolution: 4
245 | ps4PronunciationXMLPath:
246 | ps4PronunciationSIGPath:
247 | ps4BackgroundImagePath:
248 | ps4StartupImagePath:
249 | ps4SaveDataImagePath:
250 | ps4SdkOverride:
251 | ps4BGMPath:
252 | ps4ShareFilePath:
253 | ps4ShareOverlayImagePath:
254 | ps4PrivacyGuardImagePath:
255 | ps4NPtitleDatPath:
256 | ps4RemotePlayKeyAssignment: -1
257 | ps4RemotePlayKeyMappingDir:
258 | ps4EnterButtonAssignment: 1
259 | ps4ApplicationParam1: 0
260 | ps4ApplicationParam2: 0
261 | ps4ApplicationParam3: 0
262 | ps4ApplicationParam4: 0
263 | ps4DownloadDataSize: 0
264 | ps4GarlicHeapSize: 2048
265 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
266 | ps4pnSessions: 1
267 | ps4pnPresence: 1
268 | ps4pnFriends: 1
269 | ps4pnGameCustomData: 1
270 | playerPrefsSupport: 0
271 | ps4ReprojectionSupport: 0
272 | ps4UseAudio3dBackend: 0
273 | ps4SocialScreenEnabled: 0
274 | ps4Audio3dVirtualSpeakerCount: 14
275 | ps4attribCpuUsage: 0
276 | ps4PatchPkgPath:
277 | ps4PatchLatestPkgPath:
278 | ps4PatchChangeinfoPath:
279 | ps4attribUserManagement: 0
280 | ps4attribMoveSupport: 0
281 | ps4attrib3DSupport: 0
282 | ps4attribShareSupport: 0
283 | ps4IncludedModules: []
284 | monoEnv:
285 | psp2Splashimage: {fileID: 0}
286 | psp2NPTrophyPackPath:
287 | psp2NPSupportGBMorGJP: 0
288 | psp2NPAgeRating: 12
289 | psp2NPTitleDatPath:
290 | psp2NPCommsID:
291 | psp2NPCommunicationsID:
292 | psp2NPCommsPassphrase:
293 | psp2NPCommsSig:
294 | psp2ParamSfxPath:
295 | psp2ManualPath:
296 | psp2LiveAreaGatePath:
297 | psp2LiveAreaBackroundPath:
298 | psp2LiveAreaPath:
299 | psp2LiveAreaTrialPath:
300 | psp2PatchChangeInfoPath:
301 | psp2PatchOriginalPackage:
302 | psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui
303 | psp2KeystoneFile:
304 | psp2MemoryExpansionMode: 0
305 | psp2DRMType: 0
306 | psp2StorageType: 0
307 | psp2MediaCapacity: 0
308 | psp2DLCConfigPath:
309 | psp2ThumbnailPath:
310 | psp2BackgroundPath:
311 | psp2SoundPath:
312 | psp2TrophyCommId:
313 | psp2TrophyPackagePath:
314 | psp2PackagedResourcesPath:
315 | psp2SaveDataQuota: 10240
316 | psp2ParentalLevel: 1
317 | psp2ShortTitle: Not Set
318 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF
319 | psp2Category: 0
320 | psp2MasterVersion: 01.00
321 | psp2AppVersion: 01.00
322 | psp2TVBootMode: 0
323 | psp2EnterButtonAssignment: 2
324 | psp2TVDisableEmu: 0
325 | psp2AllowTwitterDialog: 1
326 | psp2Upgradable: 0
327 | psp2HealthWarning: 0
328 | psp2UseLibLocation: 0
329 | psp2InfoBarOnStartup: 0
330 | psp2InfoBarColor: 0
331 | psmSplashimage: {fileID: 0}
332 | spritePackerPolicy:
333 | scriptingDefineSymbols: {}
334 | metroPackageName: UnityPackage
335 | metroPackageVersion:
336 | metroCertificatePath:
337 | metroCertificatePassword:
338 | metroCertificateSubject:
339 | metroCertificateIssuer:
340 | metroCertificateNotAfter: 0000000000000000
341 | metroApplicationDescription: UnityPackage
342 | wsaImages: {}
343 | metroTileShortName:
344 | metroCommandLineArgsFile:
345 | metroTileShowName: 0
346 | metroMediumTileShowName: 0
347 | metroLargeTileShowName: 0
348 | metroWideTileShowName: 0
349 | metroDefaultTileSize: 1
350 | metroTileForegroundText: 1
351 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
352 | metroSplashScreenBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628,
353 | a: 1}
354 | metroSplashScreenUseBackgroundColor: 1
355 | platformCapabilities: {}
356 | metroFTAName:
357 | metroFTAFileTypes: []
358 | metroProtocolName:
359 | metroCompilationOverrides: 1
360 | blackberryDeviceAddress:
361 | blackberryDevicePassword:
362 | blackberryTokenPath:
363 | blackberryTokenExires:
364 | blackberryTokenAuthor:
365 | blackberryTokenAuthorId:
366 | blackberryCskPassword:
367 | blackberrySaveLogPath:
368 | blackberrySharedPermissions: 0
369 | blackberryCameraPermissions: 0
370 | blackberryGPSPermissions: 0
371 | blackberryDeviceIDPermissions: 0
372 | blackberryMicrophonePermissions: 0
373 | blackberryGamepadSupport: 0
374 | blackberryBuildId: 0
375 | blackberryLandscapeSplashScreen: {fileID: 0}
376 | blackberryPortraitSplashScreen: {fileID: 0}
377 | blackberrySquareSplashScreen: {fileID: 0}
378 | tizenProductDescription:
379 | tizenProductURL:
380 | tizenSigningProfileName:
381 | tizenGPSPermissions: 0
382 | tizenMicrophonePermissions: 0
383 | n3dsUseExtSaveData: 0
384 | n3dsCompressStaticMem: 1
385 | n3dsExtSaveDataNumber: 0x12345
386 | n3dsStackSize: 131072
387 | n3dsTargetPlatform: 2
388 | n3dsRegion: 7
389 | n3dsMediaSize: 0
390 | n3dsLogoStyle: 3
391 | n3dsTitle: GameName
392 | n3dsProductCode:
393 | n3dsApplicationId: 0xFF3FF
394 | stvDeviceAddress:
395 | stvProductDescription:
396 | stvProductAuthor:
397 | stvProductAuthorEmail:
398 | stvProductLink:
399 | stvProductCategory: 0
400 | XboxOneProductId:
401 | XboxOneUpdateKey:
402 | XboxOneSandboxId:
403 | XboxOneContentId:
404 | XboxOneTitleId:
405 | XboxOneSCId:
406 | XboxOneGameOsOverridePath:
407 | XboxOnePackagingOverridePath:
408 | XboxOneAppManifestOverridePath:
409 | XboxOnePackageEncryption: 0
410 | XboxOnePackageUpdateGranularity: 2
411 | XboxOneDescription:
412 | XboxOneIsContentPackage: 0
413 | XboxOneEnableGPUVariability: 0
414 | XboxOneSockets: {}
415 | XboxOneSplashScreen: {fileID: 0}
416 | XboxOneAllowedProductIds: []
417 | XboxOnePersistentLocalStorageSize: 0
418 | intPropertyNames:
419 | - Android::ScriptingBackend
420 | - Metro::ScriptingBackend
421 | - Standalone::ScriptingBackend
422 | - WP8::ScriptingBackend
423 | - WebGL::ScriptingBackend
424 | - WebGL::audioCompressionFormat
425 | - WebGL::exceptionSupport
426 | - WebGL::memorySize
427 | - WebPlayer::ScriptingBackend
428 | - iOS::Architecture
429 | - iOS::EnableIncrementalBuildSupportForIl2cpp
430 | - iOS::ScriptingBackend
431 | Android::ScriptingBackend: 0
432 | Metro::ScriptingBackend: 2
433 | Standalone::ScriptingBackend: 0
434 | WP8::ScriptingBackend: 2
435 | WebGL::ScriptingBackend: 1
436 | WebGL::audioCompressionFormat: 4
437 | WebGL::exceptionSupport: 1
438 | WebGL::memorySize: 256
439 | WebPlayer::ScriptingBackend: 0
440 | iOS::Architecture: 2
441 | iOS::EnableIncrementalBuildSupportForIl2cpp: 1
442 | iOS::ScriptingBackend: 1
443 | boolPropertyNames:
444 | - WebGL::analyzeBuildSize
445 | - WebGL::dataCaching
446 | - WebGL::useEmbeddedResources
447 | - XboxOne::enus
448 | WebGL::analyzeBuildSize: 0
449 | WebGL::dataCaching: 0
450 | WebGL::useEmbeddedResources: 0
451 | XboxOne::enus: 1
452 | stringPropertyNames:
453 | - WebGL::emscriptenArgs
454 | - WebGL::template
455 | - additionalIl2CppArgs::additionalIl2CppArgs
456 | WebGL::emscriptenArgs:
457 | WebGL::template: APPLICATION:Default
458 | additionalIl2CppArgs::additionalIl2CppArgs:
459 | cloudProjectId:
460 | projectName:
461 | organizationId:
462 | cloudEnabled: 0
463 |
--------------------------------------------------------------------------------
/src/UnityPackage/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 5.3.4f1
2 | m_StandardAssetsVersion: 0
3 |
--------------------------------------------------------------------------------
/src/UnityPackage/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: 5
8 | m_QualitySettings:
9 | - serializedVersion: 2
10 | name: Fastest
11 | pixelLightCount: 0
12 | shadows: 0
13 | shadowResolution: 0
14 | shadowProjection: 1
15 | shadowCascades: 1
16 | shadowDistance: 15
17 | shadowNearPlaneOffset: 2
18 | shadowCascade2Split: 0.33333334
19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
20 | blendWeights: 1
21 | textureQuality: 1
22 | anisotropicTextures: 0
23 | antiAliasing: 0
24 | softParticles: 0
25 | softVegetation: 0
26 | realtimeReflectionProbes: 0
27 | billboardsFaceCameraPosition: 0
28 | vSyncCount: 0
29 | lodBias: 0.3
30 | maximumLODLevel: 0
31 | particleRaycastBudget: 4
32 | asyncUploadTimeSlice: 2
33 | asyncUploadBufferSize: 4
34 | excludedTargetPlatforms: []
35 | - serializedVersion: 2
36 | name: Fast
37 | pixelLightCount: 0
38 | shadows: 0
39 | shadowResolution: 0
40 | shadowProjection: 1
41 | shadowCascades: 1
42 | shadowDistance: 20
43 | shadowNearPlaneOffset: 2
44 | shadowCascade2Split: 0.33333334
45 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
46 | blendWeights: 2
47 | textureQuality: 0
48 | anisotropicTextures: 0
49 | antiAliasing: 0
50 | softParticles: 0
51 | softVegetation: 0
52 | realtimeReflectionProbes: 0
53 | billboardsFaceCameraPosition: 0
54 | vSyncCount: 0
55 | lodBias: 0.4
56 | maximumLODLevel: 0
57 | particleRaycastBudget: 16
58 | asyncUploadTimeSlice: 2
59 | asyncUploadBufferSize: 4
60 | excludedTargetPlatforms: []
61 | - serializedVersion: 2
62 | name: Simple
63 | pixelLightCount: 1
64 | shadows: 1
65 | shadowResolution: 0
66 | shadowProjection: 1
67 | shadowCascades: 1
68 | shadowDistance: 20
69 | shadowNearPlaneOffset: 2
70 | shadowCascade2Split: 0.33333334
71 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
72 | blendWeights: 2
73 | textureQuality: 0
74 | anisotropicTextures: 1
75 | antiAliasing: 0
76 | softParticles: 0
77 | softVegetation: 0
78 | realtimeReflectionProbes: 0
79 | billboardsFaceCameraPosition: 0
80 | vSyncCount: 0
81 | lodBias: 0.7
82 | maximumLODLevel: 0
83 | particleRaycastBudget: 64
84 | asyncUploadTimeSlice: 2
85 | asyncUploadBufferSize: 4
86 | excludedTargetPlatforms: []
87 | - serializedVersion: 2
88 | name: Good
89 | pixelLightCount: 2
90 | shadows: 2
91 | shadowResolution: 1
92 | shadowProjection: 1
93 | shadowCascades: 2
94 | shadowDistance: 40
95 | shadowNearPlaneOffset: 2
96 | shadowCascade2Split: 0.33333334
97 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
98 | blendWeights: 2
99 | textureQuality: 0
100 | anisotropicTextures: 1
101 | antiAliasing: 0
102 | softParticles: 0
103 | softVegetation: 1
104 | realtimeReflectionProbes: 1
105 | billboardsFaceCameraPosition: 1
106 | vSyncCount: 1
107 | lodBias: 1
108 | maximumLODLevel: 0
109 | particleRaycastBudget: 256
110 | asyncUploadTimeSlice: 2
111 | asyncUploadBufferSize: 4
112 | excludedTargetPlatforms: []
113 | - serializedVersion: 2
114 | name: Beautiful
115 | pixelLightCount: 3
116 | shadows: 2
117 | shadowResolution: 2
118 | shadowProjection: 1
119 | shadowCascades: 2
120 | shadowDistance: 70
121 | shadowNearPlaneOffset: 2
122 | shadowCascade2Split: 0.33333334
123 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
124 | blendWeights: 4
125 | textureQuality: 0
126 | anisotropicTextures: 2
127 | antiAliasing: 2
128 | softParticles: 1
129 | softVegetation: 1
130 | realtimeReflectionProbes: 1
131 | billboardsFaceCameraPosition: 1
132 | vSyncCount: 1
133 | lodBias: 1.5
134 | maximumLODLevel: 0
135 | particleRaycastBudget: 1024
136 | asyncUploadTimeSlice: 2
137 | asyncUploadBufferSize: 4
138 | excludedTargetPlatforms: []
139 | - serializedVersion: 2
140 | name: Fantastic
141 | pixelLightCount: 4
142 | shadows: 2
143 | shadowResolution: 2
144 | shadowProjection: 1
145 | shadowCascades: 4
146 | shadowDistance: 150
147 | shadowNearPlaneOffset: 2
148 | shadowCascade2Split: 0.33333334
149 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
150 | blendWeights: 4
151 | textureQuality: 0
152 | anisotropicTextures: 2
153 | antiAliasing: 2
154 | softParticles: 1
155 | softVegetation: 1
156 | realtimeReflectionProbes: 1
157 | billboardsFaceCameraPosition: 1
158 | vSyncCount: 1
159 | lodBias: 2
160 | maximumLODLevel: 0
161 | particleRaycastBudget: 4096
162 | asyncUploadTimeSlice: 2
163 | asyncUploadBufferSize: 4
164 | excludedTargetPlatforms: []
165 | m_PerPlatformDefaultQuality:
166 | Android: 2
167 | BlackBerry: 2
168 | GLES Emulation: 5
169 | Nintendo 3DS: 5
170 | PS3: 5
171 | PS4: 5
172 | PSM: 5
173 | PSP2: 2
174 | Samsung TV: 2
175 | Standalone: 5
176 | Tizen: 2
177 | WP8: 5
178 | Web: 5
179 | WebGL: 3
180 | WiiU: 5
181 | Windows Store Apps: 5
182 | XBOX360: 5
183 | XboxOne: 5
184 | iPhone: 2
185 | tvOS: 5
186 |
--------------------------------------------------------------------------------
/src/UnityPackage/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 |
--------------------------------------------------------------------------------
/src/UnityPackage/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.33333334
8 | m_TimeScale: 1
9 |
--------------------------------------------------------------------------------
/src/UnityPackage/ProjectSettings/UnityAdsSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!292 &1
4 | UnityAdsSettings:
5 | m_ObjectHideFlags: 0
6 | m_Enabled: 0
7 | m_InitializeOnStartup: 1
8 | m_TestMode: 0
9 | m_EnabledPlatforms: 4294967295
10 | m_IosGameId:
11 | m_AndroidGameId:
12 |
--------------------------------------------------------------------------------
/src/UnityPackage/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 | UnityPurchasingSettings:
7 | m_Enabled: 0
8 | m_TestMode: 0
9 | UnityAnalyticsSettings:
10 | m_Enabled: 0
11 | m_InitializeOnStartup: 1
12 | m_TestMode: 0
13 | m_TestEventUrl:
14 | m_TestConfigUrl:
15 |
--------------------------------------------------------------------------------
/src/UnityPackage/ThaiFontAdjuster.unitypackage.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "ThaiFontAdjuster",
3 | "version": "1.0.0",
4 | "authors": [ "Esun Kim" ],
5 | "owners": [ "Esun Kim" ],
6 | "description": "Utility to render Thai text correctly in Unity3D, especially for positioning tone mark.",
7 | "files": [
8 | "Assets/ThaiFontAdjuster/*",
9 | { "source": "Assets/ThaiFontAdjusterDemo/*", "target": "$homebase$/ThaiFontAdjusterDemo/", "extra": true },
10 | "$dependencies$"
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/tools/nuget/NuGet.Config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/tools/nuget/NuGet.targets:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | $(MSBuildProjectDirectory)\..\
5 |
6 |
7 | false
8 |
9 |
10 | false
11 |
12 |
13 | true
14 |
15 |
16 | false
17 |
18 |
19 |
20 |
21 |
22 |
26 |
27 |
28 |
29 |
30 | $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
31 |
32 |
33 |
34 |
35 | $(SolutionDir).nuget
36 |
37 |
38 |
39 | $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName.Replace(' ', '_')).config
40 | $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config
41 |
42 |
43 |
44 | $(MSBuildProjectDirectory)\packages.config
45 | $(PackagesProjectConfig)
46 |
47 |
48 |
49 |
50 | $(NuGetToolsPath)\NuGet.exe
51 | @(PackageSource)
52 |
53 | "$(NuGetExePath)"
54 | mono --runtime=v4.0.30319 "$(NuGetExePath)"
55 |
56 | $(TargetDir.Trim('\\'))
57 |
58 | -RequireConsent
59 | -NonInteractive
60 |
61 | "$(SolutionDir) "
62 | "$(SolutionDir)"
63 |
64 |
65 | $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir)
66 | $(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols
67 |
68 |
69 |
70 | RestorePackages;
71 | $(BuildDependsOn);
72 |
73 |
74 |
75 |
76 | $(BuildDependsOn);
77 | BuildPackage;
78 |
79 |
80 |
81 |
82 |
83 |
84 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
99 |
100 |
103 |
104 |
105 |
106 |
108 |
109 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
141 |
142 |
143 |
144 |
145 |
--------------------------------------------------------------------------------
/tools/nuget/nuget.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/36571c714d9ae7cca21c12f7c1eb86158382f12b/tools/nuget/nuget.exe
--------------------------------------------------------------------------------
/tools/nuget/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------