diff --git a/Assets/Art/UIPrefab/UIImageSelectMap.prefab b/Assets/Art/UIPrefab/UIImageSelectMap.prefab index f21a5820..8be7007f 100644 --- a/Assets/Art/UIPrefab/UIImageSelectMap.prefab +++ b/Assets/Art/UIPrefab/UIImageSelectMap.prefab @@ -159,9 +159,9 @@ RectTransform: m_Children: [] m_Father: {fileID: 8333043509333940129} 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_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 960, y: -540} m_SizeDelta: {x: 100, y: 100} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &4674184409838659037 @@ -185,7 +185,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 0} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -508,7 +508,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Content: {fileID: 6336473892143704609} - m_Horizontal: 1 + m_Horizontal: 0 m_Vertical: 1 m_MovementType: 1 m_Elasticity: 0.1 @@ -555,7 +555,8 @@ RectTransform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 8914544173708230318} m_Father: {fileID: 8333043509333940129} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} @@ -584,7 +585,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 0} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -726,7 +727,7 @@ RectTransform: 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.0008044916} + m_AnchoredPosition: {x: 0, y: 0.0005044027} m_SizeDelta: {x: 0, y: 300} m_Pivot: {x: 0, y: 1} --- !u!114 &1181747651547168674 @@ -749,7 +750,7 @@ MonoBehaviour: m_ChildAlignment: 0 m_StartCorner: 0 m_StartAxis: 0 - m_CellSize: {x: 100, y: 100} + m_CellSize: {x: 120, y: 120} m_Spacing: {x: 10, y: 10} m_Constraint: 0 m_ConstraintCount: 2 @@ -769,6 +770,81 @@ MonoBehaviour: CustomComponentName: Content CustomComment: mComponentName: RectTransform +--- !u!1 &4835406052127461971 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8914544173708230318} + - component: {fileID: 5613198329882542977} + - component: {fileID: 6312209549581201463} + m_Layer: 0 + m_Name: Pic + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8914544173708230318 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4835406052127461971} + 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: 5065642014798611877} + 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: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5613198329882542977 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4835406052127461971} + m_CullTransparentMesh: 1 +--- !u!114 &6312209549581201463 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4835406052127461971} + 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: 0 + 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 &4900020430220917441 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/UI/UIImageSelectMap.cs b/Assets/Scripts/UI/UIImageSelectMap.cs index cb10266d..cb29749c 100644 --- a/Assets/Scripts/UI/UIImageSelectMap.cs +++ b/Assets/Scripts/UI/UIImageSelectMap.cs @@ -33,6 +33,8 @@ namespace QFramework.Example GameObject enterRight; GameObject leftDragObj; Dictionary itemDatas = new Dictionary(); + + Dictionary leftObjAndRightObj = new Dictionary(); protected override void OnInit(IUIData uiData = null) { mData = uiData as UIImageSelectMapData ?? new UIImageSelectMapData(); @@ -47,21 +49,24 @@ namespace QFramework.Example LeftContent.RemoveAllChildren(); RightContent.RemoveAllChildren(); itemDatas.Clear(); + leftObjAndRightObj.Clear(); foreach (var item in mData.items) { var leftObj = GameObject.Instantiate(LeftItem, LeftContent); + leftObj.name = item.pic; var path = Global.imagePath + item.pic; loader.Add2Load(path.ToNetImageResName(), (success, res) => { if (success) { - leftObj.GetComponent().sprite = Utility.GetSprite(res.Asset as Texture2D); + leftObj.transform.Find("Pic").GetComponent().sprite = Utility.GetSprite(res.Asset as Texture2D); } }); leftObj.OnBeginDragEvent(LeftOnBeginDrag); leftObj.OnDragEvent(LeftOnDrag); leftObj.OnEndDragEvent(LeftOnEndDrag); + itemDatas.Add(leftObj.gameObject, item); var rightObj = GameObject.Instantiate(RightItem, RightContent); rightObj.name = item.pic; @@ -69,8 +74,7 @@ namespace QFramework.Example rightObj.rectTransform.sizeDelta = item.size; rightObj.OnPointerEnterEvent(RightOnEnter); rightObj.OnPointerExitEvent(RightOnExit); - - itemDatas.Add(leftObj.gameObject, item); + rightObj.OnPointerClickEvent(RightOnClick); } @@ -91,6 +95,27 @@ namespace QFramework.Example } + private void RightOnClick(PointerEventData data) + { + Transform trans = data.pointerClick.transform; + if (trans.childCount > 0) + { + var child = trans.GetChild(0).gameObject; + if (leftObjAndRightObj.ContainsKey(child)) + { + leftObjAndRightObj[child].SetActive(true); + leftObjAndRightObj.Remove(child); + GameObject.Destroy(child); + trans.GetComponent().color = new Color(1, 1, 1, 0); + + } + else + { + Debug.LogError("没有找到对应的左边物体"); + } + } + } + private void RightOnExit(PointerEventData data) { enterRight = null; @@ -104,8 +129,11 @@ namespace QFramework.Example private void LeftOnBeginDrag(PointerEventData data) { leftDragObj = data.pointerDrag; - moveObj = GameObject.Instantiate(LeftItem.gameObject, gameObject.transform); + moveObj = GameObject.Instantiate(leftDragObj, gameObject.transform); + moveObj.name = moveObj.name.Replace("(Clone)", ""); + moveObj.GetComponent().sizeDelta = LeftContent.GetComponent().cellSize; moveObj.GetComponent().raycastTarget = false; + } private void LeftOnEndDrag(PointerEventData data) @@ -124,6 +152,8 @@ namespace QFramework.Example } moveObj.transform.parent = enterRight.transform; moveObj.transform.localPosition = Vector3.zero; + leftObjAndRightObj.Add(moveObj, leftDragObj); + leftDragObj.SetActive(false); } else {