데이터 Type 이 Matching 일 때 항목 제거 기능 추가

This commit is contained in:
정영민
2025-05-07 14:20:41 +09:00
parent 0379f77337
commit 6658ed5dcd
5 changed files with 300 additions and 18 deletions

View File

@@ -171,6 +171,8 @@ namespace XED
}
Dropdown_DataList.AddOptions(displayNames);
Dropdown_DataList.onValueChanged.AddListener(OnValueChangedDataStorageDropDown);
AddDataSettingItem(DataStorageContent, AddAPIDataButtonArea, ref currentStorageSettingItem, dataStorageDatas[0]);
}
}

View File

@@ -20,6 +20,8 @@ namespace XED
public void SetData(DataList data, UI_DataTypeSelectedItem typeItem, UI_MatchingTypeDataItem matchingItem)
{
items.Clear();
dataTypeSelectedItem = typeItem;
originRectTransform = typeItem.rectTransform;
InputField_ClassName.text = data.name;
@@ -28,13 +30,14 @@ namespace XED
{
var item = Instantiate(typeItem, ClassDataContent);
item.SetItem(field, matchingItem);
item.onAddMatchingData += UpdateLayoutOnMatchDataAdded;
item.onAddMatchingData += UpdateLayoutOnMatchData;
item.onDestroyMatchingData += UpdateLayoutOnMatchData;
items.Add(item);
UpdateLayoutOnSettingDataAdded();
}
}
private void UpdateLayoutOnMatchDataAdded()
private void UpdateLayoutOnMatchData()
{
var height = originRectTransform.sizeDelta;
@@ -46,10 +49,6 @@ namespace XED
UpdateLayout();
onUpdateLayout?.Invoke();
}
private void UpdateLayout()
{
LayoutRebuilder.ForceRebuildLayoutImmediate(ClassDataContent);
}
private void UpdateLayoutOnSettingDataAdded()
{
var height = rectTransform.sizeDelta;
@@ -58,5 +57,9 @@ namespace XED
rectTransform.sizeDelta = height;
onUpdateLayout?.Invoke();
}
private void UpdateLayout()
{
LayoutRebuilder.ForceRebuildLayoutImmediate(ClassDataContent);
}
}
}

View File

@@ -32,6 +32,7 @@ namespace XED
private UI_MatchingTypeDataItem matchingTypeDataItem;
public Action onAddMatchingData;
public Action onDestroyMatchingData;
public void SetItem(Field field, UI_MatchingTypeDataItem matchingTypeDataItem)
{
@@ -75,23 +76,34 @@ namespace XED
{
var item = Instantiate(matchingTypeDataItem, MatchingItemContent);
item.SetItemData(data);
item.onDestory += OnDestoryAddDataItem;
SetPosition();
SetAddItem();
onAddMatchingData?.Invoke();
}
private void OnDestoryAddDataItem(UI_MatchingTypeDataItem item)
{
Destroy(item.gameObject);
SetRemoveItem();
onDestroyMatchingData?.Invoke();
}
private void OnTypeChanged(int value)
{
var isActive = options[value] == DataType.Matching.ToString();
Button_MatchingAddData.gameObject.SetActive(isActive);
}
private void SetPosition()
private void SetAddItem()
{
var pos = MatchingItemContent.transform.localPosition;
var height = rectTransform.sizeDelta;
pos.y += matchingTypeDataItem.rectTransform.rect.height / 2;
height.y += matchingTypeDataItem.rectTransform.rect.height;
rectTransform.sizeDelta = height;
}
private void SetRemoveItem()
{
var height = rectTransform.sizeDelta;
height.y -= matchingTypeDataItem.rectTransform.rect.height;
rectTransform.sizeDelta = height;
}
}

View File

@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
namespace XED
@@ -18,15 +19,21 @@ namespace XED
private TextMeshProUGUI OriginValue;
private TMP_InputField InputField_Value;
private TMP_Dropdown Dropdown_Type;
private Button Button_Delete;
private List<string> options = new List<string>();
public Action<UI_MatchingTypeDataItem> onDestory;
public void SetItemData(Field field)
{
OriginValue.SetText(field.value);
Button_Delete.onClick.AddListener(OnClickDeleteButton);
SetDropDownData();
}
private void OnClickDeleteButton()
{
onDestory?.Invoke(this);
}
private void SetDropDownData()
{
Dropdown_Type.ClearOptions();

View File

@@ -520,7 +520,7 @@ RectTransform:
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: 151, y: 0}
m_AnchoredPosition: {x: 147, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9211534956004439146
@@ -596,6 +596,7 @@ RectTransform:
- {fileID: 1455031793761567532}
- {fileID: 9211099258084078334}
- {fileID: 8874161391081077863}
- {fileID: 2191642984849926344}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
@@ -740,6 +741,142 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls: []
m_IsOn: 1
--- !u!1 &3315192169260768696
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6969014004258281676}
- component: {fileID: 2253118087514340539}
- component: {fileID: 6694381956011562051}
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 &6969014004258281676
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3315192169260768696}
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: 2191642984849926344}
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 &2253118087514340539
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3315192169260768696}
m_CullTransparentMesh: 1
--- !u!114 &6694381956011562051
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3315192169260768696}
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: X
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: 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 &3407738824440996719
GameObject:
m_ObjectHideFlags: 0
@@ -1185,6 +1322,127 @@ MonoBehaviour:
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &5164927536432706500
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2191642984849926344}
- component: {fileID: 8746866711444154965}
- component: {fileID: 3263428466372876591}
- component: {fileID: 4172719937451834374}
m_Layer: 5
m_Name: Button_Delete
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2191642984849926344
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5164927536432706500}
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: 6969014004258281676}
m_Father: {fileID: 8950974000275119016}
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: -17, y: 0}
m_SizeDelta: {x: 30, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8746866711444154965
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5164927536432706500}
m_CullTransparentMesh: 1
--- !u!114 &3263428466372876591
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5164927536432706500}
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 &4172719937451834374
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5164927536432706500}
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: 3263428466372876591}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &5439188539995376844
GameObject:
m_ObjectHideFlags: 0
@@ -1434,7 +1692,7 @@ RectTransform:
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: -82.5, y: 0}
m_AnchoredPosition: {x: -110.9, y: 0}
m_SizeDelta: {x: 155, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9206138578852395185
@@ -1956,10 +2214,10 @@ RectTransform:
- {fileID: 8984048505332678231}
m_Father: {fileID: 8950974000275119016}
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: 7.8, y: 0}
m_SizeDelta: {x: 120, y: 40}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 220, y: 0}
m_SizeDelta: {x: 100, y: 40}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &983826555862480086
CanvasRenderer: