mqtt 저장 취소 기능 추가

This commit is contained in:
준학 노
2025-07-24 11:43:39 +09:00
parent 526190b118
commit baf55bcea6
5 changed files with 747 additions and 21 deletions

View File

@@ -249,8 +249,8 @@ RectTransform:
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: -35}
m_SizeDelta: {x: -10, y: -100}
m_AnchoredPosition: {x: 0, y: -17.5}
m_SizeDelta: {x: -10, y: -135}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8657145168271822924
CanvasRenderer:
@@ -507,6 +507,7 @@ RectTransform:
m_Children:
- {fileID: 7632821073387535058}
- {fileID: 6065905194162777582}
- {fileID: 6102786499613693342}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
@@ -700,6 +701,127 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2999647659011121039
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3457560666205727924}
- component: {fileID: 5520646342889436258}
- component: {fileID: 1493694069090738040}
- component: {fileID: 2435858640409509944}
m_Layer: 5
m_Name: Button_Cancel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3457560666205727924
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2999647659011121039}
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: 463537598736727304}
m_Father: {fileID: 6102786499613693342}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5520646342889436258
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2999647659011121039}
m_CullTransparentMesh: 1
--- !u!114 &1493694069090738040
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2999647659011121039}
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 &2435858640409509944
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2999647659011121039}
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: 1493694069090738040}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &3821524449556618221
GameObject:
m_ObjectHideFlags: 0
@@ -1133,6 +1255,142 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6173017372495297907}
m_CullTransparentMesh: 1
--- !u!1 &6413475414352171183
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 463537598736727304}
- component: {fileID: 2883396172157526221}
- component: {fileID: 6679511755430041390}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &463537598736727304
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6413475414352171183}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 3457560666205727924}
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 &2883396172157526221
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6413475414352171183}
m_CullTransparentMesh: 1
--- !u!114 &6679511755430041390
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6413475414352171183}
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: "\uCDE8\uC18C"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
m_sharedMaterial: {fileID: -7290017371581542385, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
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: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
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 &6472751727652752307
GameObject:
m_ObjectHideFlags: 0
@@ -1253,6 +1511,200 @@ MonoBehaviour:
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &6978174337547808242
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1417026541206240787}
- component: {fileID: 8236340988652898555}
- component: {fileID: 8980149262848137930}
- component: {fileID: 7114173669178339710}
m_Layer: 5
m_Name: Button_OK
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1417026541206240787
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6978174337547808242}
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: 6831990769631253965}
m_Father: {fileID: 6102786499613693342}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8236340988652898555
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6978174337547808242}
m_CullTransparentMesh: 1
--- !u!114 &8980149262848137930
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6978174337547808242}
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 &7114173669178339710
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6978174337547808242}
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: 8980149262848137930}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &7483474623970952469
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6102786499613693342}
- component: {fileID: 8884052470916437046}
- component: {fileID: 511402088849978217}
m_Layer: 5
m_Name: Panel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6102786499613693342
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7483474623970952469}
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: 1417026541206240787}
- {fileID: 3457560666205727924}
m_Father: {fileID: 5526574206638406261}
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: 15}
m_SizeDelta: {x: 0, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8884052470916437046
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7483474623970952469}
m_CullTransparentMesh: 1
--- !u!114 &511402088849978217
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7483474623970952469}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 4
m_Spacing: 0
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &7561748366802301766
GameObject:
m_ObjectHideFlags: 0
@@ -1507,6 +1959,142 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 5
--- !u!1 &8566646306119276977
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6831990769631253965}
- component: {fileID: 3758176428937614824}
- component: {fileID: 3803246564434105329}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6831990769631253965
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8566646306119276977}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1417026541206240787}
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 &3758176428937614824
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8566646306119276977}
m_CullTransparentMesh: 1
--- !u!114 &3803246564434105329
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8566646306119276977}
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: "\uC800\uC7A5"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
m_sharedMaterial: {fileID: -7290017371581542385, guid: 69abd87f38225ed46aa612577c25f379, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
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: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
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 &8774170053375736082
GameObject:
m_ObjectHideFlags: 0

View File

@@ -1,4 +1,4 @@
using System;
using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
@@ -33,5 +33,6 @@ namespace Studio.UI
{
InputField_Topic.text = topic.topic;
}
}
}

View File

@@ -1,14 +1,12 @@
using UnityEngine;
using XRLib.UI;
using TMPro;
using UnityEngine.UI;
using System.Collections.Generic;
using System;
using Studio.Util;
using Studio.Conifg;
using Studio.Connection;
using System.Linq;
using Studio.Connection;
using Studio.Manage;
using Studio.Util;
using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
namespace Studio.UI
{
@@ -22,10 +20,12 @@ namespace Studio.UI
private RectTransform TopicItemContent;
private RectTransform AddTopic;
private Image Image_Check;
private Sprite defaultSprite,connectedSprite, errorSprite;
private Sprite defaultSprite, connectedSprite, errorSprite;
private UI_InputTopicItem prf_InputTopicItem;
private List<UI_InputTopicItem> inputTopicItems = new List<UI_InputTopicItem>();
private List<UI_InputTopicItem> previnputTopicItems = new List<UI_InputTopicItem>();
public Action onMQTTTest;
public Action<UI_MQTTConnection> onRemoveMQTTConnectionItem;
@@ -46,12 +46,18 @@ namespace Studio.UI
inputTopicItems.Clear();
}
private void OnClickAddURLItemButton()
{
CreateTopicItem();
}
private UI_InputTopicItem CreateTopicItem()
{
var item = Instantiate(prf_InputTopicItem, TopicItemContent);
item.onRemoveItem += RemoveURLItem;
AddURLItem(item);
AddTopic.transform.SetAsLastSibling();
return item;
}
private void OnClickMQTTTest()
{
@@ -131,18 +137,20 @@ namespace Studio.UI
mqttConnection.port = InputField_Port.text;
foreach (var item in inputTopicItems)
{
{
var topic = item.GetTopic();
mqttConnection.topics.Add(topic);
}
return mqttConnection;
}
private MQTTConnection prevMQTTData;
public void SetMQTTConnection(MQTTConnection mqttConnection)
{
InputField_Domain.text = mqttConnection.domain;
InputField_Port.text = mqttConnection.port;
foreach(var topic in mqttConnection.topics)
foreach (var topic in mqttConnection.topics)
{
var item = Instantiate(prf_InputTopicItem, TopicItemContent);
item.onRemoveItem += RemoveURLItem;
@@ -152,5 +160,77 @@ namespace Studio.UI
AddTopic.transform.SetAsLastSibling();
}
}
public void RevertInfo()
{
InputField_Domain.text = prevMQTTData.domain;
InputField_Port.text = prevMQTTData.port;
ItemRemoveOrCreate();
RevertTopic();
ReSizeRect();
}
private void ReSizeRect()
{
var verticalLayoutGroup = TopicItemContent.GetComponent<VerticalLayoutGroup>();
var itemHeight = 0f;
foreach (var item in inputTopicItems)
{
itemHeight += item.rectTransform.rect.height;
}
var height = 180f + itemHeight + (verticalLayoutGroup.spacing * inputTopicItems.Count);
rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, height);
}
private void ItemRemoveOrCreate()
{
var gapCount = inputTopicItems.Count - prevMQTTData.topics.Count;
if (gapCount > 0)
{
for (int i = gapCount; i > 0; i--)
{
Destroy(inputTopicItems[i].gameObject);
inputTopicItems.Remove(inputTopicItems[i]);
}
}
else if (gapCount < 0)
{
var count = MathF.Abs(gapCount);
for (int i = 0; i < count; i++)
{
CreateTopicItem();
}
}
}
private void RevertTopic()
{
int index = 0;
foreach (var item in inputTopicItems)
{
//이전상태로 되돌리기 ;
item.SetTopic(prevMQTTData.topics[index]);
index++;
}
}
public void SaveItem()
{
if (prevMQTTData == null)
{
prevMQTTData = GetMQTTConnection();
}
prevMQTTData.domain = InputField_Domain.text;
prevMQTTData.port = InputField_Port.text;
var topics = new List<Topic>();
foreach (var item in inputTopicItems)
{
topics.Add(item.GetTopic());
}
prevMQTTData.topics = topics;
}
}
}

View File

@@ -1,9 +1,10 @@
using System.Collections.Generic;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
using System;
using Studio.Util;
using System.Linq;
namespace Studio.UI
{
@@ -18,23 +19,79 @@ namespace Studio.UI
public Action onClose;
public Button Button_Close;
private Button Button_OK;
private Button Button_Cancel;
private List<UI_MQTTConnection> prevMQTTConnectionItems = new List<UI_MQTTConnection>();
public void Active(bool isActive)
{
gameObject.SetActive(isActive);
if (!isActive)
{
onClose?.Invoke();
}
}
public void Open()
{
Active(true);
prevMQTTConnectionItems.Clear();
foreach(var mqttitem in mqttConnectionItems)
{
prevMQTTConnectionItems.Add(mqttitem);
}
}
private void Save()
{
foreach (var mqttitem in mqttConnectionItems)
{
mqttitem.SaveItem();
}
Active(false);
}
private void Close()
{
List<UI_MQTTConnection> item = new();
foreach(var mqttitem in mqttConnectionItems)
{
if(!prevMQTTConnectionItems.Contains(mqttitem))
{
item.Add(mqttitem);
}
}
for (int i = 0; i < item.Count; i++)
{
RemoveMQTTConnectionItem(item[i]);
}
RevertState();
Active(false);
}
private void RevertState()
{
foreach (var mqttitem in mqttConnectionItems)
{
mqttitem.RevertInfo();
}
}
public override void AfterAwake()
{
prf_MQTTConnectionItem = Resources.Load<UI_MQTTConnection>("Prefabs/UI/PRF_MQTTConnectionItem");
Button_AddMQTTConnectionItem.onClick.AddListener(OnClickAddAPIConnectionItemButton);
mqttConnectionItems.Clear();
var btns = GetComponentsInChildren<Button>();
Button_OK = btns.FirstOrDefault(x=>x.name.Equals(nameof(Button_OK)));
Button_Cancel = btns.FirstOrDefault(x => x.name.Equals(nameof(Button_Cancel)));
Button_Close.onClick.AddListener(() => Active(false));
Button_OK.onClick.AddListener(Save);
Button_Cancel.onClick.AddListener(Close);
Button_Close.onClick.AddListener(Close);
}
private void OnClickAddAPIConnectionItemButton()
{

View File

@@ -1,4 +1,4 @@
using Studio.Manage;
using Studio.Manage;
using System;
using TMPro;
using UnityEngine;
@@ -108,7 +108,7 @@ namespace Studio.UI
private void OnClickMQTTSetting()
{
Debug.Log("On TopMenu Click MQTT Setting");
CanvasManager.instance.GetCanvas<Canvas_Popup>().panel_mqttsetting.SetActive(true);
CanvasManager.instance.GetCanvas<Canvas_Popup>().panel_mqttsetting.Open();
}
private void OnClickAPISetting()