From 9250e4da0b43ca313f23e7eaba757dfba59983ad Mon Sep 17 00:00:00 2001 From: kimura Date: Thu, 9 Sep 2021 12:59:01 +0900 Subject: [PATCH] =?UTF-8?q?listview=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/shopping/Prefabs/Window.prefab | 73 +++++++- .../Scenes/shopping/Scripts/ShopListView.cs | 51 ++++++ .../shopping/Scripts/ShopListView.cs.meta | 3 + .../MyGame/Scenes/shopping/shopping.unity | 166 ++++++++++++++++++ 4 files changed, 290 insertions(+), 3 deletions(-) create mode 100644 popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopListView.cs create mode 100644 popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopListView.cs.meta diff --git a/popcorn/Assets/MyGame/Scenes/shopping/Prefabs/Window.prefab b/popcorn/Assets/MyGame/Scenes/shopping/Prefabs/Window.prefab index 57055da7..07cf05f1 100644 --- a/popcorn/Assets/MyGame/Scenes/shopping/Prefabs/Window.prefab +++ b/popcorn/Assets/MyGame/Scenes/shopping/Prefabs/Window.prefab @@ -107,8 +107,8 @@ RectTransform: m_Father: {fileID: 2912042419496726409} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0.708} - m_AnchorMax: {x: 1, y: 0.708} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} m_AnchoredPosition: {x: -0.099999905, y: 0} m_SizeDelta: {x: 52, y: 52} m_Pivot: {x: 0.5, y: 0.5} @@ -298,7 +298,7 @@ RectTransform: m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: -691.30005} - m_SizeDelta: {x: 18, y: 1423.6} + m_SizeDelta: {x: 18, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2912042418150870075 MonoBehaviour: @@ -349,6 +349,7 @@ GameObject: m_Component: - component: {fileID: 2912042418274684491} - component: {fileID: 2912042418274684488} + - component: {fileID: 7513283637877447830} m_Layer: 5 m_Name: Window m_TagString: Untagged @@ -392,6 +393,22 @@ MonoBehaviour: m_EditorClassIdentifier: materialTab: {fileID: 2912042418702301917} recipeTab: {fileID: 2912042418828803472} +--- !u!114 &7513283637877447830 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2912042418274684490} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f77652346b24cc9b0d5da516979f736, type: 3} + m_Name: + m_EditorClassIdentifier: + scrollRect: {fileID: 0} + itemViewPrefab: {fileID: 8023342812979047025, guid: 907730abf7bed70469027e0e8aba6fd9, + type: 3} + headerView: {fileID: 2912042418274684488} --- !u!1 &2912042418451981111 GameObject: m_ObjectHideFlags: 0 @@ -479,6 +496,7 @@ GameObject: - component: {fileID: 2912042418533327955} - component: {fileID: 2912042418533327954} - component: {fileID: 36571976361706991} + - component: {fileID: 1177411631608172118} m_Layer: 5 m_Name: Scrollbar Vertical m_TagString: Untagged @@ -593,6 +611,20 @@ MonoBehaviour: m_OnValueChanged: m_PersistentCalls: m_Calls: [] +--- !u!114 &1177411631608172118 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2912042418533327959} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4c7fb96966974f86a04af9747989d1f9, type: 3} + m_Name: + m_EditorClassIdentifier: + scrollRect: {fileID: 2912042418150409388} + verticalSlider: {fileID: 36571976361706991} --- !u!1 &2912042418702301918 GameObject: m_ObjectHideFlags: 0 @@ -1699,6 +1731,11 @@ PrefabInstance: propertyPath: m_Name value: Frame (4) objectReference: {fileID: 0} + - target: {fileID: 8536603423520130722, guid: 907730abf7bed70469027e0e8aba6fd9, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 907730abf7bed70469027e0e8aba6fd9, type: 3} --- !u!224 &6778406392151677628 stripped @@ -1824,6 +1861,11 @@ PrefabInstance: propertyPath: m_Name value: Frame (3) objectReference: {fileID: 0} + - target: {fileID: 8536603423520130722, guid: 907730abf7bed70469027e0e8aba6fd9, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 907730abf7bed70469027e0e8aba6fd9, type: 3} --- !u!224 &6778406391892073053 stripped @@ -1949,6 +1991,11 @@ PrefabInstance: propertyPath: m_Name value: Frame (5) objectReference: {fileID: 0} + - target: {fileID: 8536603423520130722, guid: 907730abf7bed70469027e0e8aba6fd9, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 907730abf7bed70469027e0e8aba6fd9, type: 3} --- !u!224 &6778406391604408560 stripped @@ -2074,6 +2121,11 @@ PrefabInstance: propertyPath: m_Name value: Frame (6) objectReference: {fileID: 0} + - target: {fileID: 8536603423520130722, guid: 907730abf7bed70469027e0e8aba6fd9, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 907730abf7bed70469027e0e8aba6fd9, type: 3} --- !u!224 &6778406392636603953 stripped @@ -2199,6 +2251,11 @@ PrefabInstance: propertyPath: m_Name value: Frame (2) objectReference: {fileID: 0} + - target: {fileID: 8536603423520130722, guid: 907730abf7bed70469027e0e8aba6fd9, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 907730abf7bed70469027e0e8aba6fd9, type: 3} --- !u!224 &6778406392265446442 stripped @@ -2324,6 +2381,11 @@ PrefabInstance: propertyPath: m_Name value: Frame (1) objectReference: {fileID: 0} + - target: {fileID: 8536603423520130722, guid: 907730abf7bed70469027e0e8aba6fd9, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 907730abf7bed70469027e0e8aba6fd9, type: 3} --- !u!224 &6778406392476026602 stripped @@ -2453,6 +2515,11 @@ PrefabInstance: propertyPath: m_Name value: Frame objectReference: {fileID: 0} + - target: {fileID: 8536603423520130722, guid: 907730abf7bed70469027e0e8aba6fd9, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 8536603424418812070, guid: 907730abf7bed70469027e0e8aba6fd9, type: 3} propertyPath: m_IsActive diff --git a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopListView.cs b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopListView.cs new file mode 100644 index 00000000..682ca8f7 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopListView.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using UniRx; +using UnityEngine; +using UnityEngine.UI; + +public class ShopListView : MonoBehaviour +{ + [SerializeField] private ScrollRect scrollRect; + [SerializeField] private ShopItemView itemViewPrefab; + [SerializeField] private ShopHeaderView headerView; + private List<(ShopHeaderTab, RectTransform)> tabs = new List<(ShopHeaderTab, RectTransform)>(); + + private void Awake() + { + while (scrollRect.content.childCount > 0) + { + DestroyImmediate(scrollRect.content.GetChild(0).gameObject); + } + tabs.Add((ShopHeaderTab.Recipe, scrollRect.content)); + } + + private void Start() + { + headerView.Tab.Subscribe(tab => + { + // scrollRect.verticalNormalizedPosition = 1; + tabs.ForEach(x => + { + x.Item2.gameObject.SetActive(x.Item1 == tab); + if (x.Item1 == tab) + { + scrollRect.content = x.Item2; + } + }); + }).AddTo(this); + } + + public ShopItemView AddItem() + { + var youTab = ShopHeaderTab.Material; + var index = tabs.FindIndex(x => x.Item1 == youTab); + if (index == -1) + { + index = tabs.Count; + tabs.Add((youTab, Instantiate(scrollRect.content, scrollRect.content.parent))); + } + var itemView = Instantiate(itemViewPrefab, tabs[index].Item2); + return itemView; + } +} diff --git a/popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopListView.cs.meta b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopListView.cs.meta new file mode 100644 index 00000000..b25c858d --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/shopping/Scripts/ShopListView.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4f77652346b24cc9b0d5da516979f736 +timeCreated: 1631099811 \ No newline at end of file diff --git a/popcorn/Assets/MyGame/Scenes/shopping/shopping.unity b/popcorn/Assets/MyGame/Scenes/shopping/shopping.unity index 34829334..5fb1d3be 100644 --- a/popcorn/Assets/MyGame/Scenes/shopping/shopping.unity +++ b/popcorn/Assets/MyGame/Scenes/shopping/shopping.unity @@ -462,6 +462,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: e7b7e1a23513042b0bbac3c91ccab081, type: 3} m_Name: m_EditorClassIdentifier: + listView: {fileID: 1188209735} + headerView: {fileID: 1188209734} --- !u!114 &980038344 MonoBehaviour: m_ObjectHideFlags: 0 @@ -872,6 +874,26 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1098091308} m_Modifications: + - target: {fileID: 2912042418010952920, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2912042418010952920, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2912042418010952920, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2912042418010952920, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 2912042418112398164, guid: 2ceb27afa38c74b76b130f23621f7f50, type: 3} propertyPath: m_AnchorMax.x @@ -1042,8 +1064,152 @@ PrefabInstance: propertyPath: m_SizeDelta.x value: 0 objectReference: {fileID: 0} + - target: {fileID: 6778406391604408560, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406391604408560, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406391604408560, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406391604408560, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406391892073053, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406391892073053, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406391892073053, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406391892073053, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392151677628, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392151677628, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392151677628, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392151677628, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392265446442, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392265446442, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392265446442, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392265446442, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392476026602, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392476026602, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392476026602, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392476026602, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392636603953, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392636603953, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392636603953, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6778406392636603953, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 2ceb27afa38c74b76b130f23621f7f50, type: 3} +--- !u!114 &1188209734 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2912042418274684488, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + m_PrefabInstance: {fileID: 1188209733} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 988fc455527e44edbbc26f8ebb8d5f56, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1188209735 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7513283637877447830, guid: 2ceb27afa38c74b76b130f23621f7f50, + type: 3} + m_PrefabInstance: {fileID: 1188209733} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f77652346b24cc9b0d5da516979f736, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1381610492 GameObject: m_ObjectHideFlags: 0