├── .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 | ![Features](https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/master/docs/Features.png) 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 | ![ThaiFont](https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/master/docs/Font.png) 75 | 76 | In addition this standard glyphs, extended glyphs are included. 77 | 78 | ![ThaiFontExtended](https://raw.githubusercontent.com/SaladLab/Unity3D.ThaiFontAdjuster/master/docs/FontExtended.png) 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 | --------------------------------------------------------------------------------