검색창 개발-디자인 수정 필요, 언어변환 버튼 개발
This commit is contained in:
8
Assets/Resources/Prefabs/UI/Buttons.meta
Normal file
8
Assets/Resources/Prefabs/UI/Buttons.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ad60b1404105d44a992ea2ab8e3f35f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
1210
Assets/Resources/Prefabs/UI/Buttons/UILanguageButton.prefab
Normal file
1210
Assets/Resources/Prefabs/UI/Buttons/UILanguageButton.prefab
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 12db500810bde2f42b6cc1aa17543fb5
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
811
Assets/Resources/Prefabs/UI/Buttons/UISearchInput.prefab
Normal file
811
Assets/Resources/Prefabs/UI/Buttons/UISearchInput.prefab
Normal file
@@ -0,0 +1,811 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1928778550412568362
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3549070521602479230}
|
||||
- component: {fileID: 4287760844710852833}
|
||||
- component: {fileID: 607742823154810497}
|
||||
- component: {fileID: 1278875195337434962}
|
||||
- component: {fileID: 4095973766915737330}
|
||||
m_Layer: 5
|
||||
m_Name: UISearchInput
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3549070521602479230
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1928778550412568362}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4502938537745225681}
|
||||
- {fileID: 1890860600301155531}
|
||||
- {fileID: 5272697919907718161}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 160, y: 36}
|
||||
m_Pivot: {x: 0, y: 0.5}
|
||||
--- !u!222 &4287760844710852833
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1928778550412568362}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &607742823154810497
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1928778550412568362}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 836d6527858b7494297e122eb69601fd, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &1278875195337434962
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1928778550412568362}
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 694507160, guid: fe40b90c67f2f75419562a6fe1003d5b, type: 3}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &4095973766915737330
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1928778550412568362}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 1278875195337434962}
|
||||
m_TextViewport: {fileID: 1890860600301155531}
|
||||
m_TextComponent: {fileID: 7695301836477375805}
|
||||
m_Placeholder: {fileID: 5154488720832019090}
|
||||
m_VerticalScrollbar: {fileID: 0}
|
||||
m_VerticalScrollbarEventHandler: {fileID: 0}
|
||||
m_LayoutGroup: {fileID: 0}
|
||||
m_ScrollSensitivity: 1
|
||||
m_ContentType: 0
|
||||
m_InputType: 0
|
||||
m_AsteriskChar: 42
|
||||
m_KeyboardType: 0
|
||||
m_LineType: 0
|
||||
m_HideMobileInput: 0
|
||||
m_HideSoftKeyboard: 0
|
||||
m_CharacterValidation: 0
|
||||
m_RegexValue:
|
||||
m_GlobalPointSize: 14
|
||||
m_CharacterLimit: 0
|
||||
m_OnEndEdit:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnSubmit:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnSelect:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnDeselect:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnTextSelection:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnEndTextSelection:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_OnTouchScreenKeyboardStatusChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
||||
m_CustomCaretColor: 0
|
||||
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
|
||||
m_Text:
|
||||
m_CaretBlinkRate: 0.85
|
||||
m_CaretWidth: 1
|
||||
m_ReadOnly: 0
|
||||
m_RichText: 1
|
||||
m_GlobalFontAsset: {fileID: 0}
|
||||
m_OnFocusSelectAll: 1
|
||||
m_ResetOnDeActivation: 1
|
||||
m_KeepTextSelectionVisible: 0
|
||||
m_RestoreOriginalTextOnEscape: 1
|
||||
m_isRichTextEditingAllowed: 0
|
||||
m_LineLimit: 0
|
||||
isAlert: 0
|
||||
m_InputValidator: {fileID: 0}
|
||||
m_ShouldActivateOnSelect: 1
|
||||
--- !u!1 &3438542737618699616
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7844129296646170794}
|
||||
- component: {fileID: 936426748953526809}
|
||||
- component: {fileID: 7695301836477375805}
|
||||
m_Layer: 5
|
||||
m_Name: Text
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7844129296646170794
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3438542737618699616}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1890860600301155531}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &936426748953526809
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3438542737618699616}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7695301836477375805
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3438542737618699616}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: "\u200B"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 08cebd004d97ca742ac80400f37f4eed, type: 2}
|
||||
m_sharedMaterial: {fileID: 4860575619018115804, guid: 08cebd004d97ca742ac80400f37f4eed, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 12
|
||||
m_fontSizeBase: 12
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 3
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 1
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &3447948940841377002
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8052970446522842747}
|
||||
- component: {fileID: 7541747247650234515}
|
||||
- component: {fileID: 8739521748137565572}
|
||||
m_Layer: 5
|
||||
m_Name: Line
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &8052970446522842747
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3447948940841377002}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1890860600301155531}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 10, y: -23}
|
||||
m_SizeDelta: {x: 40, y: 1}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7541747247650234515
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3447948940841377002}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8739521748137565572
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3447948940841377002}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.9622642, g: 0.9622642, b: 0.9622642, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &4003586409901263487
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6560483782444665719}
|
||||
- component: {fileID: 2048538601592092616}
|
||||
- component: {fileID: 5154488720832019090}
|
||||
- component: {fileID: 696716118280799389}
|
||||
m_Layer: 5
|
||||
m_Name: Placeholder
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6560483782444665719
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4003586409901263487}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1890860600301155531}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2048538601592092616
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4003586409901263487}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5154488720832019090
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4003586409901263487}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_text: "\uC704\uCE58 \uAC80\uC0C9"
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 08cebd004d97ca742ac80400f37f4eed, type: 2}
|
||||
m_sharedMaterial: {fileID: 4860575619018115804, guid: 08cebd004d97ca742ac80400f37f4eed, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 3741319167
|
||||
m_fontColor: {r: 1, g: 1, b: 1, a: 0.87058824}
|
||||
m_enableVertexGradient: 0
|
||||
m_colorMode: 3
|
||||
m_fontColorGradient:
|
||||
topLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
topRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
|
||||
bottomRight: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_fontColorGradientPreset: {fileID: 0}
|
||||
m_spriteAsset: {fileID: 0}
|
||||
m_tintAllSprites: 0
|
||||
m_StyleSheet: {fileID: 0}
|
||||
m_TextStyleHashCode: -1183493901
|
||||
m_overrideHtmlColors: 0
|
||||
m_faceColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
m_fontSize: 12
|
||||
m_fontSizeBase: 12
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 1
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 0
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 1
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 1
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!114 &696716118280799389
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4003586409901263487}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreLayout: 1
|
||||
m_MinWidth: -1
|
||||
m_MinHeight: -1
|
||||
m_PreferredWidth: -1
|
||||
m_PreferredHeight: -1
|
||||
m_FlexibleWidth: -1
|
||||
m_FlexibleHeight: -1
|
||||
m_LayoutPriority: 1
|
||||
--- !u!1 &6023503677689822770
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5272697919907718161}
|
||||
- component: {fileID: 8757900534283014278}
|
||||
- component: {fileID: 3930243373676917347}
|
||||
- component: {fileID: 3154601933036176681}
|
||||
m_Layer: 5
|
||||
m_Name: SearchButton
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5272697919907718161
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6023503677689822770}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3549070521602479230}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: -6, y: 16}
|
||||
m_SizeDelta: {x: 28, y: 28}
|
||||
m_Pivot: {x: 1, y: 1}
|
||||
--- !u!222 &8757900534283014278
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6023503677689822770}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3930243373676917347
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6023503677689822770}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastPadding: {x: -120, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: b96446804d2e29645827d31952f863cb, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &3154601933036176681
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6023503677689822770}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_WrapAround: 0
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 1
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 3930243373676917347}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &6814560974940120229
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1890860600301155531}
|
||||
- component: {fileID: 513732089905394585}
|
||||
m_Layer: 5
|
||||
m_Name: Text Area
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1890860600301155531
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6814560974940120229}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 8052970446522842747}
|
||||
- {fileID: 6560483782444665719}
|
||||
- {fileID: 7844129296646170794}
|
||||
m_Father: {fileID: 3549070521602479230}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 22}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &513732089905394585
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6814560974940120229}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Padding: {x: -8, y: -5, z: -8, w: -5}
|
||||
m_Softness: {x: 0, y: 0}
|
||||
--- !u!1 &8350341070115958246
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4502938537745225681}
|
||||
- component: {fileID: 8272108380190167004}
|
||||
- component: {fileID: 6620080535182918297}
|
||||
m_Layer: 5
|
||||
m_Name: Line
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4502938537745225681
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350341070115958246}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 3549070521602479230}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 10, y: -26}
|
||||
m_SizeDelta: {x: -20, y: 1}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8272108380190167004
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350341070115958246}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6620080535182918297
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8350341070115958246}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.9622642, g: 0.9622642, b: 0.9622642, a: 0.46666667}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed442d88645f41448a9abe8128c26bbb
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
Assets/Resources/Prefabs/UI/Buttons/assets.meta
Normal file
8
Assets/Resources/Prefabs/UI/Buttons/assets.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8c2607ee6393233469d54afd9b237601
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Resources/Prefabs/UI/Buttons/assets/image_down_arrow.png
Normal file
BIN
Assets/Resources/Prefabs/UI/Buttons/assets/image_down_arrow.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 173 B |
@@ -0,0 +1,143 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6561c8152d504364f80de9acecbaa2cc
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WindowsStoreApps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 408 B |
@@ -0,0 +1,143 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b96446804d2e29645827d31952f863cb
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 64
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WindowsStoreApps
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -224,7 +224,7 @@ MonoBehaviour:
|
||||
clusterView: {fileID: 6304868380873761510}
|
||||
expandedView: {fileID: 952545100964675415}
|
||||
alarmSingleIconManagerPrefab: {fileID: 7314511769243682470, guid: e9acc8c9a93a2b5409fc01661660b217, type: 3}
|
||||
objectYOffset: 0
|
||||
objectYOffset: 10
|
||||
iconSpacing: 20
|
||||
expandOffsetX: 0
|
||||
expandOffsetY: 0
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
</layout>
|
||||
</appender>
|
||||
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
|
||||
<file value="C:\Users\uvc\Documents\works\2025\03.Simulator\dev\base\XRBase\Logs\unityLogs\" />
|
||||
<file value="D:\works\2025\03.Simulator\dev\base\XRBase\Logs\unityLogs\" />
|
||||
<datepattern value="yyyy\\MM\\yyyy-MM-dd'.log'"/>
|
||||
<appendToFile value="true" />
|
||||
<staticLogFileName value="false" />
|
||||
@@ -15,7 +15,7 @@
|
||||
</layout>
|
||||
</appender>
|
||||
<appender name="FatalRollingFile" type="log4net.Appender.RollingFileAppender">
|
||||
<file value="C:\Users\uvc\Documents\works\2025\03.Simulator\dev\base\XRBase\Logs\unityLogs\fatal.log" />
|
||||
<file value="D:\works\2025\03.Simulator\dev\base\XRBase\Logs\unityLogs\fatal.log" />
|
||||
<appendToFile value="true" />
|
||||
<rollingStyle value="Size" />
|
||||
<maxSizeRollBackups value="500" />
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace RTG
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Places 'rect' below 'other' and sets its center to the same center
|
||||
/// Places 'size' below 'other' and sets its center to the same center
|
||||
/// as 'other' horizontally.
|
||||
/// </summary>
|
||||
public static Rect PlaceBelowCenterHrz(this Rect rect, Rect other)
|
||||
|
||||
@@ -1172,6 +1172,140 @@ CanvasRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1101428664}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!1001 &1316465221
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 1561871830}
|
||||
m_Modifications:
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_Pivot.y
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 87
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 30
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: -140
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 703028475656766602, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1041581967906135930, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_Enabled
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1688553935695331173, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1688553935695331173, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4121049089239917032, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: UILanguageButton
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4909717836101914427, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4909717836101914427, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4909717836101914427, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6993504691953077341, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
propertyPath: m_Options.m_Options.Array.size
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
--- !u!224 &1316465222 stripped
|
||||
RectTransform:
|
||||
m_CorrespondingSourceObject: {fileID: 645519807822385127, guid: 12db500810bde2f42b6cc1aa17543fb5, type: 3}
|
||||
m_PrefabInstance: {fileID: 1316465221}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &1379798062
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1410,6 +1544,8 @@ RectTransform:
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 7308135740740370488}
|
||||
- {fileID: 1316465222}
|
||||
- {fileID: 1101428665}
|
||||
m_Father: {fileID: 483439351}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@@ -1432,9 +1568,9 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.24528301, g: 0.24528301, b: 0.24528301, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
m_Maskable: 0
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
@@ -2164,6 +2300,108 @@ PrefabInstance:
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 2266b188915dc8a4b87a3e53e52c5999, type: 3}
|
||||
--- !u!1001 &7308135740740370487
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 1561871830}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1928778550412568362, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: UISearchInput
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_Pivot.y
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 160
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 28
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: -314
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
--- !u!224 &7308135740740370488 stripped
|
||||
RectTransform:
|
||||
m_CorrespondingSourceObject: {fileID: 3549070521602479230, guid: ed442d88645f41448a9abe8128c26bbb, type: 3}
|
||||
m_PrefabInstance: {fileID: 7308135740740370487}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &8261569461642068635
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
using Cysharp.Threading.Tasks;
|
||||
using SampleProject.Config;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UVC.Core;
|
||||
using UVC.Data;
|
||||
using UVC.Tests;
|
||||
using UVC.Locale;
|
||||
using UVC.Util;
|
||||
|
||||
namespace SampleProject
|
||||
{
|
||||
@@ -22,6 +23,7 @@ namespace SampleProject
|
||||
/// </summary>
|
||||
protected override void Init()
|
||||
{
|
||||
SettupConfig();
|
||||
SetNetworkInfo();
|
||||
if (Initialized != null)
|
||||
{
|
||||
@@ -34,6 +36,24 @@ namespace SampleProject
|
||||
//Tester.RunAllTests();
|
||||
}
|
||||
|
||||
private void SettupConfig()
|
||||
{
|
||||
if (AppConfig.LoadConfig())
|
||||
{
|
||||
//기본 언어 설정
|
||||
bool success = LocalizationManager.Instance.LoadDefaultLocalizationData(AppConfig.Config.Language);
|
||||
Debug.Log($"LocalizationManager: LoadDefaultLocalizationData success: {success}");
|
||||
if (!Application.isEditor && Application.platform == RuntimePlatform.WindowsPlayer)
|
||||
{
|
||||
//창 설정
|
||||
if (AppConfig.Config.Window != null)
|
||||
{
|
||||
WindowTools.Instance.Init(AppConfig.Config.Window);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetNetworkInfo()
|
||||
{
|
||||
URLList.Add("baseinfo", "http://localhost:8888/baseinfo/00:00");
|
||||
|
||||
52
Assets/Scripts/SampleProject/Config/AppConfig.cs
Normal file
52
Assets/Scripts/SampleProject/Config/AppConfig.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using Newtonsoft.Json;
|
||||
using System.IO;
|
||||
using UnityEngine;
|
||||
using static UVC.Util.WindowTools;
|
||||
|
||||
namespace SampleProject.Config
|
||||
{
|
||||
/// <summary>
|
||||
/// 애플리케이션의 설정을 관리하는 클래스입니다. AppConfig.json 파일에서 설정을 로드합니다.
|
||||
/// </summary>
|
||||
public class AppConfig
|
||||
{
|
||||
/// <summary>
|
||||
/// 로드된 애플리케이션 설정을 담고 있는 정적 인스턴스입니다.
|
||||
/// </summary>
|
||||
public static AppConfig Config { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Windows 런타임 환경에서 StreamingAssets 폴더의 AppConfig.json 파일로부터 설정을 로드합니다.
|
||||
/// </summary>
|
||||
/// <returns>설정 로드 성공 여부를 반환합니다.</returns>
|
||||
public static bool LoadConfig()
|
||||
{
|
||||
string path = Path.Combine(Application.streamingAssetsPath, "AppConfig.json");
|
||||
if (File.Exists(path))
|
||||
{
|
||||
string json = File.ReadAllText(path);
|
||||
Config = JsonConvert.DeserializeObject<AppConfig>(json);
|
||||
Debug.Log($"AppConfig loaded from {path}");
|
||||
return Config != null;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError($"File not found: {path}");
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 애플리케이션의 언어 설정입니다.
|
||||
/// </summary>
|
||||
[JsonProperty("language")]
|
||||
public string Language { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 애플리케이션의 창 관련 설정입니다.
|
||||
/// </summary>
|
||||
[JsonProperty("window")]
|
||||
public WindowInfoData Window { get; set; }
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/SampleProject/Config/AppConfig.cs.meta
Normal file
2
Assets/Scripts/SampleProject/Config/AppConfig.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac974d1504daf8645be61d0e44b60da8
|
||||
@@ -73,8 +73,8 @@ namespace SampleProject.UI.Menu
|
||||
}),
|
||||
new MenuItemData("language", "menu_language", subMenuItems: new List<MenuItemData>
|
||||
{
|
||||
new MenuItemData("lang_ko", "menu_lang_korean", new ChangeLanguageCommand("ko-KR")),
|
||||
new MenuItemData("lang_en", "menu_lang_english", new ChangeLanguageCommand("en-US")),
|
||||
new MenuItemData("lang_ko", "menu_lang_korean", new ChangeLanguageCommand("ko")),
|
||||
new MenuItemData("lang_en", "menu_lang_english", new ChangeLanguageCommand("en")),
|
||||
// new MenuItemData("lang_jp", "menu_lang_japanese", new ChangeLanguageCommand("ja-JP")) // 예: 일본어 추가
|
||||
})
|
||||
}));
|
||||
|
||||
@@ -343,7 +343,7 @@ namespace UVC.Extension
|
||||
/// <param name="parentRectTransform">기준이 될 부모 RectTransform입니다.</param>
|
||||
/// <remarks>
|
||||
/// [초보자 설명]
|
||||
/// 이 메서드는 LayoutGroup 자체의 UI 영역 크기(`sizeDelta`)를 `parentRectTransform`의 실제 렌더링 크기(`rect.width`, `rect.height`)와 동일하게 만듭니다.
|
||||
/// 이 메서드는 LayoutGroup 자체의 UI 영역 크기(`sizeDelta`)를 `parentRectTransform`의 실제 렌더링 크기(`size.width`, `size.height`)와 동일하게 만듭니다.
|
||||
/// LayoutGroup의 앵커 설정에 따라 `sizeDelta`의 의미가 달라질 수 있지만, 일반적으로 이 메서드는 LayoutGroup이 부모의 영역을 꽉 채우도록 만듭니다.
|
||||
/// </remarks>
|
||||
/// <example>
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace UVC.Factory.Alarm
|
||||
if (rect != null && detailTxt != null)
|
||||
{
|
||||
RectTransform textRect = detailTxt.GetComponent<RectTransform>();
|
||||
// 현재 배경(rect)의 높이와 텍스트(textRect) 영역 높이의 차이를 계산하여 상하 여백(margin)을 구합니다.
|
||||
// 현재 배경(size)의 높이와 텍스트(textRect) 영역 높이의 차이를 계산하여 상하 여백(margin)을 구합니다.
|
||||
float marginHeight = rect.rect.height - textRect.rect.height;
|
||||
// 배경의 높이를 '텍스트의 실제 높이(preferredHeight)' + '상하 여백'으로 설정하여 내용이 잘리지 않게 합니다.
|
||||
rect.sizeDelta = new Vector2(rect.rect.width, detailTxt.preferredHeight + marginHeight);
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace UVC.Factory.Alarm
|
||||
|
||||
[Header("UI Layout Settings")]
|
||||
[Tooltip("3D 설비 객체와 UI 아이콘 사이의 수직(Y) 간격입니다.")]
|
||||
[SerializeField] private float objectYOffset = 0f;
|
||||
[SerializeField] private float objectYOffset = 10f;
|
||||
[Tooltip("아이콘을 펼쳤을 때 개별 아이콘 사이의 간격입니다.")]
|
||||
[SerializeField] private float iconSpacing = 20f;
|
||||
[Tooltip("아이콘을 펼쳤을 때의 중심점 X축 오프셋입니다.")]
|
||||
|
||||
@@ -27,16 +27,21 @@ namespace UVC.Factory.Alarm
|
||||
// Key: 설비 ID (TRANSPORT_EQP_ID), Value: 해당 설비에 연결된 AlarmIconManager 인스턴스
|
||||
private Dictionary<string, AlarmIconManager> activeAlarmUIs = new Dictionary<string, AlarmIconManager>();
|
||||
|
||||
// 테스트용으로 사용할 AGV 이름 리스트입니다.
|
||||
private List<string> agvNames = new List<string>();
|
||||
|
||||
// 어떤 알람(Id)이 어떤 AGV(TRANSPORT_EQP_ID)에 할당되었는지 추적하기 위한 딕셔너리입니다.
|
||||
private Dictionary<string, string> alarmAgvNames = new Dictionary<string, string>();
|
||||
|
||||
// 씬에 있는 모든 FactoryObject를 관리하는 매니저의 참조입니다.
|
||||
// 알람 데이터에 포함된 설비 ID를 이용해 실제 3D 객체를 찾기 위해 사용됩니다.
|
||||
private FactoryObjectManager? dataManager;
|
||||
|
||||
private bool testMode = false; // 테스트 모드 여부를 나타내는 플래그입니다.
|
||||
|
||||
// 테스트용으로 사용할 AGV 이름 리스트입니다.
|
||||
private List<string> agvNames = new List<string>();
|
||||
|
||||
// 테스트용으로 어떤 알람(Id)이 어떤 AGV(TRANSPORT_EQP_ID)에 할당되었는지 추적하기 위한 딕셔너리입니다.
|
||||
private Dictionary<string, string> alarmAgvNames = new Dictionary<string, string>();
|
||||
|
||||
// 테스트용으로, 새로 발생하는 알람에 AGV ID를 순차적으로 할당하기 위한 인덱스입니다.
|
||||
private int agvIdx = 50;
|
||||
|
||||
/// <summary>
|
||||
/// AlarmManager의 초기화 메서드입니다.
|
||||
@@ -57,12 +62,15 @@ namespace UVC.Factory.Alarm
|
||||
// FactoryObjectManager의 인스턴스를 가져와 나중에 사용할 수 있도록 저장합니다.
|
||||
dataManager = FactoryObjectManager.Instance;
|
||||
|
||||
// 테스트 코드: 실제 데이터가 없을 경우를 대비하여 가상의 AGV 이름 목록을 생성합니다.
|
||||
// 현재는 알람 데이터에 AGV 정보가 없는 경우가 많아, 임시로 AGV 이름을 할당하기 위해 사용됩니다.
|
||||
for (int i = 1; i <= 115; i++)
|
||||
if (testMode)
|
||||
{
|
||||
//agvNames.Add($"HFF09CNA8{i.ToString("D3")}");
|
||||
agvNames.Add($"HFF09CNA8061");
|
||||
// 테스트 코드: 실제 데이터가 없을 경우를 대비하여 가상의 AGV 이름 목록을 생성합니다.
|
||||
// 현재는 알람 데이터에 AGV 정보가 없는 경우가 많아, 임시로 AGV 이름을 할당하기 위해 사용됩니다.
|
||||
for (int i = 1; i <= 115; i++)
|
||||
{
|
||||
//agvNames.Add($"HFF09CNA8{i.ToString("D3")}");
|
||||
agvNames.Add($"HFF09CNA8061");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,8 +124,7 @@ namespace UVC.Factory.Alarm
|
||||
AppMain.Instance.MQTTPipeLine.Add(pipelineInfo);
|
||||
}
|
||||
|
||||
// 테스트용으로, 새로 발생하는 알람에 AGV ID를 순차적으로 할당하기 위한 인덱스입니다.
|
||||
int agvIdx = 50;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// MQTT 파이프라인으로부터 데이터가 업데이트될 때마다 호출되는 메인 핸들러입니다.
|
||||
@@ -163,12 +170,15 @@ namespace UVC.Factory.Alarm
|
||||
// 알람이 해제되지 않았고(CLEAR_TIME == null), 고유 ID가 있는 경우에만 신규 알람으로 처리합니다.
|
||||
if (item.GetDateTime("CLEAR_TIME") == null && !item.Id.IsNullOrEmpty())
|
||||
{
|
||||
// 테스트 코드: 수신된 알람 데이터에 임시로 AGV ID를 할당합니다.
|
||||
item["TRANSPORT_EQP_ID"] = agvNames[agvIdx];
|
||||
alarmAgvNames.Add(item.Id!, agvNames[agvIdx]); // 알람 ID와 할당된 AGV ID를 매핑하여 저장합니다.
|
||||
HandleNewAlarm(item); // 신규 알람 처리 로직 호출
|
||||
agvIdx++;
|
||||
if (agvIdx >= agvNames.Count) agvIdx = 0; // AGV ID를 순환하며 사용합니다.
|
||||
if (testMode)
|
||||
{
|
||||
// 테스트 코드: 수신된 알람 데이터에 임시로 AGV ID를 할당합니다.
|
||||
item["TRANSPORT_EQP_ID"] = agvNames[agvIdx];
|
||||
alarmAgvNames.Add(item.Id!, agvNames[agvIdx]); // 알람 ID와 할당된 AGV ID를 매핑하여 저장합니다.
|
||||
agvIdx++;
|
||||
if (agvIdx >= agvNames.Count) agvIdx = 0; // AGV ID를 순환하며 사용합니다.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,9 +186,12 @@ namespace UVC.Factory.Alarm
|
||||
foreach (var item in ModifiedList.ToList())
|
||||
{
|
||||
// 해제되지 않았고, ID가 있으며, 이미 관리 중인 알람인 경우에만 수정 처리합니다.
|
||||
if (item.GetDateTime("CLEAR_TIME") == null && !item.Id.IsNullOrEmpty() && alarmAgvNames.ContainsKey(item.Id!))
|
||||
if (item.GetDateTime("CLEAR_TIME") == null && !item.Id.IsNullOrEmpty())
|
||||
{
|
||||
item["TRANSPORT_EQP_ID"] = alarmAgvNames[item.Id!]; // 기존에 할당된 AGV ID를 유지합니다.
|
||||
if (testMode && alarmAgvNames.ContainsKey(item.Id!))
|
||||
{
|
||||
item["TRANSPORT_EQP_ID"] = alarmAgvNames[item.Id!]; // 기존에 할당된 AGV ID를 유지합니다.
|
||||
}
|
||||
HandleModifyAlarm(item); // 수정 알람 처리 로직 호출
|
||||
}
|
||||
}
|
||||
@@ -187,9 +200,12 @@ namespace UVC.Factory.Alarm
|
||||
foreach (var item in RemovedItems.ToList())
|
||||
{
|
||||
// ID가 있고, 관리 중인 알람인 경우에만 해제 처리합니다.
|
||||
if (!item.Id.IsNullOrEmpty() && alarmAgvNames.ContainsKey(item.Id!))
|
||||
if (!item.Id.IsNullOrEmpty())
|
||||
{
|
||||
item["TRANSPORT_EQP_ID"] = alarmAgvNames[item.Id!]; // 기존 AGV ID를 설정하여 어떤 UI를 제거할지 찾도록 합니다.
|
||||
if (testMode && alarmAgvNames.ContainsKey(item.Id!))
|
||||
{
|
||||
item["TRANSPORT_EQP_ID"] = alarmAgvNames[item.Id!]; // 기존 AGV ID를 설정하여 어떤 UI를 제거할지 찾도록 합니다.
|
||||
}
|
||||
HandleClearedAlarm(item); // 해제 알람 처리 로직 호출
|
||||
}
|
||||
}
|
||||
|
||||
8
Assets/Scripts/UVC/Factory/Buttons.meta
Normal file
8
Assets/Scripts/UVC/Factory/Buttons.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 07768d8eb217f394fb7610b292649f1c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
58
Assets/Scripts/UVC/Factory/Buttons/UILanguageButton.cs
Normal file
58
Assets/Scripts/UVC/Factory/Buttons/UILanguageButton.cs
Normal file
@@ -0,0 +1,58 @@
|
||||
using SampleProject;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UVC.Locale;
|
||||
|
||||
namespace UVC.Factory.Buttons
|
||||
{
|
||||
public class UILanguageButton : MonoBehaviour
|
||||
{
|
||||
private TMP_Dropdown dropDown;
|
||||
|
||||
private Dictionary<string, string> languages;
|
||||
|
||||
|
||||
void Awake()
|
||||
{
|
||||
SceneMain.Instance.Initialized += OnSceneInitialized;
|
||||
}
|
||||
|
||||
private void OnSceneInitialized()
|
||||
{
|
||||
languages = LocalizationManager.Instance.AvailableDisplayLanguages;
|
||||
var optoins = new List<TMP_Dropdown.OptionData>();
|
||||
foreach (var language in languages)
|
||||
{
|
||||
optoins.Add(new TMP_Dropdown.OptionData(language.Value));
|
||||
}
|
||||
|
||||
dropDown = GetComponent<TMP_Dropdown>();
|
||||
dropDown.options = optoins;
|
||||
dropDown.value = languages.Keys.ToList().IndexOf(LocalizationManager.Instance.CurrentLanguage);
|
||||
|
||||
dropDown.onValueChanged.AddListener(onValueChanged);
|
||||
}
|
||||
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
SceneMain.Instance.Initialized -= OnSceneInitialized;
|
||||
if (dropDown != null)
|
||||
{
|
||||
dropDown.onValueChanged.RemoveListener(onValueChanged);
|
||||
dropDown = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void onValueChanged(int value)
|
||||
{
|
||||
string selectedLanguage = languages.Keys.ToList()[value];
|
||||
Debug.Log($"Selected Language: {selectedLanguage}");
|
||||
LocalizationManager.Instance.SetCurrentLanguage(selectedLanguage);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 298abc08e9d2be149aebaa0a2d122619
|
||||
131
Assets/Scripts/UVC/Factory/Buttons/UISearchInput.cs
Normal file
131
Assets/Scripts/UVC/Factory/Buttons/UISearchInput.cs
Normal file
@@ -0,0 +1,131 @@
|
||||
using Cysharp.Threading.Tasks;
|
||||
using SampleProject;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
using UVC.Factory.Component;
|
||||
using UVC.Locale;
|
||||
using UVC.UI.Modal;
|
||||
using UVC.Util;
|
||||
|
||||
namespace UVC.Factory.Buttons
|
||||
{
|
||||
public class UISearchInput : MonoBehaviour
|
||||
{
|
||||
private TMP_InputField inputField;
|
||||
|
||||
private Button button;
|
||||
private GameObject textArea;
|
||||
|
||||
private bool initialized = false;
|
||||
|
||||
private bool isClicked = false;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
SceneMain.Instance.Initialized += OnSceneInitialized;
|
||||
}
|
||||
|
||||
private void OnSceneInitialized()
|
||||
{
|
||||
inputField = GetComponent<TMP_InputField>();
|
||||
|
||||
button = GetComponentInChildren<Button>();
|
||||
button.onClick.AddListener(() =>
|
||||
{
|
||||
isClicked = !isClicked;
|
||||
if (isClicked)
|
||||
{
|
||||
//button.image.color = ColorUtil.FromHex("#00B0B0");
|
||||
//textArea.gameObject.SetActive(true);
|
||||
inputField.Select();
|
||||
}
|
||||
else
|
||||
{
|
||||
Location(inputField.text);
|
||||
//button.image.color = Color.white;
|
||||
//textArea.gameObject.SetActive(false);
|
||||
inputField.OnDeselect(null);
|
||||
}
|
||||
});
|
||||
textArea = transform.Find("Text Area").gameObject;
|
||||
inputField.onEndEdit.AddListener(OnFindLocation);
|
||||
//textArea.gameObject.SetActive(false);
|
||||
|
||||
Init();
|
||||
}
|
||||
|
||||
private void OnFindLocation(string locationID)
|
||||
{
|
||||
if (isClicked == false)
|
||||
return;
|
||||
if (Input.GetKeyDown(KeyCode.Return) || Input.GetKeyDown(KeyCode.KeypadEnter))
|
||||
{
|
||||
Location(locationID);
|
||||
isClicked = false;
|
||||
button.image.color = Color.white;
|
||||
//textArea.gameObject.SetActive(false);
|
||||
inputField.OnDeselect(null);
|
||||
}
|
||||
}
|
||||
|
||||
private void Location(string locationID)
|
||||
{
|
||||
if (string.IsNullOrEmpty(locationID))
|
||||
return;
|
||||
FactoryObject? factoryObject = FactoryObjectManager.Instance.FindById(locationID);
|
||||
if (factoryObject == null)
|
||||
{
|
||||
Alert.Show(LocalizationManager.Instance.GetString("warning"), locationID + " " +
|
||||
LocalizationManager.Instance.GetString("nosearch")).Forget();
|
||||
return;
|
||||
}
|
||||
FactoryCameraController.Instance.FocusOnTarget(factoryObject.transform.position, 15);
|
||||
inputField.text = "";
|
||||
}
|
||||
|
||||
private void Init()
|
||||
{
|
||||
if (!initialized)
|
||||
{
|
||||
inputField.placeholder.GetComponent<TextMeshProUGUI>().text = LocalizationManager.Instance.GetString("search_location");
|
||||
initialized = true;
|
||||
}
|
||||
//textArea.gameObject.SetActive(false);
|
||||
isClicked = false;
|
||||
}
|
||||
|
||||
|
||||
void OnDestroy()
|
||||
{
|
||||
SceneMain.Instance.Initialized -= OnSceneInitialized;
|
||||
|
||||
if (inputField != null)
|
||||
{
|
||||
inputField = null;
|
||||
}
|
||||
|
||||
if (button != null)
|
||||
{
|
||||
button.onClick.RemoveAllListeners();
|
||||
button = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (Input.GetMouseButtonDown(0))
|
||||
{
|
||||
if (EventSystem.current.currentSelectedGameObject != null)
|
||||
return;
|
||||
//textArea.gameObject.SetActive(false);
|
||||
inputField.OnDeselect(null);
|
||||
inputField.text = "";
|
||||
button.image.color = Color.white;
|
||||
isClicked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2
Assets/Scripts/UVC/Factory/Buttons/UISearchInput.cs.meta
Normal file
2
Assets/Scripts/UVC/Factory/Buttons/UISearchInput.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 836d6527858b7494297e122eb69601fd
|
||||
@@ -197,8 +197,8 @@ namespace UVC.Factory.Component
|
||||
continue;
|
||||
}
|
||||
agv.Info = new FactoryObjectInfo(
|
||||
item.GetString("VHL_NAME"),
|
||||
item.GetString("NODE_ID"),
|
||||
item.GetString("VHL_NAME"),
|
||||
"",
|
||||
"",
|
||||
item.GetString("MODE")
|
||||
@@ -243,6 +243,7 @@ namespace UVC.Factory.Component
|
||||
protected override void OnDestroy()
|
||||
{
|
||||
base.OnDestroy();
|
||||
SceneMain.Instance.Initialized -= OnSceneInitializedAsync;
|
||||
AppMain.Instance.MQTTPipeLine.Remove("AGV");
|
||||
agvPool?.ClearRecycledItems();
|
||||
}
|
||||
|
||||
@@ -12,17 +12,17 @@ namespace UVC.Locale
|
||||
/// <code>
|
||||
/// {
|
||||
/// "languages": {
|
||||
/// "en-US": "English",
|
||||
/// "ko-KR": "한국어"
|
||||
/// "en": "English",
|
||||
/// "ko": "한국어"
|
||||
/// },
|
||||
/// "words": {
|
||||
/// "error": {
|
||||
/// "ko-KR": "에러",
|
||||
/// "en-US": "Error"
|
||||
/// "ko": "에러",
|
||||
/// "en": "Error"
|
||||
/// },
|
||||
/// "button_ok": {
|
||||
/// "ko-KR": "확인",
|
||||
/// "en-US": "OK"
|
||||
/// "ko": "확인",
|
||||
/// "en": "OK"
|
||||
/// }
|
||||
/// }
|
||||
/// }
|
||||
@@ -33,11 +33,11 @@ namespace UVC.Locale
|
||||
|
||||
/// <summary>
|
||||
/// 지원하는 언어의 코드와 표시 이름을 저장하는 딕셔너리입니다.
|
||||
/// 키는 언어 코드(예: "en-US", "ko-KR")이며, 값은 해당 언어의 표시 이름(예: "English", "한국어")입니다.
|
||||
/// 키는 언어 코드(예: "en", "ko")이며, 값은 해당 언어의 표시 이름(예: "English", "한국어")입니다.
|
||||
/// </summary>
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// // Languages["en-US"] -> "English"
|
||||
/// // Languages["en"] -> "English"
|
||||
/// </code>
|
||||
/// </example>
|
||||
[JsonProperty("languages")]
|
||||
@@ -47,11 +47,11 @@ namespace UVC.Locale
|
||||
/// 실제 번역 데이터를 저장하는 딕셔너리입니다.
|
||||
/// 첫 번째 키는 번역 키(예: "error", "button_ok")이며,
|
||||
/// 값은 해당 번역 키에 대한 언어별 번역 문자열을 담는 또 다른 딕셔너리입니다.
|
||||
/// 이 내부 딕셔너리의 키는 언어 코드(예: "en-US", "ko-KR")이고, 값은 번역된 텍스트입니다.
|
||||
/// 이 내부 딕셔너리의 키는 언어 코드(예: "en", "ko")이고, 값은 번역된 텍스트입니다.
|
||||
/// </summary>
|
||||
/// <example>
|
||||
/// <code>
|
||||
/// // Words["error"]["en-US"] -> "Error"
|
||||
/// // Words["error"]["en"] -> "Error"
|
||||
/// </code>
|
||||
/// </example>
|
||||
[JsonProperty("words")]
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using UVC.Json;
|
||||
using UVC.Log;
|
||||
using static Unity.VisualScripting.Icons;
|
||||
|
||||
namespace UVC.Locale
|
||||
{
|
||||
@@ -31,21 +33,21 @@ namespace UVC.Locale
|
||||
/// ULog.Debug("다국어 데이터 로드 성공!");
|
||||
///
|
||||
/// // 4. 사용 가능한 언어 목록 확인 (언어 코드 기준)
|
||||
/// List<string> availableLangCodes = LocalizationManager.Instance.GetAvailableLanguageCodes();
|
||||
/// List<string> availableLangCodes = LocalizationManager.Instance.AvailableLanguages();
|
||||
/// ULog.Debug("사용 가능한 언어 코드: " + string.Join(", ", availableLangCodes));
|
||||
///
|
||||
/// // 특정 언어 코드의 표시 이름 가져오기
|
||||
/// string koreanDisplayName = LocalizationManager.Instance.GetLanguageDisplayName("ko-KR");
|
||||
/// ULog.Debug($"ko-KR display name: {koreanDisplayName}"); // 출력: 한국어
|
||||
/// string koreanDisplayName = LocalizationManager.Instance.GetLanguageDisplayName("ko");
|
||||
/// ULog.Debug($"ko display name: {koreanDisplayName}"); // 출력: 한국어
|
||||
///
|
||||
/// // 5. 언어 변경
|
||||
/// LocalizationManager.Instance.SetCurrentLanguage("ko-KR"); // 한국어로 변경
|
||||
/// LocalizationManager.Instance.SetCurrentLanguage("ko"); // 한국어로 변경
|
||||
///
|
||||
/// // 6. 번역된 문자열 가져오기
|
||||
/// string errorMsg = LocalizationManager.Instance.GetString("error");
|
||||
/// ULog.Debug(errorMsg); // 현재 언어가 "ko-KR"이면 "에러" 출력
|
||||
/// ULog.Debug(errorMsg); // 현재 언어가 "ko"이면 "에러" 출력
|
||||
///
|
||||
/// LocalizationManager.Instance.SetCurrentLanguage("en-US"); // 영어로 변경
|
||||
/// LocalizationManager.Instance.SetCurrentLanguage("en"); // 영어로 변경
|
||||
/// welcomeMsg = LocalizationManager.Instance.GetString("welcome_message");
|
||||
/// ULog.Debug(welcomeMsg); // 출력 (영어): Welcome!
|
||||
/// }
|
||||
@@ -79,8 +81,8 @@ namespace UVC.Locale
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
_instance = new LocalizationManager("ko-KR");
|
||||
_instance.LoadDefaultLocalizationData(); // 기본 언어 데이터 로드
|
||||
_instance = new LocalizationManager();
|
||||
//_instance.LoadDefaultLocalizationData("ko"); // 기본 언어 데이터 로드
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -97,7 +99,7 @@ namespace UVC.Locale
|
||||
/// <summary>
|
||||
/// 언어가 변경되었을 때 발생하는 이벤트의 델리게이트입니다.
|
||||
/// </summary>
|
||||
/// <param name="newLanguageCode">새롭게 설정된 언어 코드입니다 (예: "en-US", "ko-KR").</param>
|
||||
/// <param name="newLanguageCode">새롭게 설정된 언어 코드입니다 (예: "en", "ko").</param>
|
||||
public delegate void LanguageChangedHandler(string newLanguageCode);
|
||||
/// <summary>
|
||||
/// 현재 언어가 <see cref="SetCurrentLanguage"/> 메서드를 통해 성공적으로 변경되었을 때 발생하는 이벤트입니다.
|
||||
@@ -109,6 +111,38 @@ namespace UVC.Locale
|
||||
/// </summary>
|
||||
public string CurrentLanguage => _currentLanguage;
|
||||
|
||||
/// <summary>
|
||||
/// 사용 가능한 언어 목록에서 현재 언어의 인덱스를 가져옵니다.
|
||||
/// </summary>
|
||||
public int CurrentLanguageIndex
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_currentLanguage == null)
|
||||
{
|
||||
ULog.Warning("Current language is not set. Returning -1.");
|
||||
return -1; // 언어가 설정되지 않은 경우 -1 반환
|
||||
}
|
||||
if (_dataSource?.Languages == null || _dataSource.Languages.Count == 0)
|
||||
{
|
||||
ULog.Warning("Languages data source is not loaded or empty. Returning -1.");
|
||||
return -1; // 언어 데이터가 로드되지 않았거나 비어있는 경우 -1 반환
|
||||
}
|
||||
// AvailableLanguages를 통해 현재 언어의 인덱스를 찾습니다.
|
||||
List<string> availableLanguages = AvailableLanguages;
|
||||
int index = availableLanguages.IndexOf(_currentLanguage);
|
||||
if (index != -1)
|
||||
{
|
||||
return index; // 현재 언어가 AvailableLanguages에 존재하는 경우 인덱스 반환
|
||||
}
|
||||
else
|
||||
{
|
||||
ULog.Warning($"Current language '{_currentLanguage}' not found in available languages. Returning -1.");
|
||||
return -1; // 현재 언어가 AvailableLanguages에 없는 경우 -1 반환
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 로드된 다국어 데이터에서 사용 가능한 모든 언어 코드 목록을 가져옵니다.
|
||||
/// 데이터가 로드되지 않았거나 번역 데이터가 비어있으면 빈 리스트를 반환합니다.
|
||||
@@ -125,6 +159,22 @@ namespace UVC.Locale
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 사용 가능한 표시 언어 컬렉션을 가져옵니다.
|
||||
/// ["en"] = "English", ["ko"] = "한국어" 형식의 KeyValuePair 컬렉션입니다.
|
||||
/// </summary>
|
||||
public Dictionary<string, string> AvailableDisplayLanguages
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_dataSource?.Languages != null && _dataSource.Languages.Count > 0)
|
||||
{
|
||||
return new Dictionary<string, string>(_dataSource.Languages.AsReadOnlyCollection());
|
||||
}
|
||||
return new Dictionary<string, string>();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 지정된 언어 코드에 해당하는 표시 이름을 가져옵니다.
|
||||
/// </summary>
|
||||
@@ -142,22 +192,22 @@ namespace UVC.Locale
|
||||
|
||||
/// <summary>
|
||||
/// <see cref="LocalizationManager"/> 클래스의 새 인스턴스를 초기화합니다.
|
||||
/// 기본 언어를 "ko-KR"로 설정합니다.
|
||||
/// 기본 언어를 "ko"로 설정합니다.
|
||||
/// 생성자를 private으로 변경하여 외부에서의 직접적인 인스턴스 생성을 막습니다.
|
||||
/// </summary>
|
||||
private LocalizationManager(string defaultLanguage = "ko-KR")
|
||||
private LocalizationManager()
|
||||
{
|
||||
_dataSource = new LocalizationDataSource();
|
||||
// 기본 언어를 설정하거나, 시스템 설정을 따르도록 초기화할 수 있습니다.
|
||||
_currentLanguage = defaultLanguage; // 예시 기본 언어
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 기본 경로(<see cref="Application.streamingAssetsPath"/>/locale.json)에서 다국어 데이터를 로드합니다.
|
||||
/// </summary>
|
||||
/// <returns>데이터 로드 성공 시 true, 실패 시 false를 반환합니다.</returns>
|
||||
public bool LoadDefaultLocalizationData()
|
||||
public bool LoadDefaultLocalizationData(string defaultLanguage = "ko")
|
||||
{
|
||||
// 기본 언어를 설정하거나, 시스템 설정을 따르도록 초기화할 수 있습니다.
|
||||
_currentLanguage = defaultLanguage; // 예시 기본 언어
|
||||
string path = Path.Combine(Application.streamingAssetsPath, "locale.json");
|
||||
return LoadLocalizationData(path);
|
||||
}
|
||||
@@ -216,7 +266,7 @@ namespace UVC.Locale
|
||||
/// 현재 사용 언어를 변경합니다.
|
||||
/// 성공적으로 언어가 변경되면 <see cref="OnLanguageChanged"/> 이벤트가 발생합니다.
|
||||
/// </summary>
|
||||
/// <param name="languageCode">설정할 언어 코드입니다 (예: "en-US", "ko-KR").</param>
|
||||
/// <param name="languageCode">설정할 언어 코드입니다 (예: "en", "ko").</param>
|
||||
public void SetCurrentLanguage(string languageCode)
|
||||
{
|
||||
if (string.IsNullOrEmpty(languageCode))
|
||||
|
||||
@@ -243,8 +243,8 @@ namespace UVC.UI.Menu
|
||||
model.MenuItems.Add(new MenuItemData("language", "menu_language", subMenuItems: new List<MenuItemData>
|
||||
{
|
||||
// 각 언어 메뉴 아이템에 ChangeLanguageCommand를 연결하여 언어 변경 기능 수행
|
||||
new MenuItemData("lang_ko", "menu_lang_korean", new ChangeLanguageCommand("ko-KR"), commandParameter: "ko-KR"),
|
||||
new MenuItemData("lang_en", "menu_lang_english", new ChangeLanguageCommand("en-US")),
|
||||
new MenuItemData("lang_ko", "menu_lang_korean", new ChangeLanguageCommand("ko"), commandParameter: "ko"),
|
||||
new MenuItemData("lang_en", "menu_lang_english", new ChangeLanguageCommand("en")),
|
||||
new MenuItemData("file_save", "menu_file_save", command: new DebugLogCommand("저장 선택됨 (Command 실행)") , subMenuItems: new List<MenuItemData>
|
||||
{
|
||||
new MenuItemData("file_save_as", "menu_file_save_as", new DebugLogCommand("다른 이름으로 저장 선택됨 (Command 실행)"))
|
||||
@@ -291,7 +291,7 @@ namespace UVC.UI.Menu
|
||||
/// 새로운 언어 코드(<paramref name="newLanguageCode"/>)가 적용되었음을 감지하고,
|
||||
/// <see cref="view"/>에 모든 메뉴 텍스트를 업데이트하도록 요청합니다.
|
||||
/// </summary>
|
||||
/// <param name="newLanguageCode">새롭게 설정된 언어 코드입니다 (예: "ko-KR", "en-US").</param>
|
||||
/// <param name="newLanguageCode">새롭게 설정된 언어 코드입니다 (예: "ko", "en").</param>
|
||||
protected virtual void HandleLanguageChanged(string newLanguageCode)
|
||||
{
|
||||
ULog.Debug($"언어 변경 감지됨: {newLanguageCode}. 메뉴 텍스트 업데이트를 시도합니다...");
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// Copyright (C) 2017 d.mind - All Rights Reserved
|
||||
// Version 1.0.1
|
||||
// Copyright (C) 2018 logonkhi@gmail.com - All Rights Reserved
|
||||
// Version 1.0.0
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using UnityEngine;
|
||||
using UVC.Core;
|
||||
|
||||
@@ -104,178 +104,130 @@ namespace UVC.Util
|
||||
/// WindowTools 클래스는 Unity 애플리케이션에서 창의 위치, 크기, 스타일 등을 제어하는 기능을 제공합니다.
|
||||
/// 이 클래스는 Windows API를 활용하여 창의 속성을 변경하며, Unity 환경에서 실행 시 유용한 창 관리 기능을 제공합니다.
|
||||
/// </summary>
|
||||
public class WindowTools : SingletonApp<WindowTools>
|
||||
public class WindowTools : Singleton<WindowTools>
|
||||
{
|
||||
[Serializable]
|
||||
public class WindowInfoData
|
||||
{
|
||||
public class RectInfo
|
||||
public enum WindowInfoDataWindowState
|
||||
{
|
||||
public int x; // 창의 X 좌표
|
||||
public int y; // 창의 Y 좌표
|
||||
public int width; // 창의 너비
|
||||
public int height; // 창의 높이
|
||||
FullScreen = 0, // 전체 화면 모드
|
||||
Default = 1, // 기본 창 모드
|
||||
Minimized = 2, // 최소화된 창 모드
|
||||
Maximized = 3 // 최대화된 창 모드
|
||||
}
|
||||
|
||||
[Tooltip("기능 사용 여부")]
|
||||
public bool use = true;// 창 관리 기능 활성화 여부
|
||||
public enum WindowInfoDataWindowHAlign
|
||||
{
|
||||
Left = 0, // 왼쪽 정렬
|
||||
Center = 1, // 중앙 정렬
|
||||
Right = 2, // 오른쪽 정렬
|
||||
}
|
||||
|
||||
[Tooltip("창 표시 영역")]
|
||||
public RectInfo rect = new RectInfo() { x = 0, y = 0, width = 1920, height = 1080 }; // 창의 초기 위치 및 크기
|
||||
public enum WindowInfoDataWindowVAlign
|
||||
{
|
||||
Top = 0, // 상단 정렬
|
||||
Center = 1, // 중앙 정렬
|
||||
Bottom = 2, // 하단 정렬
|
||||
}
|
||||
|
||||
[Tooltip("항상 최상위에 놓을지 여부")]
|
||||
public bool alwaysTop = false; // 창을 항상 최상위로 유지할지 여부
|
||||
// 전체 화면 모드에서 사용할 해상도
|
||||
public Vector2Int fullScreenResolution = new Vector2Int(1920, 1080);
|
||||
|
||||
[Tooltip("창 테두리 표시 여부")]
|
||||
public bool showBorder = true; // 창 테두리 표시 여부
|
||||
// 창 크기
|
||||
public Vector2Int size = new Vector2Int(1920, 1080);
|
||||
|
||||
[Tooltip("첫 실행 시 창 크기, 1:기본, 2:최소화, 3:최대화"), Range(1, 3)]
|
||||
public int initWindowState = 1; // 창의 초기 상태 (기본, 최소화, 최대화)
|
||||
// 창을 항상 최상위로 유지할지 여부
|
||||
public bool alwaysTop = false;
|
||||
|
||||
[Tooltip("실행 딜레이 (단위:초)")]
|
||||
public float startDelay = 0f; // 창 초기화 지연 시간
|
||||
// 창 테두리 표시 여부
|
||||
public bool showBorder = true;
|
||||
|
||||
[Tooltip("새 타이틀 명 (비어있으면 반영안됨)")]
|
||||
public string newTitle = "Octopus"; // 창의 새 제목
|
||||
// 창의 초기 상태 (풀스크린, 기본, 최소화, 최대화)
|
||||
public WindowInfoDataWindowState initWindowState = WindowInfoDataWindowState.FullScreen;
|
||||
|
||||
// 가로 정렬
|
||||
public WindowInfoDataWindowHAlign hAlign = WindowInfoDataWindowHAlign.Center;
|
||||
|
||||
// 세로 정렬
|
||||
public WindowInfoDataWindowVAlign vAlign = WindowInfoDataWindowVAlign.Center;
|
||||
|
||||
// 새 타이틀 명 (비어있으면 반영안됨)
|
||||
public string title = "Octopus";
|
||||
}
|
||||
|
||||
private WindowInfoData WindowInfo = new WindowInfoData();
|
||||
private WindowInfoData WindowInfo;
|
||||
|
||||
private IntPtr _hwnd; // 창 핸들
|
||||
private long _old; // 이전 창 스타일
|
||||
private string _filePath; // 파일 경로
|
||||
private int screenWidth; // 화면 너비
|
||||
private int screenHeight; // 화면 높이
|
||||
private int startWidth; // 초기 창 너비
|
||||
private int startHeight; // 초기 창 높이
|
||||
|
||||
/// <summary>
|
||||
/// Unity 애플리케이션 시작 시 창의 초기 위치와 크기를 설정합니다.
|
||||
/// 창의 초기 위치와 크기를 설정합니다.
|
||||
/// </summary>
|
||||
private void Start()
|
||||
public void Init(WindowInfoData windowInfo)
|
||||
{
|
||||
|
||||
DisplayInfo displayInfo = Screen.mainWindowDisplayInfo;
|
||||
|
||||
// 화면 해상도 계산
|
||||
screenWidth = int.Parse(displayInfo.workArea.width.ToString()) + 14;// Screen.width; 14:그림자
|
||||
screenHeight = int.Parse(displayInfo.workArea.height.ToString()) + 7;// creen.height; 7:그림자
|
||||
|
||||
startWidth = 350 + 14;
|
||||
startHeight = 606 + 7;
|
||||
int centerX = ((screenWidth - startWidth) / 2);
|
||||
int centerY = ((screenHeight - startHeight) / 2);
|
||||
|
||||
WindowInfo.rect.x = centerX;
|
||||
WindowInfo.rect.y = centerY;
|
||||
WindowInfo.rect.width = startWidth;
|
||||
WindowInfo.rect.height = startHeight;
|
||||
this.WindowInfo = windowInfo;
|
||||
|
||||
#if !UNITY_EDITOR || UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN
|
||||
|
||||
Screen.MoveMainWindowTo(displayInfo, new Vector2Int(centerX, centerY));
|
||||
|
||||
|
||||
// 창 관리 기능 활성화 시 초기화 수행
|
||||
if (WindowInfo.use)
|
||||
// 풀스크린인지 확인
|
||||
if (WindowInfo.initWindowState == WindowInfoData.WindowInfoDataWindowState.FullScreen)
|
||||
{
|
||||
StartCoroutine(Initialize());
|
||||
Screen.SetResolution(WindowInfo.fullScreenResolution.x, WindowInfo.fullScreenResolution.y, true);
|
||||
Screen.fullScreenMode = FullScreenMode.FullScreenWindow;
|
||||
return;
|
||||
}
|
||||
|
||||
Initialize();
|
||||
|
||||
#endif
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// 애플리케이션 종료 시 창의 크기를 저장합니다.
|
||||
/// </summary>
|
||||
private void OnApplicationQuit()
|
||||
{
|
||||
PlayerPrefs.SetInt("Screenmanager Resolution Width", startWidth);
|
||||
PlayerPrefs.SetInt("Screenmanager Resolution Height", startHeight);
|
||||
PlayerPrefs.Save();
|
||||
}
|
||||
|
||||
//private void Update()
|
||||
//{
|
||||
// if (Input.GetKeyDown(KeyCode.Space))
|
||||
// {
|
||||
// SaveData();
|
||||
// }
|
||||
|
||||
// if (Input.GetKeyDown(KeyCode.Q))
|
||||
// {
|
||||
// SetWindowPosition(100, 100);
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.W))
|
||||
// {
|
||||
// SetWindowPosition(0, 0);
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.A))
|
||||
// {
|
||||
// SetWindowSize(800, 600);
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.S))
|
||||
// {
|
||||
// SetWindowSize(1280, 900);
|
||||
// }
|
||||
|
||||
// if (Input.GetKeyDown(KeyCode.Z))
|
||||
// {
|
||||
// ShowBorder();
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.X))
|
||||
// {
|
||||
// HideBorder();
|
||||
// }
|
||||
|
||||
// if (Input.GetKeyDown(KeyCode.Alpha1))
|
||||
// {
|
||||
// NormalizeWindow();
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.Alpha2))
|
||||
// {
|
||||
// MinimizeWindow();
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.Alpha3))
|
||||
// {
|
||||
// MaximizeWindow();
|
||||
// }
|
||||
|
||||
// if (Input.GetKeyDown(KeyCode.Alpha4))
|
||||
// {
|
||||
// SetWindowTitle("Window1");
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.Alpha5))
|
||||
// {
|
||||
// SetWindowTitle("Window2");
|
||||
// }
|
||||
|
||||
// if (Input.GetKeyDown(KeyCode.Alpha6))
|
||||
// {
|
||||
// SetAlphaWindow(0.3f);
|
||||
// }
|
||||
// if (Input.GetKeyDown(KeyCode.Alpha7))
|
||||
// {
|
||||
// SetAlphaWindow(1f);
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 창 초기화 작업을 수행합니다.
|
||||
/// </summary>
|
||||
/// <returns>코루틴</returns>
|
||||
private IEnumerator Initialize()
|
||||
private void Initialize()
|
||||
{
|
||||
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
//if (!Application.isEditor && Application.platform == RuntimePlatform.WindowsPlayer)
|
||||
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
_hwnd = GetWindowHandle();//FindWindow("UnityWndClass", Application.productName);
|
||||
_old = GetWindowLong(_hwnd, (long)GWLWindowStyles.GWL_STYLE);
|
||||
|
||||
yield return new WaitForSeconds(this.WindowInfo.startDelay);
|
||||
|
||||
|
||||
int hWndInsertAfter = (this.WindowInfo.alwaysTop) ? -1 : 0;
|
||||
Rect winRect = new Rect(WindowInfo.rect.x, WindowInfo.rect.y, WindowInfo.rect.width, WindowInfo.rect.height);
|
||||
|
||||
|
||||
Rect winRect = new Rect(0, 0, WindowInfo.size.x, WindowInfo.size.y);
|
||||
|
||||
//정렬된 창 크기 설정
|
||||
switch (WindowInfo.hAlign)
|
||||
{
|
||||
case WindowInfoData.WindowInfoDataWindowHAlign.Left:
|
||||
winRect.x = 0;
|
||||
break;
|
||||
case WindowInfoData.WindowInfoDataWindowHAlign.Center:
|
||||
winRect.x = (Screen.width - winRect.width) / 2;
|
||||
break;
|
||||
case WindowInfoData.WindowInfoDataWindowHAlign.Right:
|
||||
winRect.x = Screen.width - winRect.width;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (WindowInfo.vAlign)
|
||||
{
|
||||
case WindowInfoData.WindowInfoDataWindowVAlign.Top:
|
||||
winRect.y = 0;
|
||||
break;
|
||||
case WindowInfoData.WindowInfoDataWindowVAlign.Center:
|
||||
winRect.y = (Screen.height - winRect.height) / 2;
|
||||
break;
|
||||
case WindowInfoData.WindowInfoDataWindowVAlign.Bottom:
|
||||
winRect.y = Screen.height - winRect.height;
|
||||
break;
|
||||
}
|
||||
|
||||
SetActiveWindow(_hwnd);
|
||||
|
||||
if (!WindowInfo.showBorder)
|
||||
@@ -285,16 +237,16 @@ namespace UVC.Util
|
||||
|
||||
SetWindowPos(_hwnd, hWndInsertAfter, (int)winRect.x, (int)winRect.y, (int)winRect.width, (int)winRect.height, (uint)WindowToolsFlags.SWP_SHOWWINDOW);
|
||||
|
||||
if(!string.IsNullOrEmpty(WindowInfo.newTitle.Trim()))
|
||||
if (!string.IsNullOrEmpty(WindowInfo.title.Trim()))
|
||||
{
|
||||
SetWindowTitle(WindowInfo.newTitle);
|
||||
SetWindowTitle(WindowInfo.title);
|
||||
}
|
||||
|
||||
if(WindowInfo.initWindowState == 2)
|
||||
if (WindowInfo.initWindowState == WindowInfoData.WindowInfoDataWindowState.Minimized)
|
||||
{
|
||||
MinimizeWindow();
|
||||
}
|
||||
else if(WindowInfo.initWindowState == 3)
|
||||
else if (WindowInfo.initWindowState == WindowInfoData.WindowInfoDataWindowState.Maximized)
|
||||
{
|
||||
MaximizeWindow();
|
||||
}
|
||||
@@ -302,8 +254,7 @@ namespace UVC.Util
|
||||
{
|
||||
NormalizeWindow();
|
||||
}
|
||||
#endif
|
||||
yield return null;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -314,9 +265,6 @@ namespace UVC.Util
|
||||
/// <param name="y">창의 Y 좌표</param>
|
||||
public void SetWindowPosition(int x, int y)
|
||||
{
|
||||
WindowInfo.rect.x = x;
|
||||
WindowInfo.rect.y = y;
|
||||
|
||||
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
int hWndInsertAfter = (this.WindowInfo.alwaysTop) ? -1 : 0;
|
||||
SetWindowPos(_hwnd, hWndInsertAfter, x, y, 0, 0, (UInt32)(WindowToolsFlags.SWP_NOSIZE | WindowToolsFlags.SWP_NOZORDER | WindowToolsFlags.SWP_DRAWFRAME));
|
||||
@@ -330,9 +278,6 @@ namespace UVC.Util
|
||||
/// <param name="h">창의 높이</param>
|
||||
public void SetWindowSize(int w, int h)
|
||||
{
|
||||
WindowInfo.rect.width = w;
|
||||
WindowInfo.rect.height = h;
|
||||
|
||||
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
int hWndInsertAfter = (this.WindowInfo.alwaysTop) ? -1 : 0;
|
||||
SetWindowPos(_hwnd, hWndInsertAfter, 0, 0, w, h, (UInt32)(WindowToolsFlags.SWP_NOMOVE | WindowToolsFlags.SWP_NOZORDER | WindowToolsFlags.SWP_DRAWFRAME));
|
||||
@@ -352,8 +297,6 @@ namespace UVC.Util
|
||||
/// </summary>
|
||||
public void ShowBorder()
|
||||
{
|
||||
this.WindowInfo.showBorder = true;
|
||||
|
||||
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
SetActiveWindow(_hwnd);
|
||||
SetWindowLong(_hwnd, (int)GWLWindowStyles.GWL_STYLE, (int)_old);
|
||||
@@ -366,8 +309,6 @@ namespace UVC.Util
|
||||
/// </summary>
|
||||
public void HideBorder()
|
||||
{
|
||||
this.WindowInfo.showBorder = false;
|
||||
|
||||
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
SetActiveWindow(_hwnd);
|
||||
SetWindowLong(_hwnd, (int)GWLWindowStyles.GWL_STYLE, 1);
|
||||
@@ -392,20 +333,11 @@ namespace UVC.Util
|
||||
#endif
|
||||
}
|
||||
|
||||
//public void SetAlwaysTop(bool alwaysTop)
|
||||
//{
|
||||
// this.WindowInfo.alwaysTop = alwaysTop;
|
||||
// StopAllCoroutines();
|
||||
// StartCoroutine(Init());
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 윈도우 창을 기본 상태로 설정합니다.
|
||||
/// </summary>
|
||||
public void NormalizeWindow()
|
||||
{
|
||||
this.WindowInfo.initWindowState = 1;
|
||||
|
||||
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
ShowWindowAsync(_hwnd, 1);
|
||||
#endif
|
||||
@@ -416,8 +348,6 @@ namespace UVC.Util
|
||||
/// </summary>
|
||||
public void MinimizeWindow()
|
||||
{
|
||||
this.WindowInfo.initWindowState = 2;
|
||||
|
||||
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
ShowWindowAsync(_hwnd, 2);
|
||||
#endif
|
||||
@@ -428,8 +358,6 @@ namespace UVC.Util
|
||||
/// </summary>
|
||||
public void MaximizeWindow()
|
||||
{
|
||||
this.WindowInfo.initWindowState = 3;
|
||||
|
||||
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
ShowWindowAsync(_hwnd, 3);
|
||||
#endif
|
||||
@@ -441,8 +369,6 @@ namespace UVC.Util
|
||||
/// <param name="newTitle">새로운 창 제목</param>
|
||||
public void SetWindowTitle(string newTitle)
|
||||
{
|
||||
this.WindowInfo.newTitle = newTitle;
|
||||
|
||||
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
SetWindowText(_hwnd, newTitle);
|
||||
#endif
|
||||
@@ -471,7 +397,7 @@ namespace UVC.Util
|
||||
/// <returns>사용자가 선택한 버튼의 결과 (OK, CANCEL, ABORT, RETRY, IGNORE, YES, NO, TRY AGAIN)</returns>
|
||||
public static string Alert(string title, string message, string type = "OK")
|
||||
{
|
||||
//#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
#if UNITY_STANDALONE_WIN && !UNITY_EDITOR
|
||||
try
|
||||
{
|
||||
string DialogResult = string.Empty;
|
||||
@@ -555,7 +481,8 @@ namespace UVC.Util
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
//#endif
|
||||
#endif
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
|
||||
@@ -625,6 +552,6 @@ namespace UVC.Util
|
||||
|
||||
[DllImport("user32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
|
||||
static extern int MessageBox(IntPtr hwnd, String lpText, String lpCaption, uint uType);
|
||||
#endregion
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
20
Assets/StreamingAssets/AppConfig.json
Normal file
20
Assets/StreamingAssets/AppConfig.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"language": "ko",
|
||||
"fullScreenResolution": null,
|
||||
"window": {
|
||||
"fullScreenResolution": {
|
||||
"x": 1920,
|
||||
"y": 1080
|
||||
},
|
||||
"size": {
|
||||
"x": 1920,
|
||||
"y": 1080
|
||||
},
|
||||
"alwaysTop": false,
|
||||
"showBorder": true,
|
||||
"initWindowState": "FullScreen",
|
||||
"hAlign": "Center",
|
||||
"vAlign": "Center",
|
||||
"title": "Octopus"
|
||||
}
|
||||
}
|
||||
7
Assets/StreamingAssets/AppConfig.json.meta
Normal file
7
Assets/StreamingAssets/AppConfig.json.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5270f95da5f91444e969252bc6d85fd6
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,328 +1,336 @@
|
||||
{
|
||||
"languages": {
|
||||
"en-US": "English",
|
||||
"ko-KR": "한국어"
|
||||
"ko": "KOR",
|
||||
"en": "ENG"
|
||||
},
|
||||
"words": {
|
||||
"error": {
|
||||
"ko-KR": "에러",
|
||||
"en-US": "Error"
|
||||
"ko": "에러",
|
||||
"en": "Error"
|
||||
},
|
||||
"error_file_not_found": {
|
||||
"ko-KR": "파일을 찾을 수 없습니다.",
|
||||
"en-US": "File not found."
|
||||
"ko": "파일을 찾을 수 없습니다.",
|
||||
"en": "File not found."
|
||||
},
|
||||
"error_network_not": {
|
||||
"ko-KR": "네트워크 연결을 확인해주세요.",
|
||||
"en-US": "Please check your network connection."
|
||||
"ko": "네트워크 연결을 확인해주세요.",
|
||||
"en": "Please check your network connection."
|
||||
},
|
||||
"nosearch": {
|
||||
"ko": "찾을 수 없습니다.",
|
||||
"en": "Not found."
|
||||
},
|
||||
"search_location": {
|
||||
"ko": "위치 검색",
|
||||
"en": "Search Location"
|
||||
},
|
||||
"button_confirm": {
|
||||
"ko-KR": "확인",
|
||||
"en-US": "Confirm"
|
||||
"ko": "확인",
|
||||
"en": "Confirm"
|
||||
},
|
||||
"button_ok": {
|
||||
"ko-KR": "확인",
|
||||
"en-US": "OK"
|
||||
"ko": "확인",
|
||||
"en": "OK"
|
||||
},
|
||||
"button_yes": {
|
||||
"ko-KR": "예",
|
||||
"en-US": "Yes"
|
||||
"ko": "예",
|
||||
"en": "Yes"
|
||||
},
|
||||
"button_no": {
|
||||
"ko-KR": "아니오",
|
||||
"en-US": "No"
|
||||
"ko": "아니오",
|
||||
"en": "No"
|
||||
},
|
||||
"button_cancel": {
|
||||
"ko-KR": "취소",
|
||||
"en-US": "Cancel"
|
||||
"ko": "취소",
|
||||
"en": "Cancel"
|
||||
},
|
||||
"button_close": {
|
||||
"ko-KR": "닫기",
|
||||
"en-US": "Close"
|
||||
"ko": "닫기",
|
||||
"en": "Close"
|
||||
},
|
||||
"button_save": {
|
||||
"ko-KR": "저장",
|
||||
"en-US": "Save"
|
||||
"ko": "저장",
|
||||
"en": "Save"
|
||||
},
|
||||
"button_delete": {
|
||||
"ko-KR": "삭제",
|
||||
"en-US": "Delete"
|
||||
"ko": "삭제",
|
||||
"en": "Delete"
|
||||
},
|
||||
"button_edit": {
|
||||
"ko-KR": "편집",
|
||||
"en-US": "Edit"
|
||||
"ko": "편집",
|
||||
"en": "Edit"
|
||||
},
|
||||
"button_add": {
|
||||
"ko-KR": "추가",
|
||||
"en-US": "Add"
|
||||
"ko": "추가",
|
||||
"en": "Add"
|
||||
},
|
||||
"button_back": {
|
||||
"ko-KR": "뒤로",
|
||||
"en-US": "Back"
|
||||
"ko": "뒤로",
|
||||
"en": "Back"
|
||||
},
|
||||
"button_next": {
|
||||
"ko-KR": "다음",
|
||||
"en-US": "Next"
|
||||
"ko": "다음",
|
||||
"en": "Next"
|
||||
},
|
||||
"button_previous": {
|
||||
"ko-KR": "이전",
|
||||
"en-US": "Previous"
|
||||
"ko": "이전",
|
||||
"en": "Previous"
|
||||
},
|
||||
"button_finish": {
|
||||
"ko-KR": "완료",
|
||||
"en-US": "Finish"
|
||||
"ko": "완료",
|
||||
"en": "Finish"
|
||||
},
|
||||
"button_help": {
|
||||
"ko-KR": "도움말",
|
||||
"en-US": "Help"
|
||||
"ko": "도움말",
|
||||
"en": "Help"
|
||||
},
|
||||
"button_search": {
|
||||
"ko-KR": "검색",
|
||||
"en-US": "Search"
|
||||
"ko": "검색",
|
||||
"en": "Search"
|
||||
},
|
||||
"button_refresh": {
|
||||
"ko-KR": "새로 고침",
|
||||
"en-US": "Refresh"
|
||||
"ko": "새로 고침",
|
||||
"en": "Refresh"
|
||||
},
|
||||
"button_upload": {
|
||||
"ko-KR": "업로드",
|
||||
"en-US": "Upload"
|
||||
"ko": "업로드",
|
||||
"en": "Upload"
|
||||
},
|
||||
"button_download": {
|
||||
"ko-KR": "다운로드",
|
||||
"en-US": "Download"
|
||||
"ko": "다운로드",
|
||||
"en": "Download"
|
||||
},
|
||||
"button_print": {
|
||||
"ko-KR": "인쇄",
|
||||
"en-US": "Print"
|
||||
"ko": "인쇄",
|
||||
"en": "Print"
|
||||
},
|
||||
"button_settings": {
|
||||
"ko-KR": "설정",
|
||||
"en-US": "Settings"
|
||||
"ko": "설정",
|
||||
"en": "Settings"
|
||||
},
|
||||
"button_logout": {
|
||||
"ko-KR": "로그아웃",
|
||||
"en-US": "Logout"
|
||||
"ko": "로그아웃",
|
||||
"en": "Logout"
|
||||
},
|
||||
"button_login": {
|
||||
"ko-KR": "로그인",
|
||||
"en-US": "Login"
|
||||
"ko": "로그인",
|
||||
"en": "Login"
|
||||
},
|
||||
"button_register": {
|
||||
"ko-KR": "회원가입",
|
||||
"en-US": "Register"
|
||||
"ko": "회원가입",
|
||||
"en": "Register"
|
||||
},
|
||||
"button_view": {
|
||||
"ko-KR": "보기",
|
||||
"en-US": "View"
|
||||
"ko": "보기",
|
||||
"en": "View"
|
||||
},
|
||||
"button_select": {
|
||||
"ko-KR": "선택",
|
||||
"en-US": "Select"
|
||||
"ko": "선택",
|
||||
"en": "Select"
|
||||
},
|
||||
"button_clear": {
|
||||
"ko-KR": "지우기",
|
||||
"en-US": "Clear"
|
||||
"ko": "지우기",
|
||||
"en": "Clear"
|
||||
},
|
||||
"button_continue": {
|
||||
"ko-KR": "계속",
|
||||
"en-US": "Continue"
|
||||
"ko": "계속",
|
||||
"en": "Continue"
|
||||
},
|
||||
"button_apply": {
|
||||
"ko-KR": "적용",
|
||||
"en-US": "Apply"
|
||||
"ko": "적용",
|
||||
"en": "Apply"
|
||||
},
|
||||
"button_cancel_changes": {
|
||||
"ko-KR": "변경사항 취소",
|
||||
"en-US": "Cancel Changes"
|
||||
"ko": "변경사항 취소",
|
||||
"en": "Cancel Changes"
|
||||
},
|
||||
"button_confirm_changes": {
|
||||
"ko-KR": "변경사항 확인",
|
||||
"en-US": "Confirm Changes"
|
||||
"ko": "변경사항 확인",
|
||||
"en": "Confirm Changes"
|
||||
},
|
||||
"button_exit": {
|
||||
"ko-KR": "종료",
|
||||
"en-US": "Exit"
|
||||
"ko": "종료",
|
||||
"en": "Exit"
|
||||
},
|
||||
"button_yes_no": {
|
||||
"ko-KR": "예/아니오",
|
||||
"en-US": "Yes/No"
|
||||
"ko": "예/아니오",
|
||||
"en": "Yes/No"
|
||||
},
|
||||
"button_accept": {
|
||||
"ko-KR": "수락",
|
||||
"en-US": "Accept"
|
||||
"ko": "수락",
|
||||
"en": "Accept"
|
||||
},
|
||||
"button_decline": {
|
||||
"ko-KR": "거절",
|
||||
"en-US": "Decline"
|
||||
"ko": "거절",
|
||||
"en": "Decline"
|
||||
},
|
||||
"button_agree": {
|
||||
"ko-KR": "동의",
|
||||
"en-US": "Agree"
|
||||
"ko": "동의",
|
||||
"en": "Agree"
|
||||
},
|
||||
"button_disagree": {
|
||||
"ko-KR": "동의하지 않음",
|
||||
"en-US": "Disagree"
|
||||
"ko": "동의하지 않음",
|
||||
"en": "Disagree"
|
||||
},
|
||||
"button_submit": {
|
||||
"ko-KR": "제출",
|
||||
"en-US": "Submit"
|
||||
"ko": "제출",
|
||||
"en": "Submit"
|
||||
},
|
||||
"button_reset": {
|
||||
"ko-KR": "초기화",
|
||||
"en-US": "Reset"
|
||||
"ko": "초기화",
|
||||
"en": "Reset"
|
||||
},
|
||||
"button_retry": {
|
||||
"ko-KR": "재시도",
|
||||
"en-US": "Retry"
|
||||
"ko": "재시도",
|
||||
"en": "Retry"
|
||||
},
|
||||
"button_mute": {
|
||||
"ko-KR": "음소거",
|
||||
"en-US": "Mute"
|
||||
"ko": "음소거",
|
||||
"en": "Mute"
|
||||
},
|
||||
"button_brush_size": {
|
||||
"ko-KR": "브러시 크기",
|
||||
"en-US": "Brush Size"
|
||||
"ko": "브러시 크기",
|
||||
"en": "Brush Size"
|
||||
},
|
||||
"button_capture_screen": {
|
||||
"ko-KR": "화면 캡처",
|
||||
"en-US": "Capture Screen"
|
||||
"ko": "화면 캡처",
|
||||
"en": "Capture Screen"
|
||||
},
|
||||
"button_record_screen": {
|
||||
"ko-KR": "화면 녹화",
|
||||
"en-US": "Record Screen"
|
||||
"ko": "화면 녹화",
|
||||
"en": "Record Screen"
|
||||
},
|
||||
"menu": {
|
||||
"ko-KR": "메뉴",
|
||||
"en-US": "Menu"
|
||||
"ko": "메뉴",
|
||||
"en": "Menu"
|
||||
},
|
||||
"menu_file": {
|
||||
"ko-KR": "파일",
|
||||
"en-US": "File"
|
||||
"ko": "파일",
|
||||
"en": "File"
|
||||
},
|
||||
"menu_file_new": {
|
||||
"ko-KR": "새로 만들기",
|
||||
"en-US": "New"
|
||||
"ko": "새로 만들기",
|
||||
"en": "New"
|
||||
},
|
||||
"menu_file_new_project": {
|
||||
"ko-KR": "프로젝트...",
|
||||
"en-US": "Project..."
|
||||
"ko": "프로젝트...",
|
||||
"en": "Project..."
|
||||
},
|
||||
"menu_file_new_file": {
|
||||
"ko-KR": "파일...",
|
||||
"en-US": "File..."
|
||||
"ko": "파일...",
|
||||
"en": "File..."
|
||||
},
|
||||
"menu_file_open": {
|
||||
"ko-KR": "열기",
|
||||
"en-US": "Open"
|
||||
"ko": "열기",
|
||||
"en": "Open"
|
||||
},
|
||||
"menu_file_save": {
|
||||
"ko-KR": "저장",
|
||||
"en-US": "Save"
|
||||
"ko": "저장",
|
||||
"en": "Save"
|
||||
},
|
||||
"menu_file_save_as": {
|
||||
"ko-KR": "다른 이름으로 저장...",
|
||||
"en-US": "Save As..."
|
||||
"ko": "다른 이름으로 저장...",
|
||||
"en": "Save As..."
|
||||
},
|
||||
"menu_file_exit": {
|
||||
"ko-KR": "종료",
|
||||
"en-US": "Exit"
|
||||
"ko": "종료",
|
||||
"en": "Exit"
|
||||
},
|
||||
"menu_edit": {
|
||||
"ko-KR": "편집",
|
||||
"en-US": "Edit"
|
||||
"ko": "편집",
|
||||
"en": "Edit"
|
||||
},
|
||||
"menu_edit_undo": {
|
||||
"ko-KR": "실행 취소",
|
||||
"en-US": "Undo"
|
||||
"ko": "실행 취소",
|
||||
"en": "Undo"
|
||||
},
|
||||
"menu_edit_redo": {
|
||||
"ko-KR": "다시 실행",
|
||||
"en-US": "Redo"
|
||||
"ko": "다시 실행",
|
||||
"en": "Redo"
|
||||
},
|
||||
"menu_preferences": {
|
||||
"ko-KR": "환경설정",
|
||||
"en-US": "Preferences"
|
||||
"ko": "환경설정",
|
||||
"en": "Preferences"
|
||||
},
|
||||
"menu_language": {
|
||||
"ko-KR": "언어",
|
||||
"en-US": "Language"
|
||||
"ko": "언어",
|
||||
"en": "Language"
|
||||
},
|
||||
"menu_lang_korean": {
|
||||
"ko-KR": "한국어",
|
||||
"en-US": "Korean"
|
||||
"ko": "한국어",
|
||||
"en": "Korean"
|
||||
},
|
||||
"menu_lang_english": {
|
||||
"ko-KR": "영어",
|
||||
"en-US": "English"
|
||||
"ko": "영어",
|
||||
"en": "English"
|
||||
},
|
||||
"menu_help": {
|
||||
"ko-KR": "도움말",
|
||||
"en-US": "Help"
|
||||
"ko": "도움말",
|
||||
"en": "Help"
|
||||
},
|
||||
"menu_about": {
|
||||
"ko-KR": "정보",
|
||||
"en-US": "About"
|
||||
"ko": "정보",
|
||||
"en": "About"
|
||||
},
|
||||
"tool_pen": {
|
||||
"ko-KR": "펜",
|
||||
"en-US": "Pen"
|
||||
"ko": "펜",
|
||||
"en": "Pen"
|
||||
},
|
||||
"tool_eraser": {
|
||||
"ko-KR": "지우개",
|
||||
"en-US": "Eraser"
|
||||
"ko": "지우개",
|
||||
"en": "Eraser"
|
||||
},
|
||||
"project_settings": {
|
||||
"ko-KR": "프로젝트 설정",
|
||||
"en-US": "Project Setting"
|
||||
"ko": "프로젝트 설정",
|
||||
"en": "Project Setting"
|
||||
},
|
||||
"warning": {
|
||||
"ko-KR": "경고",
|
||||
"en-US": "Warning"
|
||||
"ko": "경고",
|
||||
"en": "Warning"
|
||||
},
|
||||
"brush_size_small": {
|
||||
"ko-KR": "작은 브러시",
|
||||
"en-US": "Small Brush"
|
||||
"ko": "작은 브러시",
|
||||
"en": "Small Brush"
|
||||
},
|
||||
"brush_size_medium": {
|
||||
"ko-KR": "중간 브러시",
|
||||
"en-US": "Medium Brush"
|
||||
"ko": "중간 브러시",
|
||||
"en": "Medium Brush"
|
||||
},
|
||||
"tooltip_save_button": {
|
||||
"ko-KR": "저장 버튼을 클릭하여 현재 작업을 저장합니다.",
|
||||
"en-US": "Click the save button to save your current work."
|
||||
"ko": "저장 버튼을 클릭하여 현재 작업을 저장합니다.",
|
||||
"en": "Click the save button to save your current work."
|
||||
},
|
||||
"tooltip_mute_button": {
|
||||
"ko-KR": "음소거 버튼을 클릭하여 소리를 끕니다.",
|
||||
"en-US": "Click the mute button to turn off the sound."
|
||||
"ko": "음소거 버튼을 클릭하여 소리를 끕니다.",
|
||||
"en": "Click the mute button to turn off the sound."
|
||||
},
|
||||
"tooltip_pen_tool": {
|
||||
"ko-KR": "펜 도구를 선택하여 그림을 그립니다.",
|
||||
"en-US": "Select the pen tool to draw."
|
||||
"ko": "펜 도구를 선택하여 그림을 그립니다.",
|
||||
"en": "Select the pen tool to draw."
|
||||
},
|
||||
"tooltip_eraser_tool": {
|
||||
"ko-KR": "지우개 도구를 선택하여 그림을 지웁니다.",
|
||||
"en-US": "Select the eraser tool to erase drawings."
|
||||
"ko": "지우개 도구를 선택하여 그림을 지웁니다.",
|
||||
"en": "Select the eraser tool to erase drawings."
|
||||
},
|
||||
"tooltip_brush_size": {
|
||||
"ko-KR": "브러시 크기를 조정합니다.",
|
||||
"en-US": "Adjust the brush size."
|
||||
"ko": "브러시 크기를 조정합니다.",
|
||||
"en": "Adjust the brush size."
|
||||
},
|
||||
"tooltip_brush_small": {
|
||||
"ko-KR": "작은 브러시를 선택합니다.",
|
||||
"en-US": "Select small brush."
|
||||
"ko": "작은 브러시를 선택합니다.",
|
||||
"en": "Select small brush."
|
||||
},
|
||||
"tooltip_brush_medium": {
|
||||
"ko-KR": "중간 브러시를 선택합니다.",
|
||||
"en-US": "Select medium brush."
|
||||
"ko": "중간 브러시를 선택합니다.",
|
||||
"en": "Select medium brush."
|
||||
},
|
||||
"tooltip_capture_screen": {
|
||||
"ko-KR": "화면을 캡처 합니다.",
|
||||
"en-US": "Capture the screen."
|
||||
"ko": "화면을 캡처 합니다.",
|
||||
"en": "Capture the screen."
|
||||
},
|
||||
"tooltip_record_screen": {
|
||||
"ko-KR": "화면을 녹화 합니다.",
|
||||
"en-US": "Record your screen."
|
||||
"ko": "화면을 녹화 합니다.",
|
||||
"en": "Record your screen."
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user