diff --git a/sdk-intergration/Assets/Scenes/SampleScene.unity b/sdk-intergration/Assets/Scenes/SampleScene.unity index 12b2234..15162b9 100644 --- a/sdk-intergration/Assets/Scenes/SampleScene.unity +++ b/sdk-intergration/Assets/Scenes/SampleScene.unity @@ -1044,6 +1044,127 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 407966797} m_CullTransparentMesh: 1 +--- !u!1 &571824850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 571824851} + - component: {fileID: 571824854} + - component: {fileID: 571824853} + - component: {fileID: 571824852} + m_Layer: 5 + m_Name: L_Apple + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &571824851 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571824850} + 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: 816526478} + m_Father: {fileID: 1044920373} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &571824852 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571824850} + 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: 571824853} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &571824853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571824850} + 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!222 &571824854 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 571824850} + m_CullTransparentMesh: 1 --- !u!1 &698899139 GameObject: m_ObjectHideFlags: 0 @@ -1244,6 +1365,85 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 816060983} m_CullTransparentMesh: 1 +--- !u!1 &816526477 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 816526478} + - component: {fileID: 816526480} + - component: {fileID: 816526479} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &816526478 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 816526477} + 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: 571824851} + 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!114 &816526479 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 816526477} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 33 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: L_Apple +--- !u!222 &816526480 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 816526477} + m_CullTransparentMesh: 1 --- !u!1 &834002868 GameObject: m_ObjectHideFlags: 0 @@ -1877,17 +2077,20 @@ RectTransform: - {fileID: 1910171036} - {fileID: 1188788676} - {fileID: 1627053315} + - {fileID: 1668967320} - {fileID: 834002869} - {fileID: 1094138236} - {fileID: 698899140} - {fileID: 948068709} - {fileID: 1033467961} + - {fileID: 571824851} - {fileID: 1304993149} - {fileID: 29523099} - {fileID: 1110300853} - {fileID: 120435830} - {fileID: 1574191670} - {fileID: 1064161794} + - {fileID: 1686948820} m_Father: {fileID: 1451597222} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -2682,6 +2885,164 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1304993148} m_CullTransparentMesh: 1 +--- !u!1 &1310520050 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1310520051} + - component: {fileID: 1310520053} + - component: {fileID: 1310520052} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1310520051 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1310520050} + 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: 1686948820} + 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!114 &1310520052 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1310520050} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 33 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Signout +--- !u!222 &1310520053 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1310520050} + m_CullTransparentMesh: 1 +--- !u!1 &1420814130 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1420814131} + - component: {fileID: 1420814133} + - component: {fileID: 1420814132} + m_Layer: 5 + m_Name: Text (Legacy) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1420814131 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420814130} + 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: 1668967320} + 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!114 &1420814132 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420814130} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 33 + m_FontStyle: 0 + m_BestFit: 1 + m_MinSize: 10 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 0 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: Apple +--- !u!222 &1420814133 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420814130} + m_CullTransparentMesh: 1 --- !u!1 &1451597218 GameObject: m_ObjectHideFlags: 0 @@ -3185,6 +3546,248 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1652544066} m_CullTransparentMesh: 1 +--- !u!1 &1668967319 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1668967320} + - component: {fileID: 1668967323} + - component: {fileID: 1668967322} + - component: {fileID: 1668967321} + m_Layer: 5 + m_Name: AppleLogin + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1668967320 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668967319} + 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: 1420814131} + m_Father: {fileID: 1044920373} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1668967321 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668967319} + 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: 1668967322} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &1668967322 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668967319} + 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!222 &1668967323 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1668967319} + m_CullTransparentMesh: 1 +--- !u!1 &1686948819 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1686948820} + - component: {fileID: 1686948822} + - component: {fileID: 1686948821} + - component: {fileID: 1686948823} + m_Layer: 5 + m_Name: Signout + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1686948820 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1686948819} + 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: 1310520051} + m_Father: {fileID: 1044920373} + 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: 0, y: 0} + m_Pivot: {x: 0.5, y: 1} +--- !u!114 &1686948821 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1686948819} + 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!222 &1686948822 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1686948819} + m_CullTransparentMesh: 1 +--- !u!114 &1686948823 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1686948819} + 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: 1686948821} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &1788702878 GameObject: m_ObjectHideFlags: 0 @@ -3218,10 +3821,12 @@ MonoBehaviour: _loginGuestBtn: {fileID: 1910171037} _loginGoogleBtn: {fileID: 1188788679} _loginFbBtn: {fileID: 1627053318} + _loginAppleBtn: {fileID: 1668967321} _loginTokenBtn: {fileID: 834002870} _linkGoogleBtn: {fileID: 1094138239} _checkGoogleBtn: {fileID: 698899143} _linkFacbookBtn: {fileID: 948068712} + _linkAppleBtn: {fileID: 571824852} _checkFacbookBtn: {fileID: 1033467964} _logOutBtn: {fileID: 1304993150} _payTestBtn: {fileID: 120435831} @@ -3229,6 +3834,7 @@ MonoBehaviour: _gaTestBtn: {fileID: 29523100} _gaAppMaxBtn: {fileID: 1574191671} _ATTBtn: {fileID: 1064161797} + _signoutBtn: {fileID: 1686948823} _messageTxt: {fileID: 2070325010} --- !u!4 &1788702880 Transform: diff --git a/sdk-intergration/Assets/Scripts/SDKTest.cs b/sdk-intergration/Assets/Scripts/SDKTest.cs index 0aff496..e5f876a 100644 --- a/sdk-intergration/Assets/Scripts/SDKTest.cs +++ b/sdk-intergration/Assets/Scripts/SDKTest.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using AppsFlyerSDK; +using asap.core; using ThinkingData.Analytics; using tysdk; using UnityEngine; @@ -17,6 +18,8 @@ public class SDKTest : MonoBehaviour [SerializeField] private Button _loginFbBtn; [SerializeField] + private Button _loginAppleBtn; + [SerializeField] private Button _loginTokenBtn; [SerializeField] private Button _linkGoogleBtn; @@ -25,6 +28,8 @@ public class SDKTest : MonoBehaviour [SerializeField] private Button _linkFacbookBtn; [SerializeField] + private Button _linkAppleBtn; + [SerializeField] private Button _checkFacbookBtn; [SerializeField] private Button _logOutBtn; @@ -39,13 +44,20 @@ public class SDKTest : MonoBehaviour [SerializeField] private Button _ATTBtn; [SerializeField] + private Button _signoutBtn; + [SerializeField] private Text _messageTxt; void Start() { + Debug.Log("SDKTest Start"); //=============================================================================== //====================== Test Server =========================== UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com"); + IObjectSerializer serializer = new ObjectSerializer(); + IConfig config = new Config(serializer); + GContext.container.RegisterInstance(config); + config.Set("AGG_SERVER", "https://128-hwsfsdk-sdk-test01.qijihdhk.com"); //====================== Test Server =========================== //=============================================================================== // @@ -53,6 +65,9 @@ public class SDKTest : MonoBehaviour _loginGuestBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwGuest)); _loginGoogleBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwGoogle)); _loginFbBtn.onClick.AddListener(() => OnLogin(EAccoutType.hwFacebook)); +#if UNITY_IOS + _loginAppleBtn.onClick.AddListener(() => OnLogin(EAccoutType.Apple)); +#endif _loginTokenBtn.onClick.AddListener(OnLoginByToken); _logOutBtn.onClick.AddListener(OnLogout); _linkGoogleBtn.onClick.AddListener(OnLinkGoogle); @@ -64,6 +79,8 @@ public class SDKTest : MonoBehaviour _gaTestBtn.onClick.AddListener(OnGaBtn); _gaAppMaxBtn.onClick.AddListener(OnAppMaxBtn); _ATTBtn.onClick.AddListener(OnATTBtn); + _signoutBtn.onClick.AddListener(OnSignoutBtn); + Debug.Log("SDKTest Started"); } void Init() @@ -304,6 +321,11 @@ eb68f93a08156e04 _messageTxt.text = $"\n facebook account linked : {isSuccess}"; } + private void OnSignoutBtn() + { + TYSdkFacade.Instance.Signout(); + } + /* public void OnTaBtn() { diff --git a/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs b/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs index a2e36f2..829e8ee 100644 --- a/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs +++ b/sdk-intergration/Packages/tysdk/Editor/IOSBuildProcessor.cs @@ -58,6 +58,7 @@ namespace tysdk.editor var entitlementsContent = File.ReadAllText("Packages/tysdk/Files/Unity-iPhone.entitlements"); File.WriteAllText($"{root}/Unity-iPhone/Unity-iPhone.entitlements", entitlementsContent); + proj.AddCapability(target, PBXCapabilityType.SignInWithApple, "Unity-iPhone/Unity-iPhone.entitlements"); proj.AddCapability(target, PBXCapabilityType.KeychainSharing, "Unity-iPhone/Unity-iPhone.entitlements"); proj.AddCapability(target, PBXCapabilityType.PushNotifications, "Unity-iPhone/Unity-iPhone.entitlements"); //proj.AddCapability(target, PBXCapabilityType.AssociatedDomains, "Unity-iPhone/Unity-iPhone.entitlements"); @@ -69,6 +70,7 @@ namespace tysdk.editor proj.AddBuildProperty(target, "OTHER_LDFLAGS", "-all_load"); target = proj.TargetGuidByName("UnityFramework"); + proj.SetBuildProperty(target, "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES", "NO"); proj.AddBuildProperty(target, "OTHER_LDFLAGS", "-ObjC"); proj.AddFrameworkToProject(target, "AppTrackingTransparency.framework", false); @@ -102,6 +104,16 @@ namespace tysdk.editor urlTypesArray = infoDict.values["CFBundleURLTypes"].AsArray(); } + if (!infoDict.values.ContainsKey("NSUserActivityTypes")) { + PlistElementArray userActivityTypes = infoDict.CreateArray("NSUserActivityTypes"); + userActivityTypes.AddString("INSendMessageIntent"); + } + else + { + PlistElementArray userActivityTypes = infoDict.values["NSUserActivityTypes"].AsArray(); + userActivityTypes.AddString("INSendMessageIntent"); + } + PlistElementArray queriesSchemesArray = null; if (!infoDict.values.ContainsKey("LSApplicationQueriesSchemes")) { queriesSchemesArray = infoDict.CreateArray("LSApplicationQueriesSchemes"); diff --git a/sdk-intergration/Packages/tysdk/Files/Unity-iPhone.entitlements b/sdk-intergration/Packages/tysdk/Files/Unity-iPhone.entitlements index ecca168..426b948 100644 --- a/sdk-intergration/Packages/tysdk/Files/Unity-iPhone.entitlements +++ b/sdk-intergration/Packages/tysdk/Files/Unity-iPhone.entitlements @@ -2,6 +2,10 @@ + com.apple.developer.applesignin + + Default + com.apple.developer.usernotifications.communication keychain-access-groups diff --git a/sdk-intergration/Packages/tysdk/Plugins/iOS/RequestReview.mm b/sdk-intergration/Packages/tysdk/Plugins/iOS/RequestReview.mm new file mode 100644 index 0000000..e6be9e0 --- /dev/null +++ b/sdk-intergration/Packages/tysdk/Plugins/iOS/RequestReview.mm @@ -0,0 +1,15 @@ +// iOSReview.m +#import +#import + +extern "C" { + void RequestReview(const char* customReviewURL) { + if (@available(iOS 10.3, *)) { + [SKStoreReviewController requestReview]; + } else { + NSString *url = [NSString stringWithUTF8String:customReviewURL]; + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; + } + } +} + diff --git a/sdk-intergration/Packages/tysdk/Plugins/iOS/RequestReview.mm.meta b/sdk-intergration/Packages/tysdk/Plugins/iOS/RequestReview.mm.meta new file mode 100644 index 0000000..027adc4 --- /dev/null +++ b/sdk-intergration/Packages/tysdk/Plugins/iOS/RequestReview.mm.meta @@ -0,0 +1,37 @@ +fileFormatVersion: 2 +guid: b9382ac867441064e988d90a52bad1ca +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 1 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + iPhone: iOS + second: + enabled: 1 + settings: {} + - first: + tvOS: tvOS + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm b/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm index f5c738f..7029827 100644 --- a/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm +++ b/sdk-intergration/Packages/tysdk/Plugins/iOS/TYSDKInterface.mm @@ -98,6 +98,15 @@ extern "C" { }]; } + void UnityLoginByApple() + { + XYLoginReq *req = [XYLoginReq initWithLoginType:XYLoginWithApple]; + [XYApi XYLoginWith:req completionHandler:^(XYResp * _Nonnull resp) { + NSLog(@"TYSdkInterface UnityLoginByApple: %@", resp); + ProcessLoginResult(resp); + }]; + } + void UnityGetIdentityFun(const char* type) { @@ -138,6 +147,12 @@ extern "C" { [XYApi XYLogoutChannelWithType:XYLoginWithGuest]; } + void UnityLogoutApple() + { + NSLog(@"TYSdkInterface UnityLogoutApple"); + [XYApi XYLogoutChannelWithType:XYLoginWithApple]; + } + //支付 void UnityKnow(const char* userId,const char* productId,const char* productPrice,const char* productName,const char* productCount,const char* orderid,const char* appinfo) { @@ -294,4 +309,46 @@ extern "C" { { } + + void LinkApple() + { + + NSLog(@"TYSdkInterface LinkApple"); + NSDictionary * userDic = [XYApi XYGetCurrentUserDict]; + XYBindReq *bindReq = [XYBindReq initBindWithPlatform:XYBindApple UserId: [ [userDic objectForKey:@"userId"] unsignedIntegerValue]]; + [XYApi XYBindByBindReq:bindReq isUnbindGuest:@"false" completionHandler:^(XYResp * _Nonnull resp) { + if(resp.errCode == XYSuccess) + { + NSLog(@"TYSdkInterface LinkApple Success"); + UnitySendMessage("TYSdkFacade","LinkAccoutResult", "1"); + } + else + { + NSLog(@"TYSdkInterface LinkApple Faild"); + UnityLogoutFacebook(); + UnitySendMessage("TYSdkFacade","LinkAccoutResult", "0"); + + } + }]; + } + + void IsLinkedApple() + { + [XYApi CheckUserExist:XYBindApple completion:^(XYResp * _Nonnull resp) { + if (resp.errCode == XYSNSExist) { + UnitySendMessage("TYSdkFacade","CheckLinkResult", "1"); + }else if (resp.errCode == XYSNSNotExist){ + UnitySendMessage("TYSdkFacade","CheckLinkResult", "0"); + } else { + UnitySendMessage("TYSdkFacade","CheckLinkResult", "-1"); + } + }]; + } + + void UnlinkApple() + { + + } + + } diff --git a/sdk-intergration/Packages/tysdk/Runtime/TYSdkFacade.cs b/sdk-intergration/Packages/tysdk/Runtime/TYSdkFacade.cs index dc0baf3..19355be 100644 --- a/sdk-intergration/Packages/tysdk/Runtime/TYSdkFacade.cs +++ b/sdk-intergration/Packages/tysdk/Runtime/TYSdkFacade.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Security.Cryptography; +using System.Text; using System.Threading.Tasks; using asap.core; using Newtonsoft.Json.Linq; @@ -24,7 +26,8 @@ namespace tysdk private static Dictionary accoutTypeMap = new Dictionary(){ {"google", EAccoutType.hwGoogle}, {"fb", EAccoutType.hwFacebook}, - {"tyGuest", EAccoutType.hwGuest} + {"tyGuest", EAccoutType.hwGuest}, + {"ios13", EAccoutType.Apple} }; #endif @@ -262,6 +265,59 @@ namespace tysdk UnityBridgeFunc.SetGaUserInfo(strUserId); } + +#if UNITY_EDITOR + public async Task LinkAccount(EAccoutType accoutType) + { + await Task.Delay(300); + return true; + } +#elif UNITY_IOS + + public async Task LinkAccount(EAccoutType accoutType) + { + if (_accountInfo == null) return false; + if( _accountInfo.linkedAccout.Contains(accoutType)) return true; + + var taskSource = new TaskCompletionSource(); + callbacks.Add("LinkAccoutResult", (ITYSdkCallback callback) => + { + taskSource.SetResult((LinkResult)callback); + }); + + UnityBridgeFunc.LinkAccount(accoutType); + + var result = await taskSource.Task; + if (result.isSuccess) + { + var savedInfo = AccountInfo.GetSavedAccoutInfo(); + if(savedInfo != null) + { + savedInfo.AddLinkedAccount(accoutType); + savedInfo.Save(); + _accountInfo = savedInfo; + } + } + + return result.isSuccess; + } + + public void LinkAccoutResult(string codestr) + { + var result = new LinkResult() + { + isSuccess = codestr == "1" + }; + + if (callbacks.TryGetValue("LinkAccoutResult", out var action)) + { + action.Invoke(result); + callbacks.Remove("LoginResult"); + } + } + +#elif UNITY_ANDROID + public async Task LinkAccount(EAccoutType accoutType) { if (_accountInfo == null) return false; @@ -280,6 +336,8 @@ namespace tysdk return result.isSuccess; } +#endif + /// /// 检查是否已经绑定 /// @@ -327,5 +385,91 @@ namespace tysdk callbacks.Remove("CheckLinkResult"); } } + + public void Signout() + { + List list = new List(); + string defaultTyurl = "https://128-hwsfsdk-sdk-online01.qijihdhk.com"; + + IConfig config = GContext.container.Resolve(); + var tyurl = config.Get("AGG_SERVER", defaultTyurl); + + + string tycs = tyurl == defaultTyurl ? + "https://hwcsh.tygameworld.com /template/appCancel/note.html" + : + "https://customermanage-feature-test-web-test.tuyougame.cn/appCancel/note.html"; + + string sdkurl = $"sdkurl={tyurl}"; + list.Add(sdkurl); + + string appid = "appid=20587"; + list.Add(appid); + +#if UNITY_ANDROID + string clientid = "Android_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingMaster"; +#elif UNITY_IOS + string clientid = "IOS_5.00_tyGuest,facebook,appStore.appStore.0-hall20587.appStore.FishingMaster"; +#endif + list.Add($"clientid={clientid}"); + + string uid = $"uid={_accountInfo.userId}"; + list.Add(uid); + + string roleid = "roleid=0"; + list.Add(roleid); + + string gameid = "gameid=20587"; + list.Add(gameid); + + string cloudid = "cloudid=128"; + list.Add(cloudid); + + string gamename = "gamename=FishingTravel"; + list.Add(gamename); + + string certification = "certification=0"; + list.Add(certification); + + string ischannel = "ischannel=1"; + list.Add(ischannel); + + string tysdktoken = $"tysdktoken={_accountInfo.token}"; + list.Add(tysdktoken); + + list.Sort(); + + string listStr = string.Join("&", list.ToArray()); + string sign = listStr + + "csh-api-6dfa879490a249be9fbc92e97e4d898d-api-csh"; + //对sign进行MD5加密 + string signMd5 = CalculateMD5Hash(sign); + string url = $"{tycs}?{listStr}&sign={signMd5}&isAbroad=1"; + Debug.Log($"[TYSdkFacade:Signout] url \n{url}"); + Application.OpenURL(url); + } + + private string CalculateMD5Hash(string input) + { + // Create a new instance of the MD5CryptoServiceProvider object. + MD5 md5Hasher = MD5.Create(); + + // Convert the input string to a byte array and compute the hash. + byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input)); + + // Create a new Stringbuilder to collect the bytes + // and create a string. + StringBuilder sBuilder = new StringBuilder(); + + // Loop through each byte of the hashed data + // and format each one as a hexadecimal string. + for (int i = 0; i < data.Length; i++) + { + sBuilder.Append(data[i].ToString("x2")); + } + + // Return the hexadecimal string. + return sBuilder.ToString(); + } } } diff --git a/sdk-intergration/Packages/tysdk/Runtime/TYSdkModel.cs b/sdk-intergration/Packages/tysdk/Runtime/TYSdkModel.cs index cec85b5..93371ce 100644 --- a/sdk-intergration/Packages/tysdk/Runtime/TYSdkModel.cs +++ b/sdk-intergration/Packages/tysdk/Runtime/TYSdkModel.cs @@ -9,6 +9,9 @@ namespace tysdk hwGoogle, hwFacebook, hwGuest, +#if UNITY_IOS + Apple, +#endif none } @@ -23,6 +26,11 @@ namespace tysdk public int code; } + public class LinkResult : ITYSdkCallback + { + public bool isSuccess; + } + public class LinkCheckInfo : ITYSdkCallback { public int code; diff --git a/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs b/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs index 1b6a050..459595d 100644 --- a/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs +++ b/sdk-intergration/Packages/tysdk/Runtime/UnityBridgeFunc.cs @@ -220,6 +220,9 @@ namespace tysdk case EAccoutType.hwGuest: UnityLoginByGuest(); break; + case EAccoutType.Apple: + UnityLoginByApple(); + break; } } @@ -232,6 +235,9 @@ namespace tysdk [DllImport("__Internal")] public static extern void UnityLoginByFacebook(); + [DllImport("__Internal")] + public static extern void UnityLoginByApple(); + [DllImport("__Internal")] public static extern void UnityGetIdentityFun(string type); @@ -251,6 +257,9 @@ namespace tysdk case EAccoutType.hwGuest: UnityLogoutGuest(); break; + case EAccoutType.Apple: + UnityLogoutApple(); + break; } } @@ -263,6 +272,9 @@ namespace tysdk [DllImport("__Internal")] private static extern void UnityLogoutGuest(); + [DllImport("__Internal")] + private static extern void UnityLogoutApple(); + public static void LinkAccount(EAccoutType accoutType) { switch (accoutType) @@ -273,6 +285,9 @@ namespace tysdk case EAccoutType.hwFacebook: LinkFacebook(); break; + case EAccoutType.Apple: + LinkApple(); + break; } } @@ -293,6 +308,8 @@ namespace tysdk [DllImport("__Internal")] private static extern void UnlinkGoogle(); [DllImport("__Internal")] private static extern void LinkFacebook(); [DllImport("__Internal")] private static extern void UnlinkFacebook(); + [DllImport("__Internal")] private static extern void LinkApple(); + [DllImport("__Internal")] private static extern void UnlinkApple(); public static void LinkCheck(EAccoutType accoutType) { @@ -304,11 +321,16 @@ namespace tysdk case EAccoutType.hwFacebook: IsLinkedFacebook(); break; + + case EAccoutType.Apple: + IsLinkedApple(); + break; } } [DllImport("__Internal")] private static extern void IsLinkedGoogle(); [DllImport("__Internal")] private static extern void IsLinkedFacebook(); + [DllImport("__Internal")] private static extern void IsLinkedApple(); //支付 diff --git a/sdk-intergration/ProjectSettings/GvhProjectSettings.xml b/sdk-intergration/ProjectSettings/GvhProjectSettings.xml index 42602f6..47fce63 100644 --- a/sdk-intergration/ProjectSettings/GvhProjectSettings.xml +++ b/sdk-intergration/ProjectSettings/GvhProjectSettings.xml @@ -3,6 +3,4 @@ - - \ No newline at end of file