7/2 빌드 버전 #196

Merged
UVCXR merged 4 commits from pgd/20250701_build into main 2025-07-03 14:08:26 +09:00
6 changed files with 196 additions and 453 deletions
Showing only changes of commit 4f863885ab - Show all commits

View File

@@ -65,7 +65,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 092c4fc99ee91584d930b69a2926a277, type: 3}
m_Sprite: {fileID: 21300000, guid: c5802470c3fb4754bba86eef138daa73, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
@@ -942,6 +942,7 @@ GameObject:
- component: {fileID: 1294127454145776225}
- component: {fileID: 451971561218025839}
- component: {fileID: 4531525069399822389}
- component: {fileID: 1290421278383867588}
m_Layer: 0
m_Name: InputField_Port
m_TagString: Untagged
@@ -1108,6 +1109,19 @@ MonoBehaviour:
isAlert: 0
m_InputValidator: {fileID: 0}
m_ShouldActivateOnSelect: 1
--- !u!114 &1290421278383867588
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2436487502178914535}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6f95cd07bc2246945965157693796194, type: 3}
m_Name:
m_EditorClassIdentifier:
inputField: {fileID: 0}
--- !u!1 &3156314644122750241
GameObject:
m_ObjectHideFlags: 0
@@ -1233,12 +1247,10 @@ RectTransform:
- {fileID: 7802291444583939836}
- {fileID: 7140421003607322157}
- {fileID: 5319280790680272187}
- {fileID: 2409465826104916815}
- {fileID: 379597478942034218}
- {fileID: 5462667841529239013}
- {fileID: 1693887338035721121}
- {fileID: 8825133631318362178}
- {fileID: 8526485094171269008}
- {fileID: 8388329608737497676}
- {fileID: 4620234391147991730}
m_Father: {fileID: 0}
@@ -1246,7 +1258,7 @@ RectTransform:
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: 583, y: 220}
m_SizeDelta: {x: 583, y: 180}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2575719433142104857
CanvasRenderer:
@@ -1344,142 +1356,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4003389390085169589}
m_CullTransparentMesh: 1
--- !u!1 &4617730869522186888
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7115248029429128929}
- component: {fileID: 1863190725087911462}
- component: {fileID: 6090726597310434102}
m_Layer: 0
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7115248029429128929
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4617730869522186888}
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: 8526485094171269008}
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 &1863190725087911462
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4617730869522186888}
m_CullTransparentMesh: 1
--- !u!114 &6090726597310434102
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4617730869522186888}
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: 0
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Test
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: 4285558896
m_fontColor: {r: 0.4392157, g: 0.4392157, b: 0.4392157, 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: 16
m_fontSizeBase: 16
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 &5244346861865818874
GameObject:
m_ObjectHideFlags: 0
@@ -1809,142 +1685,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 40, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &6013032041850567338
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1423389078985016357}
- component: {fileID: 2990823342691973195}
- component: {fileID: 8893341559389614051}
m_Layer: 0
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1423389078985016357
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6013032041850567338}
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: 2409465826104916815}
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: 85, y: 0}
m_SizeDelta: {x: 120, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2990823342691973195
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6013032041850567338}
m_CullTransparentMesh: 1
--- !u!114 &8893341559389614051
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6013032041850567338}
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: Connection Test
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
m_sharedMaterial: {fileID: 6975767319296004534, guid: 4f170a218dfffe4489dc7ddd54bc15cf, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4285558896
m_fontColor: {r: 0.4392157, g: 0.4392157, b: 0.4392157, 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: 16
m_fontSizeBase: 16
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: 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 &6872735410097360928
GameObject:
m_ObjectHideFlags: 0
@@ -2230,7 +1970,7 @@ GameObject:
- component: {fileID: 8458748578651207766}
- component: {fileID: 4713296498140157138}
m_Layer: 0
m_Name: Button_ViewResults
m_Name: Button_TestAPI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -2691,51 +2431,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8376188551342810451}
m_CullTransparentMesh: 1
--- !u!1 &8443765769311335949
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2409465826104916815}
- component: {fileID: 2307470290499782099}
m_Layer: 0
m_Name: Connection Test
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2409465826104916815
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8443765769311335949}
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: 1423389078985016357}
m_Father: {fileID: 6029866318953262369}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 125, y: 70}
m_SizeDelta: {x: 250, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2307470290499782099
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8443765769311335949}
m_CullTransparentMesh: 1
--- !u!1 &8452262920164209762
GameObject:
m_ObjectHideFlags: 0
@@ -2872,127 +2567,6 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &8761055319915315992
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8526485094171269008}
- component: {fileID: 4708186645858634878}
- component: {fileID: 7345194138902725981}
- component: {fileID: 7494914256502275596}
m_Layer: 0
m_Name: Button_TestAPI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8526485094171269008
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8761055319915315992}
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: 7115248029429128929}
m_Father: {fileID: 6029866318953262369}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: 83.5, y: 70}
m_SizeDelta: {x: -333, y: 24}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4708186645858634878
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8761055319915315992}
m_CullTransparentMesh: 1
--- !u!114 &7345194138902725981
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8761055319915315992}
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: 027d3b1aa1504584db7344ecf13dfc85, 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 &7494914256502275596
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8761055319915315992}
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: 7345194138902725981}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &8829135613240903342
GameObject:
m_ObjectHideFlags: 0
@@ -3005,6 +2579,7 @@ GameObject:
- component: {fileID: 6749344978886352018}
- component: {fileID: 2032036743421240120}
- component: {fileID: 7558723559091652677}
- component: {fileID: 4643025905696753907}
m_Layer: 0
m_Name: InputField_Domain
m_TagString: Untagged
@@ -3171,3 +2746,16 @@ MonoBehaviour:
isAlert: 0
m_InputValidator: {fileID: 0}
m_ShouldActivateOnSelect: 1
--- !u!114 &4643025905696753907
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8829135613240903342}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 318ad98d4b818194da00221ee69745cd, type: 3}
m_Name:
m_EditorClassIdentifier:
inputField: {fileID: 0}

View File

@@ -48,6 +48,7 @@ namespace Studio.Conifg
request.DownloadSettings = new Best.HTTP.Request.Settings.DownloadSettings() { ContentStreamMaxBuffered = 1024 * 1024 * 200 };
request.MethodType = method;
headers.Clear();
AddHeader(request, "Content-Type", "application/json; charset=utf-8");
if (useAuth) AddHeader(request,"access-token", AuthService.Instance.Entiti.accessToken);

View File

@@ -12,6 +12,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using UnityEngine;
using static UnityEngine.Analytics.IAnalytic;
namespace Studio
{
@@ -246,6 +247,7 @@ namespace Studio
else if (data.State == APIState.Error)
{
//TODO 에러메세지
apiData.Clear();
Debug.Log($"APIState : Error , Message :{data.Message}");
}

View File

@@ -0,0 +1,129 @@
using Newtonsoft.Json.Linq;
using Studio.Setting.Connect;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;
using static UnityEngine.Analytics.IAnalytic;
namespace Studio
{
public class TemporaryAPIClient
{
private StudioRepository repository;
public Dictionary<string, StudioEntityWithState<List<Dictionary<string, string>>>> apiData = new();
public TemporaryAPIClient()
{
repository = new StudioRepository();
}
public async Task LoadBaseData(string url)
{
DateTime startTime = DateTime.Now;
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
sw.Start();
StudioEntityWithState<object> data = await repository.BaseInfo(url);
sw.Stop();
DateTime endTime = DateTime.Now;
var t = sw.ElapsedMilliseconds;
if (data.State.Equals(APIState.Loaded))
{
if (!apiData.ContainsKey(url))
apiData.Add(url, new());
data.lastRequestTime = startTime;
data.lastResponseTime = endTime;
data.elapsedTime = sw.Elapsed;
CheckAPIBoarder(data.Entity.ToString(), data.ReqSize, url, t);
var entity = UpdateEntity(url, data.Entity.ToString());
StudioEntityWithState<List<Dictionary<string, string>>> convertData = new(data.State, entity, data.ReqSize, data.Message);
apiData[url] = convertData;
}
else if (data.State == APIState.Error)
{
//TODO 에러메세지
Debug.Log($"APIState : Error , Message :{data.Message}");
}
// onAPIDataLoaded?.Invoke(url, data); // 나중에 클래스 밖으로 이동 필요
}
private void CheckAPIBoarder(string data, int reqSize, string url, long time)
{
var byteSize = System.Text.Encoding.Default.GetBytes(data).Length;
//if (maxElapsedTime < time)
//{
// maxElapsedTime = time;
// maxResponseTimeApi = url;
//}
//if (maxReponesSize < byteSize)
//{
// maxReponesSize = byteSize;
// maxResponseApi = url;
//}
//if (maxReuqestSize < reqSize)
//{
// maxReuqestSize = reqSize;
// maxReuqestApi = url;
//}
//totalRequestPacket += reqSize;
//totalResponsePacket += byteSize;
//totalElapsedTime += time;
}
public List<Dictionary<string, string>> UpdateEntity(string type, string data)
{
//Dcitionary 형으로 바꿈
JObject json = JObject.Parse(data);
foreach (JProperty prop in json.Children())
{
string key = prop.Name.ToString();
string value = prop.Value.ToString();
Debug.Log($"kEY : {key}, Value:{value}");
}
//TODO :리팩토링 필요함.
var datas = json["data"].ToString();
JObject test = JObject.Parse(datas);
var list = new List<Dictionary<string, string>>();
foreach (JProperty te1 in test.Children())
{
string key1 = te1.Name.ToString();
string value = te1.Value.ToString();
var split = value.ToString().Split('[');
var t = string.Empty;
if (split.Length > 1)
t = $"[{split[split.Length - 1]}";
else if (!split[split.Length - 1].Contains("{"))
{
Dictionary<string, string> item = new();
item.Add(key1, value);
list.Add(item);
continue;
}
else
t = $"[{split[split.Length - 1]}]";
JArray jarray = JArray.Parse(t);
foreach (JObject obj in jarray.Children())
{
Dictionary<string, string> keyvalue = new();
string id = string.Empty;
foreach (JProperty prop in obj.Children())
{
string key = prop.Name.ToString();
string value2 = prop.Value.ToString();
keyvalue.Add(key, value2);
}
list.Add(keyvalue);
}
}
return list;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8f6f9019b8bf5104ca51baa44c824081

View File

@@ -1,12 +1,13 @@
using UnityEngine;
using XRLib.UI;
using TMPro;
using UnityEngine.UI;
using System.Collections.Generic;
using System;
using Studio.Util;
using Studio.Auth;
using Studio.Conifg;
using Studio.Auth;
using Studio.Setting.Connect;
using Studio.Util;
using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
namespace Studio.UI
{
@@ -19,6 +20,8 @@ namespace Studio.UI
private Button Button_Remove;
private RectTransform URLItemContent;
private RectTransform AddURL;
private Image Image_Check;
private Sprite defaultSprite, connectedSprite, errorSprite;
private UI_InputURLItem prf_InputURLItem;
private List<UI_InputURLItem> inputURLItems = new List<UI_InputURLItem>();
@@ -31,11 +34,16 @@ namespace Studio.UI
public override void AfterAwake()
{
prf_InputURLItem = Resources.Load<UI_InputURLItem>("Prefabs/UI/PRF_InputURLItem");
defaultSprite = Resources.Load<Sprite>("Images/IMG_DefalutIcon");
connectedSprite = Resources.Load<Sprite>("Images/IMG_SuccessIcon");
errorSprite = Resources.Load<Sprite>("Images/IMG_FailIcon");
Button_AddURLItem.onClick.AddListener(OnClickAddURLItemButton);
Button_TestAPI.onClick.AddListener(OnClickTestAPIButton);
Button_Remove.onClick.AddListener(OnClickRemoveItemButton);
StudioService studioService = StudioService.instance;
studioService.onAPIDataLoaded += SetCheckImageSprite;
inputURLItems.Clear();
}
private void OnClickAddURLItemButton()
@@ -54,17 +62,30 @@ namespace Studio.UI
// ConfigConnected.APIDomain = InputField_Domain.text;
// ConfigConnected.APIPort = int.Parse(InputField_Port.text);
//StudioService.instance.ConnectMQTT();
Image_Check.sprite = defaultSprite;
string loginURL = $"http://{InputField_Domain.text}:{InputField_Port.text}/api/auth/token";
await AuthService.Instance.Login(loginURL, "sdi", "@SdiDT1!");
foreach (UI_InputURLItem item in inputURLItems)
{
string url = $"http://{InputField_Domain.text}:{InputField_Port.text}/api/{item.InputField_URL.text}";
await StudioService.instance.LoadBaseData(url);
//panel_DataRepository = FindAnyObjectByType<Panel_DataRepository>(FindObjectsInactive.Include);
//panel_DataRepository.apiConnected = true;
}
}
private void SetCheckImageSprite<T>(string name, StudioEntityWithState<T> value)
{
if(value.State.Equals(APIState.Loaded))
{
Image_Check.sprite = connectedSprite;
}
else if(value.State.Equals(APIState.Error))
{
Image_Check.sprite = errorSprite;
}
}
private void OnClickRemoveItemButton()
{
onRemoveAPIConnectionItem?.Invoke(this);