diff --git a/Assets/Resources/Prefabs/UI/Buttons.meta b/Assets/Resources/Prefabs/UI/Buttons.meta new file mode 100644 index 00000000..97f7ec59 --- /dev/null +++ b/Assets/Resources/Prefabs/UI/Buttons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5ad60b1404105d44a992ea2ab8e3f35f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/UI/Buttons/UILanguageButton.prefab b/Assets/Resources/Prefabs/UI/Buttons/UILanguageButton.prefab new file mode 100644 index 00000000..ba39a398 --- /dev/null +++ b/Assets/Resources/Prefabs/UI/Buttons/UILanguageButton.prefab @@ -0,0 +1,1210 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &238222977619879147 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3821678329481899938} + - component: {fileID: 4381782616513115696} + m_Layer: 5 + m_Name: Item + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3821678329481899938 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 238222977619879147} + 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: 1501948135408568943} + - {fileID: 2718129866199274839} + - {fileID: 4915086782924107062} + m_Father: {fileID: 703028475656766602} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4381782616513115696 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 238222977619879147} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, 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, g: 0.011764706, b: 0.1764706, a: 1} + m_PressedColor: {r: 0, g: 0.011764706, b: 0.1764706, a: 1} + m_SelectedColor: {r: 0, g: 0.011764706, b: 0.1764706, a: 1} + m_DisabledColor: {r: 0, g: 0.011764706, b: 0.1764706, 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: 4658506914575971518} + toggleTransition: 1 + graphic: {fileID: 1325594002568432994} + m_Group: {fileID: 0} + onValueChanged: + m_PersistentCalls: + m_Calls: [] + m_IsOn: 1 +--- !u!1 &476747922111644161 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4105576737578168130} + - component: {fileID: 984087900990580649} + - component: {fileID: 1627500409349584188} + - component: {fileID: 1176564743748845126} + m_Layer: 5 + m_Name: Template + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &4105576737578168130 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476747922111644161} + 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: 4909717836101914427} + - {fileID: 3373743940211046020} + m_Father: {fileID: 645519807822385127} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 2} + m_SizeDelta: {x: 0, y: 150} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &984087900990580649 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476747922111644161} + m_CullTransparentMesh: 1 +--- !u!114 &1627500409349584188 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476747922111644161} + 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: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + 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 &1176564743748845126 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476747922111644161} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 703028475656766602} + m_Horizontal: 0 + m_Vertical: 1 + m_MovementType: 2 + m_Elasticity: 0.1 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 4909717836101914427} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 3469595462109089924} + m_HorizontalScrollbarVisibility: 0 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: 0 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &882395667996748505 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1501948135408568943} + - component: {fileID: 7400930317347003496} + - component: {fileID: 4658506914575971518} + m_Layer: 5 + m_Name: Item Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &1501948135408568943 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 882395667996748505} + 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: 3821678329481899938} + 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: -8, y: -8} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7400930317347003496 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 882395667996748505} + m_CullTransparentMesh: 1 +--- !u!114 &4658506914575971518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 882395667996748505} + 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, g: 0, b: 0, a: 0.23921569} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + 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 &1797051944141189652 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 213554597436149423} + - component: {fileID: 8980221918954261759} + - component: {fileID: 4319661916928935979} + m_Layer: 5 + m_Name: Arrow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &213554597436149423 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797051944141189652} + 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: 645519807822385127} + 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: -10, y: 0} + m_SizeDelta: {x: 16, y: 16} + m_Pivot: {x: 1, y: 0.5} +--- !u!222 &8980221918954261759 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797051944141189652} + m_CullTransparentMesh: 1 +--- !u!114 &4319661916928935979 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1797051944141189652} + 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: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 6561c8152d504364f80de9acecbaa2cc, 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!1 &2454406153148401943 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1688553935695331173} + - component: {fileID: 7663678232068019134} + - component: {fileID: 6953957855583679197} + m_Layer: 5 + m_Name: Handle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1688553935695331173 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2454406153148401943} + 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: 9128867497734301265} + 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: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &7663678232068019134 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2454406153148401943} + m_CullTransparentMesh: 1 +--- !u!114 &6953957855583679197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2454406153148401943} + 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: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + 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!1 &3006304934049173255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2718129866199274839} + - component: {fileID: 2477339914993091030} + - component: {fileID: 1325594002568432994} + m_Layer: 5 + m_Name: Item Checkmark + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2718129866199274839 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3006304934049173255} + 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: 3821678329481899938} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 15, y: 0} + m_SizeDelta: {x: 20, y: 20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2477339914993091030 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3006304934049173255} + m_CullTransparentMesh: 1 +--- !u!114 &1325594002568432994 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3006304934049173255} + 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: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 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 &3299904584815164658 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9128867497734301265} + m_Layer: 5 + m_Name: Sliding Area + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9128867497734301265 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3299904584815164658} + 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: 1688553935695331173} + m_Father: {fileID: 3373743940211046020} + 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: -20, y: -20} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3785800383242714044 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 703028475656766602} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &703028475656766602 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3785800383242714044} + 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: 3821678329481899938} + m_Father: {fileID: 4909717836101914427} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 28} + m_Pivot: {x: 0.5, y: 1} +--- !u!1 &4023304302206567949 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4909717836101914427} + - component: {fileID: 7923701471483521520} + - component: {fileID: 8013661392776937714} + - component: {fileID: 5000763590035306148} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4909717836101914427 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4023304302206567949} + 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: 703028475656766602} + m_Father: {fileID: 4105576737578168130} + 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: -17, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &7923701471483521520 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4023304302206567949} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 0 +--- !u!222 &8013661392776937714 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4023304302206567949} + m_CullTransparentMesh: 1 +--- !u!114 &5000763590035306148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4023304302206567949} + 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: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 5b9f5f0f86e19744fbcae99d03a774a5, 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!1 &4121049089239917032 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 645519807822385127} + - component: {fileID: 6998836100763657499} + - component: {fileID: 3401751133703237379} + - component: {fileID: 1041581967906135930} + - component: {fileID: 6993504691953077341} + m_Layer: 5 + m_Name: UILanguageButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &645519807822385127 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4121049089239917032} + 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: 530665040611943220} + - {fileID: 213554597436149423} + - {fileID: 4105576737578168130} + 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: 111, y: 30} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &6998836100763657499 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4121049089239917032} + m_CullTransparentMesh: 1 +--- !u!114 &3401751133703237379 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4121049089239917032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 298abc08e9d2be149aebaa0a2d122619, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1041581967906135930 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4121049089239917032} + 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: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} + 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 &6993504691953077341 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4121049089239917032} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a, 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: 0.11764706, g: 0.20392157, b: 0.4, a: 1} + m_HighlightedColor: {r: 0.09411765, g: 0.16862746, b: 0.35686275, a: 1} + m_PressedColor: {r: 0.09411765, g: 0.16862746, b: 0.35686275, a: 1} + m_SelectedColor: {r: 0.09411765, g: 0.16862746, b: 0.35686275, a: 1} + m_DisabledColor: {r: 0.11764706, g: 0.20392157, b: 0.4, 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: 1041581967906135930} + m_Template: {fileID: 4105576737578168130} + m_CaptionText: {fileID: 8819539204293308730} + m_CaptionImage: {fileID: 0} + m_Placeholder: {fileID: 0} + m_ItemText: {fileID: 4003951170636837589} + m_ItemImage: {fileID: 0} + m_Value: 0 + m_MultiSelect: 0 + m_Options: + m_Options: + - m_Text: KOR + m_Image: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + - m_Text: ENG + m_Image: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] + m_AlphaFadeSpeed: 0.15 +--- !u!1 &6666823209943686380 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3373743940211046020} + - component: {fileID: 7980590978787974866} + - component: {fileID: 8281613988229329768} + - component: {fileID: 3469595462109089924} + m_Layer: 5 + m_Name: Scrollbar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3373743940211046020 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6666823209943686380} + 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: 9128867497734301265} + m_Father: {fileID: 4105576737578168130} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 0} + m_Pivot: {x: 1, y: 1} +--- !u!222 &7980590978787974866 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6666823209943686380} + m_CullTransparentMesh: 1 +--- !u!114 &8281613988229329768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6666823209943686380} + 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: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + 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 &3469595462109089924 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6666823209943686380} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a4db7a114972834c8e4117be1d82ba3, 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: 6953957855583679197} + m_HandleRect: {fileID: 1688553935695331173} + m_Direction: 2 + m_Value: 0 + m_Size: 1 + m_NumberOfSteps: 0 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &8707858354293957721 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4915086782924107062} + - component: {fileID: 8314754907159815933} + - component: {fileID: 4003951170636837589} + m_Layer: 5 + m_Name: Item Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4915086782924107062 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8707858354293957721} + 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: 3821678329481899938} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 7.5, y: -0.5} + m_SizeDelta: {x: -35, y: -3} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8314754907159815933 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8707858354293957721} + m_CullTransparentMesh: 1 +--- !u!114 &4003951170636837589 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8707858354293957721} + 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: KOR + 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: 4278190080 + m_fontColor: {r: 0, g: 0, b: 0, 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: 14 + m_fontSizeBase: 14 + 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: -2 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + 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 &8710140955813100424 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 530665040611943220} + - component: {fileID: 195613613609323586} + - component: {fileID: 8819539204293308730} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &530665040611943220 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8710140955813100424} + 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: 645519807822385127} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 5, y: 0} + m_SizeDelta: {x: 31, y: 24} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &195613613609323586 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8710140955813100424} + m_CullTransparentMesh: 1 +--- !u!114 &8819539204293308730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8710140955813100424} + 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: KOR + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, 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: 14 + m_fontSizeBase: 14 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 4 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: -2 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + 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} diff --git a/Assets/Resources/Prefabs/UI/Buttons/UILanguageButton.prefab.meta b/Assets/Resources/Prefabs/UI/Buttons/UILanguageButton.prefab.meta new file mode 100644 index 00000000..00c007ad --- /dev/null +++ b/Assets/Resources/Prefabs/UI/Buttons/UILanguageButton.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 12db500810bde2f42b6cc1aa17543fb5 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/UI/Buttons/UISearchInput.prefab b/Assets/Resources/Prefabs/UI/Buttons/UISearchInput.prefab new file mode 100644 index 00000000..7f84c5f5 --- /dev/null +++ b/Assets/Resources/Prefabs/UI/Buttons/UISearchInput.prefab @@ -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 diff --git a/Assets/Resources/Prefabs/UI/Buttons/UISearchInput.prefab.meta b/Assets/Resources/Prefabs/UI/Buttons/UISearchInput.prefab.meta new file mode 100644 index 00000000..14e63e33 --- /dev/null +++ b/Assets/Resources/Prefabs/UI/Buttons/UISearchInput.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ed442d88645f41448a9abe8128c26bbb +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/UI/Buttons/assets.meta b/Assets/Resources/Prefabs/UI/Buttons/assets.meta new file mode 100644 index 00000000..b57b73aa --- /dev/null +++ b/Assets/Resources/Prefabs/UI/Buttons/assets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c2607ee6393233469d54afd9b237601 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/UI/Buttons/assets/image_down_arrow.png b/Assets/Resources/Prefabs/UI/Buttons/assets/image_down_arrow.png new file mode 100644 index 00000000..292ebd7d Binary files /dev/null and b/Assets/Resources/Prefabs/UI/Buttons/assets/image_down_arrow.png differ diff --git a/Assets/Resources/Prefabs/UI/Buttons/assets/image_down_arrow.png.meta b/Assets/Resources/Prefabs/UI/Buttons/assets/image_down_arrow.png.meta new file mode 100644 index 00000000..2b13db2f --- /dev/null +++ b/Assets/Resources/Prefabs/UI/Buttons/assets/image_down_arrow.png.meta @@ -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: diff --git a/Assets/Resources/Prefabs/UI/Buttons/assets/image_topmenubar_search.png b/Assets/Resources/Prefabs/UI/Buttons/assets/image_topmenubar_search.png new file mode 100644 index 00000000..a24f2f18 Binary files /dev/null and b/Assets/Resources/Prefabs/UI/Buttons/assets/image_topmenubar_search.png differ diff --git a/Assets/Resources/Prefabs/UI/Buttons/assets/image_topmenubar_search.png.meta b/Assets/Resources/Prefabs/UI/Buttons/assets/image_topmenubar_search.png.meta new file mode 100644 index 00000000..125a7bf4 --- /dev/null +++ b/Assets/Resources/Prefabs/UI/Buttons/assets/image_topmenubar_search.png.meta @@ -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: diff --git a/Assets/Resources/Prefabs/UI/Factory/AlarmIconManager.prefab b/Assets/Resources/Prefabs/UI/Factory/AlarmIconManager.prefab index 9a8e1df0..e810e01e 100644 --- a/Assets/Resources/Prefabs/UI/Factory/AlarmIconManager.prefab +++ b/Assets/Resources/Prefabs/UI/Factory/AlarmIconManager.prefab @@ -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 diff --git a/Assets/Resources/log4net.editor.xml b/Assets/Resources/log4net.editor.xml index 95ed2b8c..85d6d73c 100644 --- a/Assets/Resources/log4net.editor.xml +++ b/Assets/Resources/log4net.editor.xml @@ -6,7 +6,7 @@ - + @@ -15,7 +15,7 @@ - + diff --git a/Assets/Runtime Transform Gizmos/Scripts/Runtime Package Common/Extensions/RectEx.cs b/Assets/Runtime Transform Gizmos/Scripts/Runtime Package Common/Extensions/RectEx.cs index 06ecdcc8..56d5ebdd 100644 --- a/Assets/Runtime Transform Gizmos/Scripts/Runtime Package Common/Extensions/RectEx.cs +++ b/Assets/Runtime Transform Gizmos/Scripts/Runtime Package Common/Extensions/RectEx.cs @@ -32,7 +32,7 @@ namespace RTG } /// - /// 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. /// public static Rect PlaceBelowCenterHrz(this Rect rect, Rect other) diff --git a/Assets/Scenes/SampleProject.unity b/Assets/Scenes/SampleProject.unity index 4229155e..ca6d5202 100644 --- a/Assets/Scenes/SampleProject.unity +++ b/Assets/Scenes/SampleProject.unity @@ -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 diff --git a/Assets/Scripts/SampleProject/AppMain.cs b/Assets/Scripts/SampleProject/AppMain.cs index 35aa9cf2..8505d63b 100644 --- a/Assets/Scripts/SampleProject/AppMain.cs +++ b/Assets/Scripts/SampleProject/AppMain.cs @@ -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 /// 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"); diff --git a/Assets/Scripts/SampleProject/Config/AppConfig.cs b/Assets/Scripts/SampleProject/Config/AppConfig.cs new file mode 100644 index 00000000..c438f1b8 --- /dev/null +++ b/Assets/Scripts/SampleProject/Config/AppConfig.cs @@ -0,0 +1,52 @@ +using Newtonsoft.Json; +using System.IO; +using UnityEngine; +using static UVC.Util.WindowTools; + +namespace SampleProject.Config +{ + /// + /// 애플리케이션의 설정을 관리하는 클래스입니다. AppConfig.json 파일에서 설정을 로드합니다. + /// + public class AppConfig + { + /// + /// 로드된 애플리케이션 설정을 담고 있는 정적 인스턴스입니다. + /// + public static AppConfig Config { get; private set; } + + /// + /// Windows 런타임 환경에서 StreamingAssets 폴더의 AppConfig.json 파일로부터 설정을 로드합니다. + /// + /// 설정 로드 성공 여부를 반환합니다. + public static bool LoadConfig() + { + string path = Path.Combine(Application.streamingAssetsPath, "AppConfig.json"); + if (File.Exists(path)) + { + string json = File.ReadAllText(path); + Config = JsonConvert.DeserializeObject(json); + Debug.Log($"AppConfig loaded from {path}"); + return Config != null; + } + else + { + Debug.LogError($"File not found: {path}"); + } + + return false; + } + + /// + /// 애플리케이션의 언어 설정입니다. + /// + [JsonProperty("language")] + public string Language { get; set; } + + /// + /// 애플리케이션의 창 관련 설정입니다. + /// + [JsonProperty("window")] + public WindowInfoData Window { get; set; } + } +} diff --git a/Assets/Scripts/SampleProject/Config/AppConfig.cs.meta b/Assets/Scripts/SampleProject/Config/AppConfig.cs.meta new file mode 100644 index 00000000..ef5315b2 --- /dev/null +++ b/Assets/Scripts/SampleProject/Config/AppConfig.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ac974d1504daf8645be61d0e44b60da8 \ No newline at end of file diff --git a/Assets/Scripts/SampleProject/UI/Menu/SampleProjectTopMenuController.cs b/Assets/Scripts/SampleProject/UI/Menu/SampleProjectTopMenuController.cs index 448d86e6..c3e2680f 100644 --- a/Assets/Scripts/SampleProject/UI/Menu/SampleProjectTopMenuController.cs +++ b/Assets/Scripts/SampleProject/UI/Menu/SampleProjectTopMenuController.cs @@ -73,8 +73,8 @@ namespace SampleProject.UI.Menu }), new MenuItemData("language", "menu_language", subMenuItems: new List { - 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")) // 예: 일본어 추가 }) })); diff --git a/Assets/Scripts/UVC/Extention/LayoutGroupEx.cs b/Assets/Scripts/UVC/Extention/LayoutGroupEx.cs index d70ce9af..d5a3f6c2 100644 --- a/Assets/Scripts/UVC/Extention/LayoutGroupEx.cs +++ b/Assets/Scripts/UVC/Extention/LayoutGroupEx.cs @@ -343,7 +343,7 @@ namespace UVC.Extension /// 기준이 될 부모 RectTransform입니다. /// /// [초보자 설명] - /// 이 메서드는 LayoutGroup 자체의 UI 영역 크기(`sizeDelta`)를 `parentRectTransform`의 실제 렌더링 크기(`rect.width`, `rect.height`)와 동일하게 만듭니다. + /// 이 메서드는 LayoutGroup 자체의 UI 영역 크기(`sizeDelta`)를 `parentRectTransform`의 실제 렌더링 크기(`size.width`, `size.height`)와 동일하게 만듭니다. /// LayoutGroup의 앵커 설정에 따라 `sizeDelta`의 의미가 달라질 수 있지만, 일반적으로 이 메서드는 LayoutGroup이 부모의 영역을 꽉 채우도록 만듭니다. /// /// diff --git a/Assets/Scripts/UVC/Factory/Alarm/AlarmDetailView.cs b/Assets/Scripts/UVC/Factory/Alarm/AlarmDetailView.cs index 9f47e0eb..25241a0f 100644 --- a/Assets/Scripts/UVC/Factory/Alarm/AlarmDetailView.cs +++ b/Assets/Scripts/UVC/Factory/Alarm/AlarmDetailView.cs @@ -51,7 +51,7 @@ namespace UVC.Factory.Alarm if (rect != null && detailTxt != null) { RectTransform textRect = detailTxt.GetComponent(); - // 현재 배경(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); diff --git a/Assets/Scripts/UVC/Factory/Alarm/AlarmIconManager.cs b/Assets/Scripts/UVC/Factory/Alarm/AlarmIconManager.cs index 00293549..4cf190c2 100644 --- a/Assets/Scripts/UVC/Factory/Alarm/AlarmIconManager.cs +++ b/Assets/Scripts/UVC/Factory/Alarm/AlarmIconManager.cs @@ -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축 오프셋입니다.")] diff --git a/Assets/Scripts/UVC/Factory/Alarm/AlarmManager.cs b/Assets/Scripts/UVC/Factory/Alarm/AlarmManager.cs index a3bb0b28..83a4c31d 100644 --- a/Assets/Scripts/UVC/Factory/Alarm/AlarmManager.cs +++ b/Assets/Scripts/UVC/Factory/Alarm/AlarmManager.cs @@ -26,17 +26,22 @@ namespace UVC.Factory.Alarm // 현재 활성화된 알람 UI들을 관리하는 딕셔너리입니다. // Key: 설비 ID (TRANSPORT_EQP_ID), Value: 해당 설비에 연결된 AlarmIconManager 인스턴스 private Dictionary activeAlarmUIs = new Dictionary(); - - // 테스트용으로 사용할 AGV 이름 리스트입니다. - private List agvNames = new List(); - - // 어떤 알람(Id)이 어떤 AGV(TRANSPORT_EQP_ID)에 할당되었는지 추적하기 위한 딕셔너리입니다. - private Dictionary alarmAgvNames = new Dictionary(); + // 씬에 있는 모든 FactoryObject를 관리하는 매니저의 참조입니다. // 알람 데이터에 포함된 설비 ID를 이용해 실제 3D 객체를 찾기 위해 사용됩니다. private FactoryObjectManager? dataManager; + private bool testMode = false; // 테스트 모드 여부를 나타내는 플래그입니다. + + // 테스트용으로 사용할 AGV 이름 리스트입니다. + private List agvNames = new List(); + + // 테스트용으로 어떤 알람(Id)이 어떤 AGV(TRANSPORT_EQP_ID)에 할당되었는지 추적하기 위한 딕셔너리입니다. + private Dictionary alarmAgvNames = new Dictionary(); + + // 테스트용으로, 새로 발생하는 알람에 AGV ID를 순차적으로 할당하기 위한 인덱스입니다. + private int agvIdx = 50; /// /// 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; + /// /// 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); // 해제 알람 처리 로직 호출 } } diff --git a/Assets/Scripts/UVC/Factory/Buttons.meta b/Assets/Scripts/UVC/Factory/Buttons.meta new file mode 100644 index 00000000..b2613f29 --- /dev/null +++ b/Assets/Scripts/UVC/Factory/Buttons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 07768d8eb217f394fb7610b292649f1c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UVC/Factory/Buttons/UILanguageButton.cs b/Assets/Scripts/UVC/Factory/Buttons/UILanguageButton.cs new file mode 100644 index 00000000..b418ab49 --- /dev/null +++ b/Assets/Scripts/UVC/Factory/Buttons/UILanguageButton.cs @@ -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 languages; + + + void Awake() + { + SceneMain.Instance.Initialized += OnSceneInitialized; + } + + private void OnSceneInitialized() + { + languages = LocalizationManager.Instance.AvailableDisplayLanguages; + var optoins = new List(); + foreach (var language in languages) + { + optoins.Add(new TMP_Dropdown.OptionData(language.Value)); + } + + dropDown = GetComponent(); + 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); + } + + } + +} diff --git a/Assets/Scripts/UVC/Factory/Buttons/UILanguageButton.cs.meta b/Assets/Scripts/UVC/Factory/Buttons/UILanguageButton.cs.meta new file mode 100644 index 00000000..e0179667 --- /dev/null +++ b/Assets/Scripts/UVC/Factory/Buttons/UILanguageButton.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 298abc08e9d2be149aebaa0a2d122619 \ No newline at end of file diff --git a/Assets/Scripts/UVC/Factory/Buttons/UISearchInput.cs b/Assets/Scripts/UVC/Factory/Buttons/UISearchInput.cs new file mode 100644 index 00000000..14e51776 --- /dev/null +++ b/Assets/Scripts/UVC/Factory/Buttons/UISearchInput.cs @@ -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(); + + button = GetComponentInChildren /// /// - /// // Words["error"]["en-US"] -> "Error" + /// // Words["error"]["en"] -> "Error" /// /// [JsonProperty("words")] diff --git a/Assets/Scripts/UVC/Locale/LocalizationManager.cs b/Assets/Scripts/UVC/Locale/LocalizationManager.cs index ef2a1f50..273e4dc1 100644 --- a/Assets/Scripts/UVC/Locale/LocalizationManager.cs +++ b/Assets/Scripts/UVC/Locale/LocalizationManager.cs @@ -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 availableLangCodes = LocalizationManager.Instance.GetAvailableLanguageCodes(); + /// List 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 /// /// 언어가 변경되었을 때 발생하는 이벤트의 델리게이트입니다. /// - /// 새롭게 설정된 언어 코드입니다 (예: "en-US", "ko-KR"). + /// 새롭게 설정된 언어 코드입니다 (예: "en", "ko"). public delegate void LanguageChangedHandler(string newLanguageCode); /// /// 현재 언어가 메서드를 통해 성공적으로 변경되었을 때 발생하는 이벤트입니다. @@ -109,6 +111,38 @@ namespace UVC.Locale /// public string CurrentLanguage => _currentLanguage; + /// + /// 사용 가능한 언어 목록에서 현재 언어의 인덱스를 가져옵니다. + /// + 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 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 반환 + } + } + } + /// /// 로드된 다국어 데이터에서 사용 가능한 모든 언어 코드 목록을 가져옵니다. /// 데이터가 로드되지 않았거나 번역 데이터가 비어있으면 빈 리스트를 반환합니다. @@ -125,6 +159,22 @@ namespace UVC.Locale } } + /// + /// 사용 가능한 표시 언어 컬렉션을 가져옵니다. + /// ["en"] = "English", ["ko"] = "한국어" 형식의 KeyValuePair 컬렉션입니다. + /// + public Dictionary AvailableDisplayLanguages + { + get + { + if (_dataSource?.Languages != null && _dataSource.Languages.Count > 0) + { + return new Dictionary(_dataSource.Languages.AsReadOnlyCollection()); + } + return new Dictionary(); + } + } + /// /// 지정된 언어 코드에 해당하는 표시 이름을 가져옵니다. /// @@ -142,22 +192,22 @@ namespace UVC.Locale /// /// 클래스의 새 인스턴스를 초기화합니다. - /// 기본 언어를 "ko-KR"로 설정합니다. + /// 기본 언어를 "ko"로 설정합니다. /// 생성자를 private으로 변경하여 외부에서의 직접적인 인스턴스 생성을 막습니다. /// - private LocalizationManager(string defaultLanguage = "ko-KR") + private LocalizationManager() { _dataSource = new LocalizationDataSource(); - // 기본 언어를 설정하거나, 시스템 설정을 따르도록 초기화할 수 있습니다. - _currentLanguage = defaultLanguage; // 예시 기본 언어 } /// /// 기본 경로(/locale.json)에서 다국어 데이터를 로드합니다. /// /// 데이터 로드 성공 시 true, 실패 시 false를 반환합니다. - 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 /// 현재 사용 언어를 변경합니다. /// 성공적으로 언어가 변경되면 이벤트가 발생합니다. /// - /// 설정할 언어 코드입니다 (예: "en-US", "ko-KR"). + /// 설정할 언어 코드입니다 (예: "en", "ko"). public void SetCurrentLanguage(string languageCode) { if (string.IsNullOrEmpty(languageCode)) diff --git a/Assets/Scripts/UVC/UI/Menu/TopMenuController.cs b/Assets/Scripts/UVC/UI/Menu/TopMenuController.cs index ad837bac..b3d2c85a 100644 --- a/Assets/Scripts/UVC/UI/Menu/TopMenuController.cs +++ b/Assets/Scripts/UVC/UI/Menu/TopMenuController.cs @@ -243,8 +243,8 @@ namespace UVC.UI.Menu model.MenuItems.Add(new MenuItemData("language", "menu_language", subMenuItems: new List { // 각 언어 메뉴 아이템에 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 { new MenuItemData("file_save_as", "menu_file_save_as", new DebugLogCommand("다른 이름으로 저장 선택됨 (Command 실행)")) @@ -291,7 +291,7 @@ namespace UVC.UI.Menu /// 새로운 언어 코드()가 적용되었음을 감지하고, /// 에 모든 메뉴 텍스트를 업데이트하도록 요청합니다. /// - /// 새롭게 설정된 언어 코드입니다 (예: "ko-KR", "en-US"). + /// 새롭게 설정된 언어 코드입니다 (예: "ko", "en"). protected virtual void HandleLanguageChanged(string newLanguageCode) { ULog.Debug($"언어 변경 감지됨: {newLanguageCode}. 메뉴 텍스트 업데이트를 시도합니다..."); diff --git a/Assets/Scripts/UVC/util/WindowTools.cs b/Assets/Scripts/UVC/util/WindowTools.cs index 4473b0cf..d60da42a 100644 --- a/Assets/Scripts/UVC/util/WindowTools.cs +++ b/Assets/Scripts/UVC/util/WindowTools.cs @@ -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 환경에서 실행 시 유용한 창 관리 기능을 제공합니다. /// - public class WindowTools : SingletonApp + public class WindowTools : Singleton { [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; // 초기 창 높이 /// - /// Unity 애플리케이션 시작 시 창의 초기 위치와 크기를 설정합니다. + /// 창의 초기 위치와 크기를 설정합니다. /// - 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 } - /// - /// - /// 애플리케이션 종료 시 창의 크기를 저장합니다. - /// - 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); - // } - //} - - /// /// 창 초기화 작업을 수행합니다. /// - /// 코루틴 - 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 /// 창의 Y 좌표 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 /// 창의 높이 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 /// 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 /// 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()); - //} - /// /// 윈도우 창을 기본 상태로 설정합니다. /// public void NormalizeWindow() { - this.WindowInfo.initWindowState = 1; - #if UNITY_STANDALONE_WIN && !UNITY_EDITOR ShowWindowAsync(_hwnd, 1); #endif @@ -416,8 +348,6 @@ namespace UVC.Util /// public void MinimizeWindow() { - this.WindowInfo.initWindowState = 2; - #if UNITY_STANDALONE_WIN && !UNITY_EDITOR ShowWindowAsync(_hwnd, 2); #endif @@ -428,8 +358,6 @@ namespace UVC.Util /// public void MaximizeWindow() { - this.WindowInfo.initWindowState = 3; - #if UNITY_STANDALONE_WIN && !UNITY_EDITOR ShowWindowAsync(_hwnd, 3); #endif @@ -441,8 +369,6 @@ namespace UVC.Util /// 새로운 창 제목 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 /// 사용자가 선택한 버튼의 결과 (OK, CANCEL, ABORT, RETRY, IGNORE, YES, NO, TRY AGAIN) 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; } @@ -609,7 +536,7 @@ namespace UVC.Util [DllImport("user32.dll")] static extern bool GetWindowRect(IntPtr hwnd, ref Rect2 rectangle); - + public struct Rect2 { @@ -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 } } \ No newline at end of file diff --git a/Assets/StreamingAssets/AppConfig.json b/Assets/StreamingAssets/AppConfig.json new file mode 100644 index 00000000..7b7bcafe --- /dev/null +++ b/Assets/StreamingAssets/AppConfig.json @@ -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" + } +} \ No newline at end of file diff --git a/Assets/StreamingAssets/AppConfig.json.meta b/Assets/StreamingAssets/AppConfig.json.meta new file mode 100644 index 00000000..e63f3c5d --- /dev/null +++ b/Assets/StreamingAssets/AppConfig.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5270f95da5f91444e969252bc6d85fd6 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/StreamingAssets/locale.json b/Assets/StreamingAssets/locale.json index 4cc7080d..b7759b80 100644 --- a/Assets/StreamingAssets/locale.json +++ b/Assets/StreamingAssets/locale.json @@ -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." } } } \ No newline at end of file