├── VirtualKeyboard ├── Assets │ ├── Resources │ │ ├── BillingMode.json │ │ └── BillingMode.json.meta │ ├── VirtualKeyboard │ │ ├── sample.unity │ │ ├── sample.unity.meta │ │ ├── Editor.meta │ │ ├── AutomateKR.cs.meta │ │ ├── VirtualKey.cs.meta │ │ ├── VirtualKeyboard.cs.meta │ │ ├── VirtualTextInputBox.cs.meta │ │ ├── Editor │ │ │ ├── VirtualKeyEditor.cs.meta │ │ │ └── VirtualKeyEditor.cs │ │ ├── VirtualTextInputBox.cs │ │ ├── VirtualKeyboard.cs │ │ ├── VirtualKey.cs │ │ └── AutomateKR.cs │ ├── Resources.meta │ └── VirtualKeyboard.meta ├── ProjectSettings │ ├── ProjectVersion.txt │ ├── TagManager.asset │ ├── VFXManager.asset │ ├── AudioManager.asset │ ├── InputManager.asset │ ├── NavMeshAreas.asset │ ├── TimeManager.asset │ ├── DynamicsManager.asset │ ├── EditorSettings.asset │ ├── NetworkManager.asset │ ├── PresetManager.asset │ ├── ProjectSettings.asset │ ├── QualitySettings.asset │ ├── GraphicsSettings.asset │ ├── Physics2DSettings.asset │ ├── ClusterInputManager.asset │ ├── EditorBuildSettings.asset │ ├── UnityConnectSettings.asset │ ├── VersionControlSettings.asset │ └── PackageManagerSettings.asset ├── .vsconfig ├── VirtualKeyboard.sln ├── .gitignore ├── Packages │ ├── manifest.json │ └── packages-lock.json ├── VirtualKeyboard.CSharp.csproj ├── VirtualKeyboard.CSharp.Editor.csproj └── Assembly-CSharp.csproj ├── README.md └── .gitignore /VirtualKeyboard/Assets/Resources/BillingMode.json: -------------------------------------------------------------------------------- 1 | {"androidStore":"GooglePlay"} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Unity3D용 가상 한글키보드 2 | 3 | 한글오토마타 from http://codepedia.tistory.com/107 4 | -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2020.3.21f1 2 | m_EditorVersionWithRevision: 2020.3.21f1 (a38c86f6690f) 3 | -------------------------------------------------------------------------------- /VirtualKeyboard/.vsconfig: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "components": [ 4 | "Microsoft.VisualStudio.Workload.ManagedGame" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/TagManager.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/VFXManager.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/AudioManager.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/InputManager.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/NavMeshAreas.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/TimeManager.asset -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/sample.unity: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/Assets/VirtualKeyboard/sample.unity -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/DynamicsManager.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/EditorSettings.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/NetworkManager.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/PresetManager.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/ProjectSettings.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/QualitySettings.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/GraphicsSettings.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/Physics2DSettings.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/ClusterInputManager.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/EditorBuildSettings.asset -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeongJoo-Kim/UnityHangulKeybord/HEAD/VirtualKeyboard/ProjectSettings/UnityConnectSettings.asset -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4cbcf3e8f98c644f954cbf2b09169d1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/Resources/BillingMode.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd2e1b07e6b1ea449a566767e171e39b 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/sample.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd29fcdac1601174b9d8604a7c6a06b3 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca10661d2fec5874ba9007a0f0d3acbe 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7025b3c926ee6424792c42a59a5a7f34 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/AutomateKR.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79e8c0f125de15741a9776a5a379101f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/VirtualKey.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b56c0de04a985a479f92766558c4892 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/VirtualKeyboard.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a457cf62159742c49a89cfea20a68ccd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/VirtualTextInputBox.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b61f89f930da4854a91dddd19c13172b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/Editor/VirtualKeyEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 767b72c6698f9c34dbef6d9155fc514e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /VirtualKeyboard/ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreviewPackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | oneTimeWarningShown: 0 20 | m_Registries: 21 | - m_Id: main 22 | m_Name: 23 | m_Url: https://packages.unity.com 24 | m_Scopes: [] 25 | m_IsDefault: 1 26 | m_Capabilities: 7 27 | m_UserSelectedRegistryName: 28 | m_UserAddingNewScopedRegistry: 0 29 | m_RegistryInfoDraft: 30 | m_ErrorMessage: 31 | m_Original: 32 | m_Id: 33 | m_Name: 34 | m_Url: 35 | m_Scopes: [] 36 | m_IsDefault: 0 37 | m_Capabilities: 0 38 | m_Modified: 0 39 | m_Name: 40 | m_Url: 41 | m_Scopes: 42 | - 43 | m_SelectedScopeIndex: 0 44 | -------------------------------------------------------------------------------- /VirtualKeyboard/VirtualKeyboard.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{2B33D4B7-768F-B021-459E-EAA18BB8F7BD}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp-Editor", "Assembly-CSharp-Editor.csproj", "{F835FA93-C47D-57D4-FE18-094868A77B8C}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {2B33D4B7-768F-B021-459E-EAA18BB8F7BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {2B33D4B7-768F-B021-459E-EAA18BB8F7BD}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {2B33D4B7-768F-B021-459E-EAA18BB8F7BD}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {2B33D4B7-768F-B021-459E-EAA18BB8F7BD}.Release|Any CPU.Build.0 = Release|Any CPU 18 | {F835FA93-C47D-57D4-FE18-094868A77B8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {F835FA93-C47D-57D4-FE18-094868A77B8C}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {F835FA93-C47D-57D4-FE18-094868A77B8C}.Release|Any CPU.ActiveCfg = Release|Any CPU 21 | {F835FA93-C47D-57D4-FE18-094868A77B8C}.Release|Any CPU.Build.0 = Release|Any CPU 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /VirtualKeyboard/.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Uu]ser[Ss]ettings/ 12 | 13 | # MemoryCaptures can get excessive in size. 14 | # They also could contain extremely sensitive data 15 | /[Mm]emoryCaptures/ 16 | 17 | # Asset meta data should only be ignored when the corresponding asset is also ignored 18 | !/[Aa]ssets/**/*.meta 19 | 20 | # Uncomment this line if you wish to ignore the asset store tools plugin 21 | # /[Aa]ssets/AssetStoreTools* 22 | 23 | # Autogenerated Jetbrains Rider plugin 24 | /[Aa]ssets/Plugins/Editor/JetBrains* 25 | 26 | # Visual Studio cache directory 27 | .vs/ 28 | 29 | # Gradle cache directory 30 | .gradle/ 31 | 32 | # Autogenerated VS/MD/Consulo solution and project files 33 | ExportedObj/ 34 | .consulo/ 35 | *.csproj 36 | *.unityproj 37 | *.sln 38 | *.suo 39 | *.tmp 40 | *.user 41 | *.userprefs 42 | *.pidb 43 | *.booproj 44 | *.svd 45 | *.pdb 46 | *.mdb 47 | *.opendb 48 | *.VC.db 49 | 50 | # Unity3D generated meta files 51 | *.pidb.meta 52 | *.pdb.meta 53 | *.mdb.meta 54 | 55 | # Unity3D generated file on crash reports 56 | sysinfo.txt 57 | 58 | # Builds 59 | *.apk 60 | *.aab 61 | *.unitypackage 62 | 63 | # Crashlytics generated file 64 | crashlytics-build.properties 65 | 66 | # Packed Addressables 67 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 68 | 69 | # Temporary auto-generated Android Assets 70 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 71 | /[Aa]ssets/[Ss]treamingAssets/aa/* 72 | cublas64_100.dll 73 | cudart64_100.dll 74 | cudnn64_7.dll 75 | dnn_model_2_0.onnx 76 | ST-Kinect4Azure-001373795012-color-1920-1080.bin 77 | onnxruntime.dll 78 | *.mp4 79 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/VirtualTextInputBox.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | public class VirtualTextInputBox : MonoBehaviour { 5 | 6 | AutomateKR mAutomateKR = new AutomateKR(); 7 | protected UnityEngine.UI.InputField mTextField = null; 8 | public string TextField 9 | { 10 | set 11 | { 12 | if (mTextField != null) 13 | { 14 | mTextField.text = value; 15 | } 16 | } 17 | get 18 | { 19 | if (mTextField != null) 20 | { 21 | return mTextField.text; 22 | } 23 | return ""; 24 | } 25 | } 26 | 27 | void Start () { 28 | mTextField = GetComponent(); 29 | } 30 | 31 | void Update () { 32 | 33 | } 34 | 35 | public void Clear() 36 | { 37 | mAutomateKR.Clear(); 38 | 39 | TextField = mAutomateKR.completeText + mAutomateKR.ingWord; 40 | } 41 | 42 | 43 | public void KeyDownHangul(char _key) 44 | { 45 | mAutomateKR.SetKeyCode(_key); 46 | 47 | TextField = mAutomateKR.completeText + mAutomateKR.ingWord; 48 | } 49 | 50 | public void KeyDown(char _key) 51 | { 52 | mAutomateKR.SetKeyString(_key); 53 | 54 | TextField = mAutomateKR.completeText + mAutomateKR.ingWord; 55 | } 56 | 57 | public void KeyDown(VirtualKey _key) 58 | { 59 | switch(_key.KeyType) 60 | { 61 | case VirtualKey.kType.kBackspace: 62 | { 63 | mAutomateKR.SetKeyCode(AutomateKR.KEY_CODE_BACKSPACE); 64 | 65 | } 66 | break; 67 | case VirtualKey.kType.kSpace: 68 | { 69 | mAutomateKR.SetKeyCode(AutomateKR.KEY_CODE_SPACE); 70 | } 71 | break; 72 | } 73 | 74 | TextField = mAutomateKR.completeText + mAutomateKR.ingWord; 75 | } 76 | 77 | public AutomateKR.HAN_STATUS GetStatus() 78 | { 79 | return mAutomateKR.GetStatus(); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /VirtualKeyboard/Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.2d.sprite": "1.0.0", 4 | "com.unity.2d.tilemap": "1.0.0", 5 | "com.unity.ads": "3.7.5", 6 | "com.unity.analytics": "3.6.11", 7 | "com.unity.collab-proxy": "1.13.5", 8 | "com.unity.ide.rider": "2.0.7", 9 | "com.unity.ide.visualstudio": "2.0.11", 10 | "com.unity.ide.vscode": "1.2.4", 11 | "com.unity.purchasing": "4.0.3", 12 | "com.unity.test-framework": "1.1.29", 13 | "com.unity.textmeshpro": "3.0.6", 14 | "com.unity.timeline": "1.4.8", 15 | "com.unity.ugui": "1.0.0", 16 | "com.unity.xr.legacyinputhelpers": "2.1.8", 17 | "com.unity.modules.ai": "1.0.0", 18 | "com.unity.modules.androidjni": "1.0.0", 19 | "com.unity.modules.animation": "1.0.0", 20 | "com.unity.modules.assetbundle": "1.0.0", 21 | "com.unity.modules.audio": "1.0.0", 22 | "com.unity.modules.cloth": "1.0.0", 23 | "com.unity.modules.director": "1.0.0", 24 | "com.unity.modules.imageconversion": "1.0.0", 25 | "com.unity.modules.imgui": "1.0.0", 26 | "com.unity.modules.jsonserialize": "1.0.0", 27 | "com.unity.modules.particlesystem": "1.0.0", 28 | "com.unity.modules.physics": "1.0.0", 29 | "com.unity.modules.physics2d": "1.0.0", 30 | "com.unity.modules.screencapture": "1.0.0", 31 | "com.unity.modules.terrain": "1.0.0", 32 | "com.unity.modules.terrainphysics": "1.0.0", 33 | "com.unity.modules.tilemap": "1.0.0", 34 | "com.unity.modules.ui": "1.0.0", 35 | "com.unity.modules.uielements": "1.0.0", 36 | "com.unity.modules.umbra": "1.0.0", 37 | "com.unity.modules.unityanalytics": "1.0.0", 38 | "com.unity.modules.unitywebrequest": "1.0.0", 39 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 40 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 41 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 42 | "com.unity.modules.unitywebrequestwww": "1.0.0", 43 | "com.unity.modules.vehicles": "1.0.0", 44 | "com.unity.modules.video": "1.0.0", 45 | "com.unity.modules.vr": "1.0.0", 46 | "com.unity.modules.wind": "1.0.0", 47 | "com.unity.modules.xr": "1.0.0" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/Editor/VirtualKeyEditor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using UnityEditor; 3 | using UnityEngine; 4 | 5 | [CanEditMultipleObjects] 6 | [CustomEditor(typeof(VirtualKey))] 7 | public class VirtualKeyEditor : Editor 8 | { 9 | public VirtualKey selected; 10 | 11 | private List mButtonLayout = new List(); 12 | 13 | private void OnEnable() 14 | { 15 | if (target == null) 16 | { 17 | return; 18 | } 19 | 20 | if (AssetDatabase.Contains(target)) 21 | { 22 | selected = null; 23 | } 24 | else 25 | { 26 | selected = (VirtualKey)target; 27 | } 28 | mButtonLayout.Add(GUILayout.Height(35)); 29 | } 30 | 31 | public override void OnInspectorGUI() 32 | { 33 | if (selected == null) 34 | { 35 | return; 36 | } 37 | 38 | GUILayout.BeginVertical(); 39 | { 40 | DrawDefaultInspector(); 41 | } 42 | GUILayout.EndVertical(); 43 | 44 | EditorGUILayout.Space(); 45 | 46 | GUILayout.BeginHorizontal(); 47 | if (GUILayout.Button("오브젝트 이름으로부터 캐릭터 값 가져오기", mButtonLayout.ToArray())) 48 | { 49 | foreach(var o in Selection.gameObjects) 50 | { 51 | o.GetComponent().GetKeyCharacterFromObjectName(); 52 | } 53 | 54 | } 55 | 56 | GUILayout.EndHorizontal(); 57 | } 58 | 59 | void OnSceneGUI() 60 | { 61 | #if false 62 | // get the chosen game object 63 | TransferableElement t = selected as TransferableElement; 64 | 65 | if (t == null /*|| t.gameObjects == null*/) 66 | return; 67 | /* 68 | // grab the center of the parent 69 | Vector3 center = t.transform.position; 70 | 71 | // iterate over game objects added to the array... 72 | for (int i = 0; i < t.GameObjects.Length; i++) 73 | { 74 | // ... and draw a line between them 75 | if (t.GameObjects[i] != null) 76 | Handles.DrawLine(center, t.GameObjects[i].transform.position); 77 | } 78 | */ 79 | 80 | Handles.DrawLine(t.transform.position, t.transform.position); 81 | #endif 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ################# 2 | ## Eclipse 3 | ################# 4 | 5 | *.pydevproject 6 | .project 7 | .metadata 8 | bin/ 9 | tmp/ 10 | *.tmp 11 | *.bak 12 | *.swp 13 | *~.nib 14 | local.properties 15 | .classpath 16 | .settings/ 17 | .loadpath 18 | 19 | # External tool builders 20 | .externalToolBuilders/ 21 | 22 | # Locally stored "Eclipse launch configurations" 23 | *.launch 24 | 25 | # CDT-specific 26 | .cproject 27 | 28 | # PDT-specific 29 | .buildpath 30 | 31 | 32 | ################# 33 | ## Visual Studio 34 | ################# 35 | 36 | ## Ignore Visual Studio temporary files, build results, and 37 | ## files generated by popular Visual Studio add-ons. 38 | 39 | # User-specific files 40 | *.suo 41 | *.user 42 | *.sln.docstates 43 | 44 | # Build results 45 | 46 | [Dd]ebug/ 47 | [Rr]elease/ 48 | x64/ 49 | build/ 50 | [Bb]in/ 51 | [Oo]bj/ 52 | 53 | # MSTest test Results 54 | [Tt]est[Rr]esult*/ 55 | [Bb]uild[Ll]og.* 56 | 57 | *_i.c 58 | *_p.c 59 | *.ilk 60 | *.meta 61 | *.obj 62 | *.pch 63 | *.pdb 64 | *.pgc 65 | *.pgd 66 | *.rsp 67 | *.sbr 68 | *.tlb 69 | *.tli 70 | *.tlh 71 | *.tmp 72 | *.tmp_proj 73 | *.log 74 | *.vspscc 75 | *.vssscc 76 | .builds 77 | *.pidb 78 | *.log 79 | *.scc 80 | 81 | # Visual C++ cache files 82 | ipch/ 83 | *.aps 84 | *.ncb 85 | *.opensdf 86 | *.sdf 87 | *.cachefile 88 | 89 | # Visual Studio profiler 90 | *.psess 91 | *.vsp 92 | *.vspx 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | 101 | # TeamCity is a build add-in 102 | _TeamCity* 103 | 104 | # DotCover is a Code Coverage Tool 105 | *.dotCover 106 | 107 | # NCrunch 108 | *.ncrunch* 109 | .*crunch*.local.xml 110 | 111 | # Installshield output folder 112 | [Ee]xpress/ 113 | 114 | # DocProject is a documentation generator add-in 115 | DocProject/buildhelp/ 116 | DocProject/Help/*.HxT 117 | DocProject/Help/*.HxC 118 | DocProject/Help/*.hhc 119 | DocProject/Help/*.hhk 120 | DocProject/Help/*.hhp 121 | DocProject/Help/Html2 122 | DocProject/Help/html 123 | 124 | # Click-Once directory 125 | publish/ 126 | 127 | # Publish Web Output 128 | *.Publish.xml 129 | *.pubxml 130 | *.publishproj 131 | 132 | # NuGet Packages Directory 133 | ## TODO: If you have NuGet Package Restore enabled, uncomment the next line 134 | #packages/ 135 | 136 | # Windows Azure Build Output 137 | csx 138 | *.build.csdef 139 | 140 | # Windows Store app package directory 141 | AppPackages/ 142 | 143 | # Others 144 | sql/ 145 | *.Cache 146 | ClientBin/ 147 | [Ss]tyle[Cc]op.* 148 | ~$* 149 | *~ 150 | *.dbmdl 151 | *.[Pp]ublish.xml 152 | *.pfx 153 | *.publishsettings 154 | 155 | # RIA/Silverlight projects 156 | Generated_Code/ 157 | 158 | # Backup & report files from converting an old project file to a newer 159 | # Visual Studio version. Backup files are not needed, because we have git ;-) 160 | _UpgradeReport_Files/ 161 | Backup*/ 162 | UpgradeLog*.XML 163 | UpgradeLog*.htm 164 | 165 | # SQL Server files 166 | App_Data/*.mdf 167 | App_Data/*.ldf 168 | 169 | ############# 170 | ## Windows detritus 171 | ############# 172 | 173 | # Windows image file caches 174 | Thumbs.db 175 | ehthumbs.db 176 | 177 | # Folder config file 178 | Desktop.ini 179 | 180 | # Recycle Bin used on file shares 181 | $RECYCLE.BIN/ 182 | 183 | # Mac crap 184 | .DS_Store 185 | 186 | 187 | ############# 188 | ## Python 189 | ############# 190 | 191 | *.py[cod] 192 | 193 | # Packages 194 | *.egg 195 | *.egg-info 196 | dist/ 197 | build/ 198 | eggs/ 199 | parts/ 200 | var/ 201 | sdist/ 202 | develop-eggs/ 203 | .installed.cfg 204 | 205 | # Installer logs 206 | pip-log.txt 207 | 208 | # Unit test / coverage reports 209 | .coverage 210 | .tox 211 | 212 | #Translations 213 | *.mo 214 | 215 | #Mr Developer 216 | .mr.developer.cfg 217 | 218 | Library/ 219 | -------------------------------------------------------------------------------- /VirtualKeyboard/VirtualKeyboard.CSharp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | 10.0.20506 7 | 2.0 8 | {E6EF7522-7202-AA04-9492-ADF45480FA7F} 9 | Library 10 | Assembly-CSharp 11 | 512 12 | {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 13 | .NETFramework 14 | v3.5 15 | Unity Subset v3.5 16 | 17 | Game:1 18 | StandaloneWindows:5 19 | 5.3.5f1 20 | 21 | 4 22 | 23 | 24 | pdbonly 25 | false 26 | Temp\UnityVS_bin\Debug\ 27 | Temp\UnityVS_obj\Debug\ 28 | prompt 29 | 4 30 | DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_3_5;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE 31 | false 32 | 33 | 34 | pdbonly 35 | false 36 | Temp\UnityVS_bin\Release\ 37 | Temp\UnityVS_obj\Release\ 38 | prompt 39 | 4 40 | TRACE;UNITY_5_3_OR_NEWER;UNITY_5_3_5;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE 41 | false 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | Library\UnityAssemblies\UnityEngine.dll 54 | 55 | 56 | Library\UnityAssemblies\UnityEngine.UI.dll 57 | 58 | 59 | Library\UnityAssemblies\UnityEngine.Networking.dll 60 | 61 | 62 | Library\UnityAssemblies\UnityEditor.dll 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/VirtualKeyboard.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections.Generic; 3 | using UnityEngine.Events; 4 | 5 | public class VirtualKeyboard : MonoBehaviour { 6 | 7 | public enum kLanguage 8 | { 9 | [InspectorName("한글")] 10 | kKorean, 11 | [InspectorName("영어")] 12 | kEnglish 13 | }; 14 | 15 | [System.Serializable] 16 | public class ReturnEvent : UnityEvent { } 17 | public delegate bool VirtualKeyboardReturnDelegate(string text); 18 | 19 | public kLanguage DefaultLanguage = kLanguage.kKorean; 20 | public VirtualKeyboardReturnDelegate OnReturnDelegate { get; set; } 21 | 22 | public ReturnEvent OnReturnEventHandler; 23 | 24 | public VirtualTextInputBox TextInputBox = null; 25 | public int MaxTextCount = 20; 26 | 27 | 28 | protected AudioSource mAudioSource; 29 | protected bool mPressShift = false; 30 | protected bool mCapsLocked = false; 31 | protected kLanguage mLanguage = kLanguage.kKorean; 32 | protected Dictionary CHARACTER_TABLE = new Dictionary 33 | { 34 | {'1', '!'}, {'2', '@'}, {'3', '#'}, {'4', '$'}, {'5', '%'},{'6', '^'}, {'7', '&'}, {'8', '*'}, {'9', '('},{'0', ')'}, 35 | { '`', '~'}, {'-', '_'}, {'=', '+'}, {'[', '{'}, {']', '}'}, {'\\', '|'}, {',', '<'}, {'.', '>'}, {'/', '?'} 36 | }; 37 | 38 | 39 | 40 | void Awake() 41 | { 42 | VirtualKey._Keybord = this; 43 | 44 | mAudioSource = GetComponent(); 45 | 46 | } 47 | // Use this for initialization 48 | void Start() { 49 | 50 | } 51 | 52 | private void OnEnable() 53 | { 54 | mLanguage = DefaultLanguage; 55 | mPressShift = false; 56 | } 57 | 58 | // Update is called once per frame 59 | void Update() { 60 | 61 | } 62 | 63 | public void Clear() 64 | { 65 | if (TextInputBox != null) 66 | { 67 | TextInputBox.Clear(); 68 | } 69 | } 70 | 71 | void OnGUI() 72 | { 73 | //Event e = Event.current; 74 | //if (e.isKey) 75 | // Debug.Log("Detected key code: " + e.keyCode); 76 | } 77 | 78 | public void PlayKeyAudio() 79 | { 80 | if (mAudioSource != null) 81 | { 82 | mAudioSource.Play(); 83 | } 84 | } 85 | 86 | public void KeyDown(VirtualKey _key) 87 | { 88 | if (_key.KeyType != VirtualKey.kType.kReturn) 89 | { 90 | PlayKeyAudio(); 91 | } 92 | 93 | 94 | if (TextInputBox != null) 95 | { 96 | switch (_key.KeyType) 97 | { 98 | case VirtualKey.kType.kShift: 99 | { 100 | mPressShift = !mPressShift; 101 | } 102 | break; 103 | case VirtualKey.kType.kCapsLock: 104 | { 105 | mCapsLocked = !mCapsLocked; 106 | } 107 | break; 108 | case VirtualKey.kType.kHangul: 109 | { 110 | if (mLanguage == kLanguage.kKorean) mLanguage = kLanguage.kEnglish; 111 | else mLanguage = kLanguage.kKorean; 112 | } 113 | break; 114 | case VirtualKey.kType.kSpace: 115 | { 116 | if (TextInputBox.TextField.Length <= MaxTextCount) 117 | { 118 | TextInputBox.KeyDown(_key); 119 | } 120 | } 121 | break; 122 | case VirtualKey.kType.kBackspace: 123 | { 124 | TextInputBox.KeyDown(_key); 125 | } 126 | break; 127 | case VirtualKey.kType.kReturn: 128 | { 129 | if(OnReturnEventHandler != null) 130 | { 131 | //OnReturnEventHandler(TextInputBox.TextField); 132 | 133 | } 134 | //do somehing 135 | //OnReturnEventHandler?.Invoke(TextInputBox.TextField); 136 | 137 | if((bool)OnReturnDelegate?.Invoke(TextInputBox.TextField)) 138 | { 139 | PlayKeyAudio(); 140 | } 141 | } 142 | break; 143 | case VirtualKey.kType.kCharacter: 144 | { 145 | if (TextInputBox.TextField.Length <= MaxTextCount) 146 | { 147 | char keyCharacter = _key.KeyCharacter; 148 | if (mPressShift) 149 | { 150 | keyCharacter = char.ToUpper(keyCharacter); 151 | mPressShift = false; 152 | } 153 | 154 | if (mLanguage == kLanguage.kKorean) 155 | { 156 | TextInputBox.KeyDownHangul(keyCharacter); 157 | } 158 | else if (mLanguage == kLanguage.kEnglish) 159 | { 160 | if(mCapsLocked) 161 | { 162 | keyCharacter = char.ToUpper(keyCharacter); 163 | } 164 | TextInputBox.KeyDown(keyCharacter); 165 | } 166 | } 167 | 168 | } 169 | break; 170 | case VirtualKey.kType.kOther: 171 | { 172 | if (TextInputBox.TextField.Length <= MaxTextCount) 173 | { 174 | char keyCharacter = _key.KeyCharacter; 175 | if (mPressShift) 176 | { 177 | if (_key.HasShiftedChar()) 178 | { 179 | keyCharacter = CHARACTER_TABLE[keyCharacter]; 180 | } 181 | mPressShift = false; 182 | } 183 | TextInputBox.KeyDown(keyCharacter); 184 | } 185 | } 186 | break; 187 | case VirtualKey.kType.kSymbol_Star: 188 | //https://www.unicodepedia.com/groups/miscellaneous-symbols/ 189 | /*WHITE STAR*/ 190 | TextInputBox.KeyDown('\u2606'); 191 | break; 192 | case VirtualKey.kType.kSymbol_Heart: 193 | /*WHITE HEART*/ 194 | TextInputBox.KeyDown('\u2661'); 195 | break; 196 | 197 | } 198 | 199 | } 200 | } 201 | 202 | public bool PressedShift 203 | { 204 | get 205 | { 206 | return mPressShift; 207 | } 208 | } 209 | 210 | public bool CapLockOn 211 | { 212 | get 213 | { 214 | return mCapsLocked; 215 | } 216 | } 217 | 218 | public kLanguage Language 219 | { 220 | get 221 | { 222 | return mLanguage; 223 | } 224 | } 225 | } 226 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/VirtualKey.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using UnityEngine.UI; 4 | using UnityEngine.EventSystems; 5 | 6 | public class VirtualKey : MonoBehaviour, IPointerDownHandler, IPointerUpHandler 7 | { 8 | 9 | static public VirtualKeyboard _Keybord = null; 10 | public enum kType 11 | { 12 | kCharacter, 13 | kOther, 14 | kReturn, 15 | kSpace, 16 | kBackspace, 17 | kShift, 18 | kTab, 19 | kCapsLock, 20 | kHangul, 21 | kSymbol_Star, 22 | kSymbol_Heart, 23 | } 24 | public float AlphaHitTestMinimumThreshold; 25 | public char KeyCharacter; 26 | public kType KeyType = kType.kCharacter; 27 | private bool mKeepPresed; 28 | 29 | 30 | public bool KeepPressed 31 | { 32 | set { mKeepPresed = value; } 33 | get { return mKeepPresed; } 34 | } 35 | 36 | // private bool mIsPressed = false; 37 | private Text mKeyText; 38 | private Text mShiftedText = null; 39 | private Text mLanguageBtnTxtKor = null; 40 | private Text mLanguageBtnTxtEng = null; 41 | 42 | 43 | static Color Color_Deactivate = new Color(0.4588236f, 0.4588236f, 0.4588236f); 44 | 45 | private void Awake() 46 | { 47 | if (AlphaHitTestMinimumThreshold > float.Epsilon) 48 | { 49 | Image image = GetComponent(); 50 | 51 | if (image != null) 52 | { 53 | image.alphaHitTestMinimumThreshold = AlphaHitTestMinimumThreshold; 54 | } 55 | } 56 | 57 | //mShiftedText = transform.Find("ShiftedText")?.GetComponent(); 58 | Transform t = transform.Find("ShiftedText"); 59 | if(t != null) 60 | { 61 | mShiftedText = t.GetComponent(); 62 | } 63 | 64 | if (KeyType == kType.kHangul) 65 | { 66 | //mLanguageBtnTxtKor = transform.Find("Kor").GetComponent(); 67 | //mLanguageBtnTxtEng = transform.Find("Eng").GetComponent(); 68 | } 69 | 70 | var txtTransform = transform.Find("Text"); 71 | 72 | if (txtTransform != null) 73 | { 74 | mKeyText = txtTransform.GetComponent(); 75 | } 76 | 77 | 78 | if (KeyType == kType.kOther) 79 | { 80 | //mShiftedText = mSubTransform.Find("ShiftedChar").GetComponent(); 81 | } 82 | } 83 | void Start () { 84 | UnityEngine.UI.Button _button = gameObject.GetComponent(); 85 | if(_button != null) 86 | { 87 | /* 88 | if(mSubTransform != null) 89 | { 90 | var targetGraphic = mSubTransform.GetComponent(); 91 | _button.targetGraphic = targetGraphic; 92 | } 93 | */ 94 | 95 | _button.onClick.AddListener(onKeyClick); 96 | } 97 | } 98 | 99 | void onKeyClick() 100 | { 101 | //VirtualKeyboard _keybord = GameObject.FindObjectOfType< VirtualKeyboard>(); 102 | if(_Keybord != null) 103 | { 104 | _Keybord.KeyDown(this); 105 | } 106 | } 107 | 108 | // Update is called once per frame 109 | void Update () { 110 | 111 | if(KeepPressed) 112 | { 113 | //do something 114 | } 115 | 116 | switch (KeyType) 117 | { 118 | case kType.kCharacter: 119 | { 120 | if (_Keybord.Language == VirtualKeyboard.kLanguage.kKorean) 121 | { 122 | if (mShiftedText != null) 123 | { 124 | if (!mShiftedText.gameObject.activeSelf) 125 | { 126 | mShiftedText.gameObject.SetActive(true); 127 | } 128 | } 129 | 130 | if (_Keybord.PressedShift) 131 | { 132 | if (mShiftedText != null) 133 | { 134 | mShiftedText.text = AutomateKR.GetHangulSound(KeyCharacter).ToString(); 135 | mKeyText.text = AutomateKR.GetHangulSound(char.ToUpper(KeyCharacter)).ToString(); 136 | } 137 | else 138 | { 139 | mKeyText.text = AutomateKR.GetHangulSound(char.ToUpper(KeyCharacter)).ToString(); 140 | } 141 | } 142 | else 143 | { 144 | if (mShiftedText != null) 145 | { 146 | mShiftedText.text = AutomateKR.GetHangulSound(char.ToUpper(KeyCharacter)).ToString(); 147 | } 148 | mKeyText.text = AutomateKR.GetHangulSound(KeyCharacter).ToString(); 149 | } 150 | } 151 | else 152 | { 153 | if (_Keybord.CapLockOn || _Keybord.PressedShift) 154 | { 155 | mKeyText.text = char.ToUpper(KeyCharacter).ToString(); 156 | } 157 | else 158 | { 159 | mKeyText.text = KeyCharacter.ToString(); 160 | } 161 | 162 | if (mShiftedText != null) 163 | { 164 | if (mShiftedText.gameObject.activeSelf) 165 | { 166 | mShiftedText.gameObject.SetActive(false); 167 | } 168 | } 169 | } 170 | } 171 | break; 172 | case kType.kOther: 173 | { 174 | if (mShiftedText != null) 175 | { 176 | if (_Keybord.PressedShift) 177 | { 178 | mKeyText.color = Color_Deactivate; 179 | mShiftedText.color = Color.black; 180 | } 181 | else 182 | { 183 | mKeyText.color = Color.black; 184 | mShiftedText.color = Color_Deactivate; 185 | } 186 | } 187 | } 188 | break; 189 | case kType.kShift: 190 | { 191 | if (_Keybord.PressedShift) 192 | { 193 | if (mKeyText != null) 194 | { 195 | mKeyText.color = Color.black; 196 | } 197 | } 198 | else 199 | { 200 | if (mKeyText != null) 201 | { 202 | mKeyText.color = Color_Deactivate; 203 | } 204 | } 205 | } 206 | break; 207 | case kType.kCapsLock: 208 | { 209 | if (_Keybord.CapLockOn) 210 | { 211 | mKeyText.color = Color.white; 212 | } 213 | else 214 | { 215 | mKeyText.color = Color_Deactivate; 216 | } 217 | } 218 | break; 219 | case kType.kHangul: 220 | { 221 | if (_Keybord.Language == VirtualKeyboard.kLanguage.kKorean) 222 | { 223 | // mLanguageBtnTxtKor.color = Color.black; 224 | // mLanguageBtnTxtEng.color = Color_Deactivate; 225 | } 226 | else 227 | { 228 | // mLanguageBtnTxtKor.color = Color_Deactivate; 229 | // mLanguageBtnTxtEng.color = Color.black; 230 | } 231 | } 232 | break; 233 | } 234 | } 235 | 236 | public bool HasShiftedChar() 237 | { 238 | return mShiftedText != null; 239 | } 240 | public void OnPointerDown(PointerEventData eventData) 241 | { 242 | //mIsPressed = true; 243 | } 244 | 245 | public void OnPointerUp(PointerEventData eventData) 246 | { 247 | //mIsPressed = false; 248 | } 249 | 250 | [ExecuteInEditMode] 251 | public void GetKeyCharacterFromObjectName() 252 | { 253 | string name = transform.name; 254 | 255 | if(name.Length > 0) 256 | { 257 | char[] array = name.ToCharArray(0, 1); 258 | 259 | KeyCharacter = array[0]; 260 | } 261 | } 262 | } 263 | -------------------------------------------------------------------------------- /VirtualKeyboard/VirtualKeyboard.CSharp.Editor.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | 10.0.20506 7 | 2.0 8 | {C6BFFC96-0AB4-9ED9-2F58-984C4CD0BE3A} 9 | Library 10 | Assembly-CSharp-Editor 11 | 512 12 | {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 13 | .NETFramework 14 | v3.5 15 | Unity Full v3.5 16 | 17 | Editor:5 18 | StandaloneWindows:5 19 | 5.3.5f1 20 | 21 | 4 22 | 23 | 24 | pdbonly 25 | false 26 | Temp\UnityVS_bin\Debug\ 27 | Temp\UnityVS_obj\Debug\ 28 | prompt 29 | 4 30 | DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_3_5;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE 31 | false 32 | 33 | 34 | pdbonly 35 | false 36 | Temp\UnityVS_bin\Release\ 37 | Temp\UnityVS_obj\Release\ 38 | prompt 39 | 4 40 | TRACE;UNITY_5_3_OR_NEWER;UNITY_5_3_5;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE 41 | false 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | Library\UnityAssemblies\UnityEngine.dll 54 | 55 | 56 | Library\UnityAssemblies\UnityEditor.dll 57 | 58 | 59 | Library\UnityAssemblies\UnityEditor.Advertisements.dll 60 | 61 | 62 | Library\UnityAssemblies\nunit.framework.dll 63 | 64 | 65 | Library\UnityAssemblies\UnityEditor.EditorTestsRunner.dll 66 | 67 | 68 | Library\UnityAssemblies\UnityEngine.UI.dll 69 | 70 | 71 | Library\UnityAssemblies\UnityEditor.UI.dll 72 | 73 | 74 | Library\UnityAssemblies\UnityEngine.Networking.dll 75 | 76 | 77 | Library\UnityAssemblies\UnityEditor.Networking.dll 78 | 79 | 80 | Library\UnityAssemblies\UnityEditor.TreeEditor.dll 81 | 82 | 83 | Library\UnityAssemblies\UnityEditor.Graphs.dll 84 | 85 | 86 | Library\UnityAssemblies\UnityEditor.Android.Extensions.dll 87 | 88 | 89 | Library\UnityAssemblies\UnityEditor.WebGL.Extensions.dll 90 | 91 | 92 | Library\UnityAssemblies\UnityEditor.WindowsStandalone.Extensions.dll 93 | 94 | 95 | Library\UnityAssemblies\SyntaxTree.VisualStudio.Unity.Bridge.dll 96 | 97 | 98 | Library\UnityAssemblies\UnityEditor.EditorTestsRunner.dll 99 | 100 | 101 | Library\UnityAssemblies\UnityEditor.Networking.dll 102 | 103 | 104 | Library\UnityAssemblies\nunit.framework.dll 105 | 106 | 107 | Library\UnityAssemblies\UnityEditor.UI.dll 108 | 109 | 110 | Library\UnityAssemblies\UnityEngine.Networking.dll 111 | 112 | 113 | Library\UnityAssemblies\UnityEditor.Advertisements.dll 114 | 115 | 116 | Library\UnityAssemblies\UnityEditor.TreeEditor.dll 117 | 118 | 119 | Library\UnityAssemblies\UnityEngine.UI.dll 120 | 121 | 122 | 123 | 124 | {E6EF7522-7202-AA04-9492-ADF45480FA7F} 125 | VirtualKeyboard.CSharp 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /VirtualKeyboard/Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.2d.sprite": { 4 | "version": "1.0.0", 5 | "depth": 0, 6 | "source": "builtin", 7 | "dependencies": {} 8 | }, 9 | "com.unity.2d.tilemap": { 10 | "version": "1.0.0", 11 | "depth": 0, 12 | "source": "builtin", 13 | "dependencies": {} 14 | }, 15 | "com.unity.ads": { 16 | "version": "3.7.5", 17 | "depth": 0, 18 | "source": "registry", 19 | "dependencies": { 20 | "com.unity.ugui": "1.0.0" 21 | }, 22 | "url": "https://packages.unity.com" 23 | }, 24 | "com.unity.analytics": { 25 | "version": "3.6.11", 26 | "depth": 0, 27 | "source": "registry", 28 | "dependencies": { 29 | "com.unity.ugui": "1.0.0" 30 | }, 31 | "url": "https://packages.unity.com" 32 | }, 33 | "com.unity.collab-proxy": { 34 | "version": "1.13.5", 35 | "depth": 0, 36 | "source": "registry", 37 | "dependencies": { 38 | "com.unity.nuget.newtonsoft-json": "2.0.0", 39 | "com.unity.services.core": "1.0.1" 40 | }, 41 | "url": "https://packages.unity.com" 42 | }, 43 | "com.unity.ext.nunit": { 44 | "version": "1.0.6", 45 | "depth": 1, 46 | "source": "registry", 47 | "dependencies": {}, 48 | "url": "https://packages.unity.com" 49 | }, 50 | "com.unity.ide.rider": { 51 | "version": "2.0.7", 52 | "depth": 0, 53 | "source": "registry", 54 | "dependencies": { 55 | "com.unity.test-framework": "1.1.1" 56 | }, 57 | "url": "https://packages.unity.com" 58 | }, 59 | "com.unity.ide.visualstudio": { 60 | "version": "2.0.11", 61 | "depth": 0, 62 | "source": "registry", 63 | "dependencies": { 64 | "com.unity.test-framework": "1.1.9" 65 | }, 66 | "url": "https://packages.unity.com" 67 | }, 68 | "com.unity.ide.vscode": { 69 | "version": "1.2.4", 70 | "depth": 0, 71 | "source": "registry", 72 | "dependencies": {}, 73 | "url": "https://packages.unity.com" 74 | }, 75 | "com.unity.nuget.newtonsoft-json": { 76 | "version": "2.0.0", 77 | "depth": 1, 78 | "source": "registry", 79 | "dependencies": {}, 80 | "url": "https://packages.unity.com" 81 | }, 82 | "com.unity.purchasing": { 83 | "version": "4.0.3", 84 | "depth": 0, 85 | "source": "registry", 86 | "dependencies": { 87 | "com.unity.ugui": "1.0.0", 88 | "com.unity.modules.unityanalytics": "1.0.0", 89 | "com.unity.modules.unitywebrequest": "1.0.0", 90 | "com.unity.modules.jsonserialize": "1.0.0", 91 | "com.unity.modules.androidjni": "1.0.0", 92 | "com.unity.services.core": "1.0.1" 93 | }, 94 | "url": "https://packages.unity.com" 95 | }, 96 | "com.unity.services.core": { 97 | "version": "1.0.1", 98 | "depth": 1, 99 | "source": "registry", 100 | "dependencies": { 101 | "com.unity.modules.unitywebrequest": "1.0.0" 102 | }, 103 | "url": "https://packages.unity.com" 104 | }, 105 | "com.unity.test-framework": { 106 | "version": "1.1.29", 107 | "depth": 0, 108 | "source": "registry", 109 | "dependencies": { 110 | "com.unity.ext.nunit": "1.0.6", 111 | "com.unity.modules.imgui": "1.0.0", 112 | "com.unity.modules.jsonserialize": "1.0.0" 113 | }, 114 | "url": "https://packages.unity.com" 115 | }, 116 | "com.unity.textmeshpro": { 117 | "version": "3.0.6", 118 | "depth": 0, 119 | "source": "registry", 120 | "dependencies": { 121 | "com.unity.ugui": "1.0.0" 122 | }, 123 | "url": "https://packages.unity.com" 124 | }, 125 | "com.unity.timeline": { 126 | "version": "1.4.8", 127 | "depth": 0, 128 | "source": "registry", 129 | "dependencies": { 130 | "com.unity.modules.director": "1.0.0", 131 | "com.unity.modules.animation": "1.0.0", 132 | "com.unity.modules.audio": "1.0.0", 133 | "com.unity.modules.particlesystem": "1.0.0" 134 | }, 135 | "url": "https://packages.unity.com" 136 | }, 137 | "com.unity.ugui": { 138 | "version": "1.0.0", 139 | "depth": 0, 140 | "source": "builtin", 141 | "dependencies": { 142 | "com.unity.modules.ui": "1.0.0", 143 | "com.unity.modules.imgui": "1.0.0" 144 | } 145 | }, 146 | "com.unity.xr.legacyinputhelpers": { 147 | "version": "2.1.8", 148 | "depth": 0, 149 | "source": "registry", 150 | "dependencies": { 151 | "com.unity.modules.vr": "1.0.0", 152 | "com.unity.modules.xr": "1.0.0" 153 | }, 154 | "url": "https://packages.unity.com" 155 | }, 156 | "com.unity.modules.ai": { 157 | "version": "1.0.0", 158 | "depth": 0, 159 | "source": "builtin", 160 | "dependencies": {} 161 | }, 162 | "com.unity.modules.androidjni": { 163 | "version": "1.0.0", 164 | "depth": 0, 165 | "source": "builtin", 166 | "dependencies": {} 167 | }, 168 | "com.unity.modules.animation": { 169 | "version": "1.0.0", 170 | "depth": 0, 171 | "source": "builtin", 172 | "dependencies": {} 173 | }, 174 | "com.unity.modules.assetbundle": { 175 | "version": "1.0.0", 176 | "depth": 0, 177 | "source": "builtin", 178 | "dependencies": {} 179 | }, 180 | "com.unity.modules.audio": { 181 | "version": "1.0.0", 182 | "depth": 0, 183 | "source": "builtin", 184 | "dependencies": {} 185 | }, 186 | "com.unity.modules.cloth": { 187 | "version": "1.0.0", 188 | "depth": 0, 189 | "source": "builtin", 190 | "dependencies": { 191 | "com.unity.modules.physics": "1.0.0" 192 | } 193 | }, 194 | "com.unity.modules.director": { 195 | "version": "1.0.0", 196 | "depth": 0, 197 | "source": "builtin", 198 | "dependencies": { 199 | "com.unity.modules.audio": "1.0.0", 200 | "com.unity.modules.animation": "1.0.0" 201 | } 202 | }, 203 | "com.unity.modules.imageconversion": { 204 | "version": "1.0.0", 205 | "depth": 0, 206 | "source": "builtin", 207 | "dependencies": {} 208 | }, 209 | "com.unity.modules.imgui": { 210 | "version": "1.0.0", 211 | "depth": 0, 212 | "source": "builtin", 213 | "dependencies": {} 214 | }, 215 | "com.unity.modules.jsonserialize": { 216 | "version": "1.0.0", 217 | "depth": 0, 218 | "source": "builtin", 219 | "dependencies": {} 220 | }, 221 | "com.unity.modules.particlesystem": { 222 | "version": "1.0.0", 223 | "depth": 0, 224 | "source": "builtin", 225 | "dependencies": {} 226 | }, 227 | "com.unity.modules.physics": { 228 | "version": "1.0.0", 229 | "depth": 0, 230 | "source": "builtin", 231 | "dependencies": {} 232 | }, 233 | "com.unity.modules.physics2d": { 234 | "version": "1.0.0", 235 | "depth": 0, 236 | "source": "builtin", 237 | "dependencies": {} 238 | }, 239 | "com.unity.modules.screencapture": { 240 | "version": "1.0.0", 241 | "depth": 0, 242 | "source": "builtin", 243 | "dependencies": { 244 | "com.unity.modules.imageconversion": "1.0.0" 245 | } 246 | }, 247 | "com.unity.modules.subsystems": { 248 | "version": "1.0.0", 249 | "depth": 1, 250 | "source": "builtin", 251 | "dependencies": { 252 | "com.unity.modules.jsonserialize": "1.0.0" 253 | } 254 | }, 255 | "com.unity.modules.terrain": { 256 | "version": "1.0.0", 257 | "depth": 0, 258 | "source": "builtin", 259 | "dependencies": {} 260 | }, 261 | "com.unity.modules.terrainphysics": { 262 | "version": "1.0.0", 263 | "depth": 0, 264 | "source": "builtin", 265 | "dependencies": { 266 | "com.unity.modules.physics": "1.0.0", 267 | "com.unity.modules.terrain": "1.0.0" 268 | } 269 | }, 270 | "com.unity.modules.tilemap": { 271 | "version": "1.0.0", 272 | "depth": 0, 273 | "source": "builtin", 274 | "dependencies": { 275 | "com.unity.modules.physics2d": "1.0.0" 276 | } 277 | }, 278 | "com.unity.modules.ui": { 279 | "version": "1.0.0", 280 | "depth": 0, 281 | "source": "builtin", 282 | "dependencies": {} 283 | }, 284 | "com.unity.modules.uielements": { 285 | "version": "1.0.0", 286 | "depth": 0, 287 | "source": "builtin", 288 | "dependencies": { 289 | "com.unity.modules.ui": "1.0.0", 290 | "com.unity.modules.imgui": "1.0.0", 291 | "com.unity.modules.jsonserialize": "1.0.0", 292 | "com.unity.modules.uielementsnative": "1.0.0" 293 | } 294 | }, 295 | "com.unity.modules.uielementsnative": { 296 | "version": "1.0.0", 297 | "depth": 1, 298 | "source": "builtin", 299 | "dependencies": { 300 | "com.unity.modules.ui": "1.0.0", 301 | "com.unity.modules.imgui": "1.0.0", 302 | "com.unity.modules.jsonserialize": "1.0.0" 303 | } 304 | }, 305 | "com.unity.modules.umbra": { 306 | "version": "1.0.0", 307 | "depth": 0, 308 | "source": "builtin", 309 | "dependencies": {} 310 | }, 311 | "com.unity.modules.unityanalytics": { 312 | "version": "1.0.0", 313 | "depth": 0, 314 | "source": "builtin", 315 | "dependencies": { 316 | "com.unity.modules.unitywebrequest": "1.0.0", 317 | "com.unity.modules.jsonserialize": "1.0.0" 318 | } 319 | }, 320 | "com.unity.modules.unitywebrequest": { 321 | "version": "1.0.0", 322 | "depth": 0, 323 | "source": "builtin", 324 | "dependencies": {} 325 | }, 326 | "com.unity.modules.unitywebrequestassetbundle": { 327 | "version": "1.0.0", 328 | "depth": 0, 329 | "source": "builtin", 330 | "dependencies": { 331 | "com.unity.modules.assetbundle": "1.0.0", 332 | "com.unity.modules.unitywebrequest": "1.0.0" 333 | } 334 | }, 335 | "com.unity.modules.unitywebrequestaudio": { 336 | "version": "1.0.0", 337 | "depth": 0, 338 | "source": "builtin", 339 | "dependencies": { 340 | "com.unity.modules.unitywebrequest": "1.0.0", 341 | "com.unity.modules.audio": "1.0.0" 342 | } 343 | }, 344 | "com.unity.modules.unitywebrequesttexture": { 345 | "version": "1.0.0", 346 | "depth": 0, 347 | "source": "builtin", 348 | "dependencies": { 349 | "com.unity.modules.unitywebrequest": "1.0.0", 350 | "com.unity.modules.imageconversion": "1.0.0" 351 | } 352 | }, 353 | "com.unity.modules.unitywebrequestwww": { 354 | "version": "1.0.0", 355 | "depth": 0, 356 | "source": "builtin", 357 | "dependencies": { 358 | "com.unity.modules.unitywebrequest": "1.0.0", 359 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 360 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 361 | "com.unity.modules.audio": "1.0.0", 362 | "com.unity.modules.assetbundle": "1.0.0", 363 | "com.unity.modules.imageconversion": "1.0.0" 364 | } 365 | }, 366 | "com.unity.modules.vehicles": { 367 | "version": "1.0.0", 368 | "depth": 0, 369 | "source": "builtin", 370 | "dependencies": { 371 | "com.unity.modules.physics": "1.0.0" 372 | } 373 | }, 374 | "com.unity.modules.video": { 375 | "version": "1.0.0", 376 | "depth": 0, 377 | "source": "builtin", 378 | "dependencies": { 379 | "com.unity.modules.audio": "1.0.0", 380 | "com.unity.modules.ui": "1.0.0", 381 | "com.unity.modules.unitywebrequest": "1.0.0" 382 | } 383 | }, 384 | "com.unity.modules.vr": { 385 | "version": "1.0.0", 386 | "depth": 0, 387 | "source": "builtin", 388 | "dependencies": { 389 | "com.unity.modules.jsonserialize": "1.0.0", 390 | "com.unity.modules.physics": "1.0.0", 391 | "com.unity.modules.xr": "1.0.0" 392 | } 393 | }, 394 | "com.unity.modules.wind": { 395 | "version": "1.0.0", 396 | "depth": 0, 397 | "source": "builtin", 398 | "dependencies": {} 399 | }, 400 | "com.unity.modules.xr": { 401 | "version": "1.0.0", 402 | "depth": 0, 403 | "source": "builtin", 404 | "dependencies": { 405 | "com.unity.modules.physics": "1.0.0", 406 | "com.unity.modules.jsonserialize": "1.0.0", 407 | "com.unity.modules.subsystems": "1.0.0" 408 | } 409 | } 410 | } 411 | } 412 | -------------------------------------------------------------------------------- /VirtualKeyboard/Assets/VirtualKeyboard/AutomateKR.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | 5 | 6 | 7 | //public class AutomateKR : MonoBehaviour { 8 | public class AutomateKR { 9 | 10 | public static int KEY_CODE_SPACE = -1; // 띄어쓰기 11 | public static int KEY_CODE_ENTER = -2; // 내려쓰기 12 | public static int KEY_CODE_BACKSPACE = -3; // 지우기 13 | 14 | public static Dictionary HANGULE_KEY_TABLE = new Dictionary 15 | { 16 | {'q', 7}, {'Q', 8}, 17 | {'w', 12}, {'W', 13}, 18 | {'e', 3}, {'E', 4}, 19 | {'r', 0}, {'R', 1}, 20 | {'t', 9}, {'T', 10}, 21 | {'y', 31}, {'Y', 31}, 22 | {'u', 25}, {'U', 25}, 23 | {'i', 21}, {'I', 21}, 24 | {'o', 20}, {'O', 22}, 25 | {'p', 24}, {'P', 26}, 26 | 27 | {'a', 6}, {'A', 6}, 28 | {'s', 2}, {'S', 2}, 29 | {'d', 11}, {'D', 11}, 30 | {'f', 5}, {'F', 5}, 31 | {'g', 18}, {'G', 18}, 32 | {'h', 27}, {'H', 27}, 33 | {'j', 23}, {'J', 23}, 34 | {'k', 19}, {'K', 19}, 35 | {'l', 39}, {'L', 39}, 36 | 37 | {'z', 15}, {'Z', 15}, 38 | {'x', 16}, {'X', 16}, 39 | {'c', 14}, {'C', 14}, 40 | {'v', 17}, {'V', 17}, 41 | {'b', 36}, {'B', 36}, 42 | {'n', 32}, {'N', 32}, 43 | {'m', 37}, {'M', 37}, 44 | }; 45 | 46 | // 초성, 중성, 종성 테이블. 47 | static string SOUND_TABLE = 48 | /* 초성 19자 0 ~ 18 */ 49 | "ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ" + 50 | /* 중성 21자 19 ~ 39 */ 51 | "ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ" + 52 | /* 종성 28자 40 ~ 67 */ 53 | " ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ"; 54 | 55 | public enum HAN_STATUS // 단어조합상태 56 | { 57 | HS_FIRST = 0, // 초성 58 | HS_FIRST_V, // 자음 + 자음 59 | HS_FIRST_C, // 모음 + 모음 60 | HS_MIDDLE_STATE, // 초성 + 모음 + 모음 61 | HS_END, // 초성 + 중성 + 종성 62 | HS_END_STATE, // 초성 + 중성 + 자음 + 자음 63 | HS_END_EXCEPTION // 초성 + 중성 + 종성(곁자음) 64 | }; 65 | 66 | public string ingWord; // 작성중 글자 67 | public string completeText; // 완성 문자열 68 | 69 | const int BASE_CODE = 0xac00; // 기초음성(가) 70 | const int LIMIT_MIN = 0xac00; // 음성범위 MIN(가) 71 | const int LIMIT_MAX = 0xd7a3; // 음성범위 MAX 72 | 73 | HAN_STATUS m_nStatus; // 단어조합상태 74 | int[] m_nPhonemez = new int[5]; // 음소[초,중,종,곁자음1,곁자음2] 75 | 76 | string m_completeWord; // 완성글자 77 | 78 | 79 | 80 | // 초성 합성 테이블 81 | int[,] MIXED_CHO_CONSON = new int[14,3] 82 | { 83 | { 0, 0,15}, // ㄱ,ㄱ,ㅋ 84 | {15, 0, 1}, // ㅋ,ㄱ,ㄲ 85 | { 1, 0, 0}, // ㄲ,ㄱ,ㄱ 86 | 87 | { 3, 3,16}, // ㄷ,ㄷ,ㅌ 88 | {16, 3, 4}, // ㅌ,ㄷ,ㄸ 89 | { 4, 3, 3}, // ㄸ,ㄷ,ㄷ 90 | 91 | { 7, 7,17}, // ㅂ,ㅂ,ㅍ 92 | {17, 7, 8}, // ㅍ,ㅂ,ㅃ 93 | { 8, 7, 7}, // ㅃ,ㅂ,ㅂ 94 | 95 | { 9, 9,10}, // ㅅ,ㅅ,ㅆ 96 | {10, 9, 9}, // ㅆ,ㅅ,ㅅ 97 | 98 | {12,12,14}, // ㅈ,ㅈ,ㅊ 99 | {14,12,13}, // ㅊ,ㅈ,ㅉ 100 | {13,12,12} // ㅉ,ㅈ,ㅈ 101 | }; 102 | 103 | // 초성,중성 모음 합성 테이블 104 | int[,] MIXED_VOWEL = new int[22,3] { 105 | {19,19,21}, // ㅏ,ㅏ,ㅑ 106 | {21,19,19}, // ㅑ,ㅏ,ㅏ 107 | 108 | {19,39,20}, // ㅏ,ㅣ,ㅐ 109 | {21,39,22}, // ㅑ,ㅣ,ㅒ 110 | 111 | {23,23,25}, // ㅓ,ㅓ,ㅕ 112 | {25,23,23}, // ㅕ,ㅓ,ㅓ 113 | 114 | {23,39,24}, // ㅓ,ㅣ,ㅔ 115 | {25,39,26}, // ㅕ,ㅣ,ㅖ 116 | 117 | {27,27,31}, // ㅗ,ㅗ,ㅛ 118 | {31,27,27}, // ㅛ,ㅗ,ㅗ 119 | 120 | {27,19,28}, // ㅗ,ㅏ,ㅘ 121 | {27,20,29}, // ㅗ,ㅐ,ㅙ 122 | {28,39,29}, // ㅘ,ㅣ,ㅙ 123 | 124 | {27,39,30}, // ㅗ,ㅣ,ㅚ 125 | 126 | {32,32,36}, // ㅜ,ㅜ,ㅠ 127 | {36,32,32}, // ㅠ,ㅜ,ㅜ 128 | 129 | {32,23,33}, // ㅜ,ㅓ,ㅝ 130 | {33,39,34}, // ㅝ,ㅣ,ㅞ 131 | 132 | {32,39,35}, // ㅜ,ㅣ,ㅟ 133 | 134 | {39,39,37}, // ㅣ,ㅣ,ㅡ 135 | {37,39,38}, // ㅡ,ㅣ,ㅢ 136 | {38,39,39} // ㅢ,ㅣ,ㅣ 137 | }; 138 | 139 | // 종성 합성 테이블 140 | int[,] MIXED_JONG_CONSON = new int[11, 3] { 141 | 142 | //{41,41,64}, // ㄱ,ㄱ,ㅋ 143 | //{64,41,42}, // ㅋ,ㄱ,ㄲ 144 | //{42,41,41}, // ㄲ,ㄱ,ㄱ 145 | 146 | {41,59,43}, // ㄱ,ㅅ,ㄳ 147 | 148 | {44,62,45}, // ㄴ,ㅈ,ㄵ 149 | {44,67,46}, // ㄴ,ㅎ,ㄶ 150 | 151 | //{47,47,65}, // ㄷ,ㄷ,ㅌ 152 | //{65,47,47}, // ㅌ,ㄷ,ㄷ 153 | 154 | {48,41,49}, // ㄹ,ㄱ,ㄺ 155 | {48,56,50}, // ㄹ,ㅁ,ㄻ 156 | 157 | {48,57,51}, // ㄹ,ㅂ,ㄼ 158 | {51,57,54}, // ㄼ,ㅂ,ㄿ 159 | 160 | {48,59,52}, // ㄹ,ㅅ,ㄽ 161 | {48,65,53}, // ㄹ,ㄷ,ㄾ 162 | {48,67,55}, // ㄹ,ㅎ,ㅀ 163 | 164 | //{57,57,66}, // ㅂ,ㅂ,ㅍ 165 | //{66,57,57}, // ㅍ,ㅂ,ㅂ 166 | 167 | {57,59,58} // ㅂ,ㅅ,ㅄ 168 | 169 | //{59,59,60}, // ㅅ,ㅅ,ㅆ 170 | //{60,59,59}, // ㅆ,ㅅ,ㅅ 171 | 172 | //{62,62,63}, // ㅈ,ㅈ,ㅊ 173 | //{63,62,62} // ㅊ,ㅈ,ㅈ 174 | }; 175 | 176 | // 종성 분해 테이블 177 | int[,] DIVIDE_JONG_CONSON = new int[13,3] { 178 | {41,41,42}, // ㄱ,ㄱ,ㄲ 179 | {41,59,43}, // ㄱ,ㅅ,ㄳ 180 | {44,62,45}, // ㄴ,ㅈ,ㄵ 181 | {44,67,46}, // ㄴ,ㅎ,ㄶ 182 | {48,41,49}, // ㄹ,ㄱ,ㄺ 183 | {48,56,50}, // ㄹ,ㅁ,ㄻ 184 | {48,57,51}, // ㄹ,ㅂ,ㄼ 185 | {48,66,54}, // ㄹ,ㅍ,ㄿ 186 | {48,59,52}, // ㄹ,ㅅ,ㄽ 187 | {48,65,53}, // ㄹ,ㅌ,ㄾ 188 | {48,67,55}, // ㄹ,ㅎ,ㅀ 189 | {57,59,58}, // ㅂ,ㅅ,ㅄ 190 | {59,59,60} // ㅅ,ㅅ,ㅆ 191 | 192 | }; 193 | 194 | int currentCode;// 포인터 대체 195 | 196 | // 버퍼 초기화 197 | public void Clear() 198 | { 199 | m_nStatus = HAN_STATUS.HS_FIRST; 200 | completeText = ""; 201 | ingWord = null; 202 | m_completeWord = null; 203 | } 204 | 205 | static public char GetHangulSound(char c) 206 | { 207 | int index = -1; 208 | if(HANGULE_KEY_TABLE.ContainsKey(c)) 209 | { 210 | index = HANGULE_KEY_TABLE[c]; 211 | } 212 | 213 | if(index < 0) 214 | { 215 | return '\0'; 216 | } 217 | 218 | return SOUND_TABLE[index]; 219 | } 220 | 221 | 222 | public HAN_STATUS GetStatus() 223 | { 224 | return m_nStatus; 225 | } 226 | 227 | public void SetKeyString(char str) 228 | { 229 | m_nStatus = HAN_STATUS.HS_FIRST; 230 | if (ingWord != null) 231 | { 232 | completeText += ingWord; 233 | completeText += str; 234 | } 235 | else 236 | completeText += str; 237 | 238 | ingWord = null; 239 | 240 | } 241 | 242 | public string SetKeyCode(char _key) 243 | { 244 | return SetKeyCode(HANGULE_KEY_TABLE[_key]); 245 | } 246 | 247 | 248 | public string SetKeyCode(int nKeyCode) 249 | { 250 | m_completeWord = null; 251 | 252 | // 특수키 입력 253 | if (nKeyCode < 0) 254 | { 255 | m_nStatus = HAN_STATUS.HS_FIRST; 256 | 257 | if (nKeyCode == KEY_CODE_SPACE) // 띄어쓰기 258 | { 259 | if (ingWord != null){ 260 | completeText += ingWord; 261 | completeText += " "; 262 | } 263 | else 264 | completeText += " "; 265 | 266 | ingWord = null; 267 | } 268 | else if (nKeyCode == KEY_CODE_ENTER) // 내려쓰기 269 | { 270 | if (ingWord != null) 271 | completeText += ingWord; 272 | 273 | completeText += "\r\n"; 274 | 275 | ingWord = null; 276 | } 277 | else if (nKeyCode == KEY_CODE_BACKSPACE) // 지우기 278 | { 279 | if (ingWord == null) // 쓰던 문자가 없을때 280 | { 281 | if (completeText != null) 282 | { 283 | if (completeText.Length > 0) 284 | { 285 | int n = completeText.LastIndexOf("\n"); 286 | if (n == -1) 287 | completeText = completeText.Remove(completeText.Length - 1); 288 | else 289 | completeText = completeText.Remove(completeText.Length - 2); 290 | } 291 | } 292 | } 293 | else 294 | { 295 | m_nStatus = DownGradeIngWordStatus(ingWord); 296 | } 297 | } 298 | 299 | return m_completeWord; 300 | } 301 | 302 | 303 | // 특수키가 아닌 경우 304 | switch (m_nStatus) 305 | { 306 | case HAN_STATUS.HS_FIRST:// 초성 307 | // 초성 308 | m_nPhonemez[0] = nKeyCode; 309 | ingWord = new string(SOUND_TABLE[m_nPhonemez[0]], 1); 310 | m_nStatus = (nKeyCode > 18) ? HAN_STATUS.HS_FIRST_C : HAN_STATUS.HS_FIRST_V; 311 | break; 312 | 313 | 314 | 315 | case HAN_STATUS.HS_FIRST_C:// 모음 + 모음 316 | // 모음 + 모음 317 | m_completeWord = new string(SOUND_TABLE[m_nPhonemez[0]], 1); 318 | m_nPhonemez[0] = nKeyCode; 319 | if (nKeyCode > 18) // 모음 320 | { 321 | 322 | } 323 | else // 자음 324 | { 325 | 326 | m_nStatus = HAN_STATUS.HS_FIRST_V; 327 | } 328 | break; 329 | 330 | case HAN_STATUS.HS_FIRST_V:// 자음 + 자음 331 | // 자음 + 자음 332 | if (nKeyCode > 18) // 모음 333 | { 334 | m_nPhonemez[1] = nKeyCode; 335 | m_nStatus = HAN_STATUS.HS_MIDDLE_STATE; 336 | } 337 | else // 자음 338 | { 339 | // if(!MixInitial(nKeyCode)) 340 | { 341 | m_completeWord = new string(SOUND_TABLE[m_nPhonemez[0]], 1); 342 | m_nPhonemez[0] = nKeyCode; 343 | m_nStatus = HAN_STATUS.HS_FIRST_V; 344 | } 345 | } 346 | break; 347 | 348 | case HAN_STATUS.HS_MIDDLE_STATE:// 초성 + 모음 + 모음 349 | // 초성 + 모음 + 모음 350 | if (nKeyCode > 18) 351 | { 352 | if (MixVowel(m_nPhonemez[1], nKeyCode) == false) // 모음+모음 합성 안될때 353 | { 354 | m_completeWord = CombineHangle(1); 355 | m_nPhonemez[0] = nKeyCode; 356 | m_nStatus = HAN_STATUS.HS_FIRST_C; 357 | } 358 | else 359 | { 360 | m_nPhonemez[1] = currentCode; // 중성 모음+모음 합성 361 | m_nStatus = HAN_STATUS.HS_MIDDLE_STATE; 362 | } 363 | } 364 | else // 자음이 들어올때 365 | { 366 | int jungCode = ToFinal(nKeyCode); 367 | 368 | if (jungCode > 0) 369 | { 370 | m_nPhonemez[2] = jungCode; 371 | m_nStatus = HAN_STATUS.HS_END_STATE; 372 | } 373 | else 374 | { 375 | m_completeWord = CombineHangle(1); 376 | m_nPhonemez[0] = nKeyCode; 377 | m_nStatus = (nKeyCode > 18) ? HAN_STATUS.HS_FIRST_C : HAN_STATUS.HS_FIRST_V; 378 | //m_nStatus = HAN_STATUS.HS_FIRST; 379 | } 380 | } 381 | break; 382 | 383 | case HAN_STATUS.HS_END:// 초성 + 중성 + 종성 384 | 385 | if (nKeyCode > 18) 386 | { 387 | m_completeWord = CombineHangle(1); 388 | m_nPhonemez[0] = nKeyCode; 389 | m_nStatus = HAN_STATUS.HS_FIRST; 390 | } 391 | else 392 | { 393 | int jungCode = ToFinal(nKeyCode); 394 | if (jungCode > 0) 395 | { 396 | m_nPhonemez[2] = jungCode; 397 | m_nStatus = HAN_STATUS.HS_END_STATE; 398 | } 399 | else 400 | { 401 | m_completeWord = CombineHangle(1); 402 | m_nPhonemez[0] = nKeyCode; 403 | m_nStatus = HAN_STATUS.HS_FIRST; 404 | } 405 | } 406 | break; 407 | 408 | case HAN_STATUS.HS_END_STATE: 409 | // 초성 + 중성 + 자음(종) + 자음(종) 410 | if (nKeyCode > 18) 411 | { 412 | m_completeWord = CombineHangle(1); 413 | 414 | m_nPhonemez[0] = ToInitial(m_nPhonemez[2]); 415 | m_nPhonemez[1] = nKeyCode; 416 | m_nStatus = HAN_STATUS.HS_MIDDLE_STATE; 417 | } 418 | else 419 | { 420 | int jungCode = ToFinal(nKeyCode); 421 | if (jungCode > 0) 422 | { 423 | m_nStatus = HAN_STATUS.HS_END_EXCEPTION; 424 | 425 | if (!MixFinal(jungCode)) // 종성 자음 합성 무시 426 | { 427 | m_completeWord = CombineHangle(2); 428 | m_nPhonemez[0] = nKeyCode; 429 | m_nStatus = HAN_STATUS.HS_FIRST_V; 430 | } 431 | } 432 | else 433 | { 434 | m_completeWord = CombineHangle(2); 435 | m_nPhonemez[0] = nKeyCode; 436 | m_nStatus = HAN_STATUS.HS_FIRST_V; 437 | } 438 | } 439 | break; 440 | 441 | case HAN_STATUS.HS_END_EXCEPTION: 442 | // 초성 + 중성 + 종성(곁자음) 443 | if (nKeyCode > 18) 444 | { 445 | DecomposeConsonant(); 446 | m_nPhonemez[1] = nKeyCode; 447 | m_nStatus = HAN_STATUS.HS_MIDDLE_STATE; 448 | } 449 | else 450 | { 451 | int jungCode = ToFinal(nKeyCode); 452 | if (jungCode > 0) 453 | { 454 | m_nStatus = HAN_STATUS.HS_END_EXCEPTION; 455 | 456 | if(!MixFinal(jungCode)) 457 | { 458 | m_completeWord = CombineHangle(2); 459 | m_nPhonemez[0] = nKeyCode; 460 | m_nStatus = HAN_STATUS.HS_FIRST_V; 461 | } 462 | } 463 | else 464 | { 465 | m_completeWord = CombineHangle(2); 466 | m_nPhonemez[0] = nKeyCode; 467 | m_nStatus = HAN_STATUS.HS_FIRST_V; 468 | } 469 | } 470 | break; 471 | } 472 | 473 | // 현재 보이는 글자상태 474 | CombineIngWord(m_nStatus); 475 | 476 | // 완성 문자열 만들기 477 | if (m_completeWord != null) 478 | completeText += m_completeWord; 479 | 480 | return m_completeWord; 481 | } 482 | 483 | 484 | // 초성으로 변환 485 | int ToInitial(int nKeyCode) 486 | { 487 | switch(nKeyCode) 488 | { 489 | case 41: return 0; // ㄱ 490 | case 42: return 1; // ㄲ 491 | case 44: return 2; // ㄴ 492 | case 47: return 3; // ㄷ 493 | case 48: return 5; // ㄹ 494 | case 56: return 6; // ㅁ 495 | case 57: return 7; // ㅂ 496 | case 59: return 9; // ㅅ 497 | case 60: return 10; // ㅆ 498 | case 61: return 11; // ㅇ 499 | case 62: return 12; // ㅈ 500 | case 63: return 14; // ㅊ 501 | case 64: return 15; // ㅋ 502 | case 65: return 16; // ㅌ 503 | case 66: return 17; // ㅍ 504 | case 67: return 18; // ㅎ 505 | } 506 | return -1; 507 | } 508 | 509 | // 종성으로 변환 510 | int ToFinal(int nKeyCode) 511 | { 512 | switch(nKeyCode) 513 | { 514 | case 0: return 41; // ㄱ 515 | case 1: return 42; // ㄲ 516 | case 2: return 44; // ㄴ 517 | case 3: return 47; // ㄷ 518 | case 5: return 48; // ㄹ 519 | case 6: return 56; // ㅁ 520 | case 7: return 57; // ㅂ 521 | case 9: return 59; // ㅅ 522 | case 10: return 60; // ㅆ 523 | case 11: return 61; // ㅇ 524 | case 12: return 62; // ㅈ 525 | case 14: return 63; // ㅊ 526 | case 15: return 64; // ㅋ 527 | case 16: return 65; // ㅌ 528 | case 17: return 66; // ㅍ 529 | case 18: return 67; // ㅎ 530 | } 531 | return -1; 532 | } 533 | 534 | // 자음분해 535 | void DecomposeConsonant() 536 | { 537 | int i = 0; 538 | if(m_nPhonemez[3] > 40 || m_nPhonemez[4] > 40) 539 | { 540 | do 541 | { 542 | if(DIVIDE_JONG_CONSON[i,2] == m_nPhonemez[2]) 543 | { 544 | m_nPhonemez[3] = DIVIDE_JONG_CONSON[i,0]; 545 | m_nPhonemez[4] = DIVIDE_JONG_CONSON[i,1]; 546 | 547 | m_completeWord = CombineHangle(3); 548 | m_nPhonemez[0] = ToInitial(m_nPhonemez[4]); 549 | return; 550 | } 551 | } 552 | while(++i< 13); 553 | } 554 | 555 | m_completeWord = CombineHangle(1); 556 | m_nPhonemez[0] = ToInitial(m_nPhonemez[2]); 557 | } 558 | 559 | // 초성합성 560 | bool MixInitial(int nKeyCode) 561 | { 562 | if(nKeyCode >= 19) 563 | return false; 564 | 565 | int i = 0; 566 | do 567 | { 568 | if(MIXED_CHO_CONSON[i,0] == m_nPhonemez[0] && MIXED_CHO_CONSON[i,1] == nKeyCode) 569 | { 570 | m_nPhonemez[0] = MIXED_CHO_CONSON[i,2]; 571 | return true; 572 | } 573 | } 574 | while(++i < 14); 575 | 576 | return false; 577 | } 578 | 579 | // 종성합성 580 | bool MixFinal(int nKeyCode) 581 | { 582 | if(nKeyCode <= 40) return false; 583 | 584 | int i = 0; 585 | do 586 | { 587 | if(MIXED_JONG_CONSON[i,0] == m_nPhonemez[2] && MIXED_JONG_CONSON[i,1] == nKeyCode) 588 | { 589 | m_nPhonemez[3] = m_nPhonemez[2]; 590 | m_nPhonemez[4] = nKeyCode; 591 | m_nPhonemez[2] = MIXED_JONG_CONSON[i,2]; 592 | 593 | return true; 594 | } 595 | } 596 | while(++i < 11); 597 | 598 | return false; 599 | } 600 | 601 | // 모음합성 602 | bool MixVowel(int currentC, int inputCode) 603 | { 604 | currentCode = currentC; 605 | int i = 0; 606 | do 607 | { 608 | if(MIXED_VOWEL[i,0] == currentCode && MIXED_VOWEL[i,1] == inputCode) 609 | { 610 | // print(MIXED_VOWEL[i, 2]); 611 | currentCode = MIXED_VOWEL[i,2]; 612 | return true; 613 | } 614 | } 615 | while(++i< 22); 616 | 617 | return false; 618 | } 619 | 620 | 621 | // 한글조합 Check 622 | string CombineHangle(int cho, int jung, int jong) 623 | { 624 | // 초성 * 21 * 28 + (중성 - 19) * 28 + (종성 - 40) + BASE_CODE; 625 | return new string(System.Convert.ToChar(BASE_CODE - 572 + jong + cho * 588 + jung * 28), 1); 626 | } 627 | 628 | string CombineHangle(int status) 629 | { 630 | switch(status) 631 | { 632 | //초성 + 중성 633 | case 1: 634 | return CombineHangle(m_nPhonemez[0], m_nPhonemez[1], 40); 635 | 636 | //초성 + 중성 + 종성 637 | case 2: 638 | return CombineHangle(m_nPhonemez[0], m_nPhonemez[1], m_nPhonemez[2]); 639 | 640 | //초성 + 중성 + 곁자음01 641 | case 3: 642 | return CombineHangle(m_nPhonemez[0], m_nPhonemez[1], m_nPhonemez[3]); 643 | } 644 | return ""; 645 | } 646 | 647 | void CombineIngWord(HAN_STATUS status) 648 | { 649 | switch(m_nStatus) 650 | { 651 | case HAN_STATUS.HS_FIRST: 652 | case HAN_STATUS.HS_FIRST_V: 653 | case HAN_STATUS.HS_FIRST_C: 654 | ingWord = new string(SOUND_TABLE[m_nPhonemez[0]], 1); 655 | break; 656 | 657 | case HAN_STATUS.HS_MIDDLE_STATE: 658 | case HAN_STATUS.HS_END: 659 | ingWord = CombineHangle(1); 660 | break; 661 | 662 | case HAN_STATUS.HS_END_STATE: 663 | case HAN_STATUS.HS_END_EXCEPTION: 664 | ingWord = CombineHangle(2); 665 | break; 666 | } 667 | } 668 | 669 | // 작성중인 한글이 있을경우 삭제 670 | HAN_STATUS DownGradeIngWordStatus(string word) 671 | { 672 | // print("target : " + word + " : "+ word.Length); 673 | //print("Convert : " + ); 674 | 675 | 676 | int iWord = System.Convert.ToInt32(char.Parse(word)); 677 | 678 | //초성만 있는 경우 679 | if (iWord < LIMIT_MIN || iWord > LIMIT_MAX) 680 | { 681 | ingWord = null; 682 | return HAN_STATUS.HS_FIRST; 683 | } 684 | 685 | // 문자코드 체계 686 | // iWord = firstWord * (21*28) 687 | // + middleWord * 28 688 | // + lastWord * 27 689 | // + BASE_CODE; 690 | // 691 | 692 | int totalWord = iWord - BASE_CODE; 693 | int iFirstWord = totalWord / 28 / 21; //초성 694 | int iMiddleWord = totalWord / 28 % 21; //중성 695 | int iLastWord = totalWord % 28; //종성 696 | 697 | m_nPhonemez[0] = iFirstWord; //초성저장 698 | 699 | if (iLastWord == 0) //종성이 없는 경우 700 | { 701 | ingWord = new string(SOUND_TABLE[m_nPhonemez[0]], 1); 702 | return HAN_STATUS.HS_FIRST_V; 703 | } 704 | 705 | m_nPhonemez[1] = iMiddleWord + 19; //중성저장 706 | 707 | iLastWord += 40; 708 | 709 | for (int i = 0; i < 13; i++) 710 | { 711 | 712 | if (iLastWord == DIVIDE_JONG_CONSON[i,2]) 713 | { 714 | ingWord = CombineHangle(3); 715 | m_nPhonemez[2] = DIVIDE_JONG_CONSON[i,0]; // 종성저장 716 | return HAN_STATUS.HS_END_EXCEPTION; 717 | } 718 | } 719 | ingWord = CombineHangle(1); 720 | 721 | return HAN_STATUS.HS_MIDDLE_STATE; 722 | } 723 | } -------------------------------------------------------------------------------- /VirtualKeyboard/Assembly-CSharp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | latest 5 | 6 | 7 | Debug 8 | AnyCPU 9 | 10.0.20506 10 | 2.0 11 | 12 | {2B33D4B7-768F-B021-459E-EAA18BB8F7BD} 13 | Library 14 | Properties 15 | Assembly-CSharp 16 | v4.7.1 17 | 512 18 | . 19 | 20 | 21 | true 22 | full 23 | false 24 | Temp\Bin\Debug\ 25 | UNITY_2020_3_21;UNITY_2020_3;UNITY_2020;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2017_4_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_2_OR_NEWER;UNITY_2018_3_OR_NEWER;UNITY_2018_4_OR_NEWER;UNITY_2019_1_OR_NEWER;UNITY_2019_2_OR_NEWER;UNITY_2019_3_OR_NEWER;UNITY_2019_4_OR_NEWER;UNITY_2020_1_OR_NEWER;UNITY_2020_2_OR_NEWER;UNITY_2020_3_OR_NEWER;PLATFORM_ARCH_64;UNITY_64;UNITY_INCLUDE_TESTS;USE_SEARCH_ENGINE_API;SCENE_TEMPLATE_MODULE;ENABLE_AR;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_EVENT_QUEUE;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_TEXTURE_STREAMING;ENABLE_VIRTUALTEXTURING;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_UNITYWEBREQUEST;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;ENABLE_MANAGED_ANIMATION_JOBS;ENABLE_MANAGED_AUDIO_JOBS;INCLUDE_DYNAMIC_GI;ENABLE_MONO_BDWGC;ENABLE_SCRIPTING_GC_WBARRIERS;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_VIDEO;PLATFORM_STANDALONE;PLATFORM_STANDALONE_WIN;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_CLUSTER_SYNC;ENABLE_CLUSTERINPUT;PLATFORM_UPDATES_TIME_OUTSIDE_OF_PLAYER_LOOP;GFXDEVICE_WAITFOREVENT_MESSAGEPUMP;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_STANDARD_2_0;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;ENABLE_BURST_AOT;UNITY_TEAM_LICENSE;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_DIRECTOR;ENABLE_LOCALIZATION;ENABLE_SPRITES;ENABLE_TERRAIN;ENABLE_TILEMAP;ENABLE_TIMELINE;ENABLE_LEGACY_INPUT_MANAGER;CSHARP_7_OR_LATER;CSHARP_7_3_OR_NEWER 26 | prompt 27 | 4 28 | 0169 29 | False 30 | 31 | 32 | pdbonly 33 | true 34 | Temp\bin\Release\ 35 | prompt 36 | 4 37 | 0169 38 | False 39 | 40 | 41 | true 42 | true 43 | false 44 | false 45 | false 46 | 47 | 48 | {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 49 | Package 50 | 2.0.11 51 | Game:1 52 | StandaloneWindows64:19 53 | 2020.3.21f1 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.dll 64 | 65 | 66 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.AIModule.dll 67 | 68 | 69 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.ARModule.dll 70 | 71 | 72 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.AccessibilityModule.dll 73 | 74 | 75 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.AndroidJNIModule.dll 76 | 77 | 78 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.AnimationModule.dll 79 | 80 | 81 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.AssetBundleModule.dll 82 | 83 | 84 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.AudioModule.dll 85 | 86 | 87 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClothModule.dll 88 | 89 | 90 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterInputModule.dll 91 | 92 | 93 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.ClusterRendererModule.dll 94 | 95 | 96 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll 97 | 98 | 99 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.CrashReportingModule.dll 100 | 101 | 102 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.DSPGraphModule.dll 103 | 104 | 105 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.DirectorModule.dll 106 | 107 | 108 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.GIModule.dll 109 | 110 | 111 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.GameCenterModule.dll 112 | 113 | 114 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.GridModule.dll 115 | 116 | 117 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.HotReloadModule.dll 118 | 119 | 120 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.IMGUIModule.dll 121 | 122 | 123 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.ImageConversionModule.dll 124 | 125 | 126 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputModule.dll 127 | 128 | 129 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.InputLegacyModule.dll 130 | 131 | 132 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.JSONSerializeModule.dll 133 | 134 | 135 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.LocalizationModule.dll 136 | 137 | 138 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.ParticleSystemModule.dll 139 | 140 | 141 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.PerformanceReportingModule.dll 142 | 143 | 144 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.PhysicsModule.dll 145 | 146 | 147 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.Physics2DModule.dll 148 | 149 | 150 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.ProfilerModule.dll 151 | 152 | 153 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll 154 | 155 | 156 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.ScreenCaptureModule.dll 157 | 158 | 159 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.SharedInternalsModule.dll 160 | 161 | 162 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteMaskModule.dll 163 | 164 | 165 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.SpriteShapeModule.dll 166 | 167 | 168 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.StreamingModule.dll 169 | 170 | 171 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubstanceModule.dll 172 | 173 | 174 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.SubsystemsModule.dll 175 | 176 | 177 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.TLSModule.dll 178 | 179 | 180 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainModule.dll 181 | 182 | 183 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.TerrainPhysicsModule.dll 184 | 185 | 186 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextCoreModule.dll 187 | 188 | 189 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.TextRenderingModule.dll 190 | 191 | 192 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.TilemapModule.dll 193 | 194 | 195 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIModule.dll 196 | 197 | 198 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsModule.dll 199 | 200 | 201 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UIElementsNativeModule.dll 202 | 203 | 204 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UNETModule.dll 205 | 206 | 207 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UmbraModule.dll 208 | 209 | 210 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityAnalyticsModule.dll 211 | 212 | 213 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityConnectModule.dll 214 | 215 | 216 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityCurlModule.dll 217 | 218 | 219 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityTestProtocolModule.dll 220 | 221 | 222 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestModule.dll 223 | 224 | 225 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAssetBundleModule.dll 226 | 227 | 228 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestAudioModule.dll 229 | 230 | 231 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestTextureModule.dll 232 | 233 | 234 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.UnityWebRequestWWWModule.dll 235 | 236 | 237 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.VFXModule.dll 238 | 239 | 240 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.VRModule.dll 241 | 242 | 243 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.VehiclesModule.dll 244 | 245 | 246 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.VideoModule.dll 247 | 248 | 249 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.VirtualTexturingModule.dll 250 | 251 | 252 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.WindModule.dll 253 | 254 | 255 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEngine.XRModule.dll 256 | 257 | 258 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEditor.dll 259 | 260 | 261 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEditor.CoreModule.dll 262 | 263 | 264 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEditor.GraphViewModule.dll 265 | 266 | 267 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEditor.PackageManagerUIModule.dll 268 | 269 | 270 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEditor.SceneTemplateModule.dll 271 | 272 | 273 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIElementsModule.dll 274 | 275 | 276 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIElementsSamplesModule.dll 277 | 278 | 279 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEditor.UIServiceModule.dll 280 | 281 | 282 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\Managed\UnityEngine\UnityEditor.UnityConnectModule.dll 283 | 284 | 285 | Library\PackageCache\com.unity.nuget.newtonsoft-json@2.0.0\Runtime\Newtonsoft.Json.dll 286 | 287 | 288 | Library\PackageCache\com.unity.analytics@3.6.11\AnalyticsStandardEvents\Unity.Analytics.StandardEvents.dll 289 | 290 | 291 | Library\PackageCache\com.unity.analytics@3.6.11\Unity.Analytics.Editor.dll 292 | 293 | 294 | Library\PackageCache\com.unity.analytics@3.6.11\Unity.Analytics.Tracker.dll 295 | 296 | 297 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\ref\2.0.0\netstandard.dll 298 | 299 | 300 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\Microsoft.Win32.Primitives.dll 301 | 302 | 303 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.AppContext.dll 304 | 305 | 306 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Collections.Concurrent.dll 307 | 308 | 309 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Collections.dll 310 | 311 | 312 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Collections.NonGeneric.dll 313 | 314 | 315 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Collections.Specialized.dll 316 | 317 | 318 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ComponentModel.dll 319 | 320 | 321 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ComponentModel.EventBasedAsync.dll 322 | 323 | 324 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ComponentModel.Primitives.dll 325 | 326 | 327 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ComponentModel.TypeConverter.dll 328 | 329 | 330 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Console.dll 331 | 332 | 333 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Data.Common.dll 334 | 335 | 336 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.Contracts.dll 337 | 338 | 339 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.Debug.dll 340 | 341 | 342 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.FileVersionInfo.dll 343 | 344 | 345 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.Process.dll 346 | 347 | 348 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.StackTrace.dll 349 | 350 | 351 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.TextWriterTraceListener.dll 352 | 353 | 354 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.Tools.dll 355 | 356 | 357 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.TraceSource.dll 358 | 359 | 360 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Diagnostics.Tracing.dll 361 | 362 | 363 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Drawing.Primitives.dll 364 | 365 | 366 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Dynamic.Runtime.dll 367 | 368 | 369 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Globalization.Calendars.dll 370 | 371 | 372 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Globalization.dll 373 | 374 | 375 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Globalization.Extensions.dll 376 | 377 | 378 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.Compression.dll 379 | 380 | 381 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.Compression.ZipFile.dll 382 | 383 | 384 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.dll 385 | 386 | 387 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.FileSystem.dll 388 | 389 | 390 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.FileSystem.DriveInfo.dll 391 | 392 | 393 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.FileSystem.Primitives.dll 394 | 395 | 396 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.FileSystem.Watcher.dll 397 | 398 | 399 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.IsolatedStorage.dll 400 | 401 | 402 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.MemoryMappedFiles.dll 403 | 404 | 405 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.Pipes.dll 406 | 407 | 408 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.IO.UnmanagedMemoryStream.dll 409 | 410 | 411 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Linq.dll 412 | 413 | 414 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Linq.Expressions.dll 415 | 416 | 417 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Linq.Parallel.dll 418 | 419 | 420 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Linq.Queryable.dll 421 | 422 | 423 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Http.dll 424 | 425 | 426 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.NameResolution.dll 427 | 428 | 429 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.NetworkInformation.dll 430 | 431 | 432 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Ping.dll 433 | 434 | 435 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Primitives.dll 436 | 437 | 438 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Requests.dll 439 | 440 | 441 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Security.dll 442 | 443 | 444 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.Sockets.dll 445 | 446 | 447 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.WebHeaderCollection.dll 448 | 449 | 450 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.WebSockets.Client.dll 451 | 452 | 453 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Net.WebSockets.dll 454 | 455 | 456 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ObjectModel.dll 457 | 458 | 459 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Reflection.dll 460 | 461 | 462 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Reflection.Extensions.dll 463 | 464 | 465 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Reflection.Primitives.dll 466 | 467 | 468 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Resources.Reader.dll 469 | 470 | 471 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Resources.ResourceManager.dll 472 | 473 | 474 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Resources.Writer.dll 475 | 476 | 477 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.CompilerServices.VisualC.dll 478 | 479 | 480 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.dll 481 | 482 | 483 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Extensions.dll 484 | 485 | 486 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Handles.dll 487 | 488 | 489 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.InteropServices.dll 490 | 491 | 492 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.InteropServices.RuntimeInformation.dll 493 | 494 | 495 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Numerics.dll 496 | 497 | 498 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Serialization.Formatters.dll 499 | 500 | 501 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Serialization.Json.dll 502 | 503 | 504 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Serialization.Primitives.dll 505 | 506 | 507 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Runtime.Serialization.Xml.dll 508 | 509 | 510 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Claims.dll 511 | 512 | 513 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Cryptography.Algorithms.dll 514 | 515 | 516 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Cryptography.Csp.dll 517 | 518 | 519 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Cryptography.Encoding.dll 520 | 521 | 522 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Cryptography.Primitives.dll 523 | 524 | 525 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Cryptography.X509Certificates.dll 526 | 527 | 528 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.Principal.dll 529 | 530 | 531 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Security.SecureString.dll 532 | 533 | 534 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Text.Encoding.dll 535 | 536 | 537 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Text.Encoding.Extensions.dll 538 | 539 | 540 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Text.RegularExpressions.dll 541 | 542 | 543 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.dll 544 | 545 | 546 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.Overlapped.dll 547 | 548 | 549 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.Tasks.dll 550 | 551 | 552 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.Tasks.Parallel.dll 553 | 554 | 555 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.Thread.dll 556 | 557 | 558 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.ThreadPool.dll 559 | 560 | 561 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Threading.Timer.dll 562 | 563 | 564 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.ValueTuple.dll 565 | 566 | 567 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.ReaderWriter.dll 568 | 569 | 570 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.XDocument.dll 571 | 572 | 573 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.XmlDocument.dll 574 | 575 | 576 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.XmlSerializer.dll 577 | 578 | 579 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.XPath.dll 580 | 581 | 582 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netstandard\System.Xml.XPath.XDocument.dll 583 | 584 | 585 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\Extensions\2.0.0\System.Numerics.Vectors.dll 586 | 587 | 588 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\Extensions\2.0.0\System.Runtime.InteropServices.WindowsRuntime.dll 589 | 590 | 591 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\mscorlib.dll 592 | 593 | 594 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.ComponentModel.Composition.dll 595 | 596 | 597 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Core.dll 598 | 599 | 600 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Data.dll 601 | 602 | 603 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.dll 604 | 605 | 606 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Drawing.dll 607 | 608 | 609 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.IO.Compression.FileSystem.dll 610 | 611 | 612 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Net.dll 613 | 614 | 615 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Numerics.dll 616 | 617 | 618 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Runtime.Serialization.dll 619 | 620 | 621 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.ServiceModel.Web.dll 622 | 623 | 624 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Transactions.dll 625 | 626 | 627 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Web.dll 628 | 629 | 630 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Windows.dll 631 | 632 | 633 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Xml.dll 634 | 635 | 636 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Xml.Linq.dll 637 | 638 | 639 | C:\Program Files\Unity\Hub\Editor\2020.3.21f1\Editor\Data\NetStandard\compat\2.0.0\shims\netfx\System.Xml.Serialization.dll 640 | 641 | 642 | Library\ScriptAssemblies\Purchasing.Common.dll 643 | 644 | 645 | Library\ScriptAssemblies\Unity.VSCode.Editor.dll 646 | 647 | 648 | Library\ScriptAssemblies\Unity.2D.Tilemap.Editor.dll 649 | 650 | 651 | Library\ScriptAssemblies\UnityEngine.Purchasing.dll 652 | 653 | 654 | Library\ScriptAssemblies\Unity.TextMeshPro.Editor.dll 655 | 656 | 657 | Library\ScriptAssemblies\Unity.VisualStudio.Editor.dll 658 | 659 | 660 | Library\ScriptAssemblies\Unity.Timeline.dll 661 | 662 | 663 | Library\ScriptAssemblies\Unity.TextMeshPro.dll 664 | 665 | 666 | Library\ScriptAssemblies\UnityEngine.Purchasing.SecurityStub.dll 667 | 668 | 669 | Library\ScriptAssemblies\UnityEngine.Advertisements.dll 670 | 671 | 672 | Library\ScriptAssemblies\Unity.2D.Sprite.Editor.dll 673 | 674 | 675 | Library\ScriptAssemblies\UnityEditor.UI.dll 676 | 677 | 678 | Library\ScriptAssemblies\Unity.PlasticSCM.Editor.dll 679 | 680 | 681 | Library\ScriptAssemblies\Unity.Rider.Editor.dll 682 | 683 | 684 | Library\ScriptAssemblies\Analytics.dll 685 | 686 | 687 | Library\ScriptAssemblies\UnityEngine.SpatialTracking.dll 688 | 689 | 690 | Library\ScriptAssemblies\UnityEngine.UI.dll 691 | 692 | 693 | Library\ScriptAssemblies\Unity.Analytics.DataPrivacy.dll 694 | 695 | 696 | Library\ScriptAssemblies\UnityEngine.Purchasing.SecurityCore.dll 697 | 698 | 699 | Library\ScriptAssemblies\UnityEngine.Purchasing.Codeless.dll 700 | 701 | 702 | Library\ScriptAssemblies\UnityEngine.XR.LegacyInputHelpers.dll 703 | 704 | 705 | Library\ScriptAssemblies\Unity.Timeline.Editor.dll 706 | 707 | 708 | Library\ScriptAssemblies\UnityEngine.Purchasing.Stores.dll 709 | 710 | 711 | Library\ScriptAssemblies\UnityEditor.XR.LegacyInputHelpers.dll 712 | 713 | 714 | Library\ScriptAssemblies\UnityEngine.Monetization.dll 715 | 716 | 717 | Library\ScriptAssemblies\UnityEditor.Purchasing.dll 718 | 719 | 720 | Library\ScriptAssemblies\UnityEditor.SpatialTracking.dll 721 | 722 | 723 | Library\ScriptAssemblies\UnityEngine.Advertisements.Editor.dll 724 | 725 | 726 | 727 | 728 | 729 | 730 | 737 | 738 | --------------------------------------------------------------------------------