├── .gitignore ├── Assets ├── LoopScrollRect.meta ├── LoopScrollRect │ ├── Demo.meta │ ├── Demo │ │ ├── DemoScene.unity │ │ ├── DemoScene.unity.meta │ │ ├── Resources.meta │ │ ├── Resources │ │ │ ├── ScrollCell1.prefab │ │ │ ├── ScrollCell1.prefab.meta │ │ │ ├── ScrollCell2.prefab │ │ │ ├── ScrollCell2.prefab.meta │ │ │ ├── ScrollCell3.prefab │ │ │ └── ScrollCell3.prefab.meta │ │ ├── Scripts.meta │ │ └── Scripts │ │ │ ├── ScrollIndexCallback1.cs │ │ │ ├── ScrollIndexCallback1.cs.meta │ │ │ ├── ScrollIndexCallback2.cs │ │ │ ├── ScrollIndexCallback2.cs.meta │ │ │ ├── ScrollIndexCallback3.cs │ │ │ └── ScrollIndexCallback3.cs.meta │ ├── Scripts.meta │ └── Scripts │ │ ├── EasyObjectPool.meta │ │ ├── EasyObjectPool │ │ ├── EasyObjectPool.cs │ │ ├── EasyObjectPool.cs.meta │ │ ├── ResourceManager.cs │ │ └── ResourceManager.cs.meta │ │ ├── Editor.meta │ │ ├── Editor │ │ ├── LoopScrollRectInspector.cs │ │ ├── LoopScrollRectInspector.cs.meta │ │ ├── SGDefaultControls.cs │ │ ├── SGDefaultControls.cs.meta │ │ ├── SGMenuOptions.cs │ │ └── SGMenuOptions.cs.meta │ │ ├── InitOnStart.cs │ │ ├── InitOnStart.cs.meta │ │ ├── LoopHorizontalScrollRect.cs │ │ ├── LoopHorizontalScrollRect.cs.meta │ │ ├── LoopScrollDataSource.cs │ │ ├── LoopScrollDataSource.cs.meta │ │ ├── LoopScrollPrefabSource.cs │ │ ├── LoopScrollPrefabSource.cs.meta │ │ ├── LoopScrollRect.cs │ │ ├── LoopScrollRect.cs.meta │ │ ├── LoopVerticalScrollRect.cs │ │ └── LoopVerticalScrollRect.cs.meta ├── WDataTable.meta └── WDataTable │ ├── Demo.meta │ ├── Demo │ ├── DynamicData.unity │ ├── DynamicData.unity.meta │ ├── DynamicSize.unity │ ├── DynamicSize.unity.meta │ ├── Example.cs │ ├── Example.cs.meta │ ├── TextMeshPro.unity │ └── TextMeshPro.unity.meta │ ├── Prefabs.meta │ ├── Prefabs │ ├── DataTable.prefab │ └── DataTable.prefab.meta │ ├── Resources.meta │ ├── Resources │ ├── ButtonElement.prefab │ ├── ButtonElement.prefab.meta │ ├── RowCotainter.prefab │ ├── RowCotainter.prefab.meta │ ├── TMPButtonElement.prefab │ ├── TMPButtonElement.prefab.meta │ ├── TMPTextElement.prefab │ ├── TMPTextElement.prefab.meta │ ├── TextElement.prefab │ └── TextElement.prefab.meta │ ├── Scripts.meta │ └── Scripts │ ├── WButton.cs │ ├── WButton.cs.meta │ ├── WContainter.cs │ ├── WContainter.cs.meta │ ├── WDataTable.cs │ ├── WDataTable.cs.meta │ ├── WElement.cs │ ├── WElement.cs.meta │ ├── WHead.cs │ ├── WHead.cs.meta │ ├── WRow.cs │ ├── WRow.cs.meta │ ├── WText.cs │ └── WText.cs.meta ├── LICENSE ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset └── UnityConnectSettings.asset └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /.vs 2 | /Library 3 | /Temp 4 | /obj 5 | *.csproj 6 | *.sln -------------------------------------------------------------------------------- /Assets/LoopScrollRect.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6a319c038d8ac445b2b13c4c72291f7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d2175890aaf8a5a4ca0d06dbd5b30932 3 | folderAsset: yes 4 | timeCreated: 1439396419 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/DemoScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb16de1fffe5c164696efe7c5c3bb7d1 3 | timeCreated: 1439396359 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bcd8464e40b5d9d40b2cb448cdcad0d5 3 | folderAsset: yes 4 | timeCreated: 1439425346 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Resources/ScrollCell1.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &108710 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 100100000} 8 | serializedVersion: 4 9 | m_Component: 10 | - 224: {fileID: 22435118} 11 | - 222: {fileID: 22270478} 12 | - 114: {fileID: 11410392} 13 | m_Layer: 5 14 | m_Name: Text 15 | m_TagString: Untagged 16 | m_Icon: {fileID: 0} 17 | m_NavMeshLayer: 0 18 | m_StaticEditorFlags: 0 19 | m_IsActive: 1 20 | --- !u!1 &183744 21 | GameObject: 22 | m_ObjectHideFlags: 0 23 | m_PrefabParentObject: {fileID: 0} 24 | m_PrefabInternal: {fileID: 100100000} 25 | serializedVersion: 4 26 | m_Component: 27 | - 224: {fileID: 22418634} 28 | - 222: {fileID: 22216460} 29 | - 114: {fileID: 11487888} 30 | - 114: {fileID: 11439716} 31 | - 114: {fileID: 11464570} 32 | - 114: {fileID: 11468506} 33 | m_Layer: 5 34 | m_Name: ScrollCell1 35 | m_TagString: Untagged 36 | m_Icon: {fileID: 0} 37 | m_NavMeshLayer: 0 38 | m_StaticEditorFlags: 0 39 | m_IsActive: 1 40 | --- !u!114 &11410392 41 | MonoBehaviour: 42 | m_ObjectHideFlags: 1 43 | m_PrefabParentObject: {fileID: 0} 44 | m_PrefabInternal: {fileID: 100100000} 45 | m_GameObject: {fileID: 108710} 46 | m_Enabled: 1 47 | m_EditorHideFlags: 0 48 | m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 49 | m_Name: 50 | m_EditorClassIdentifier: 51 | m_Material: {fileID: 0} 52 | m_Color: {r: .196078435, g: .196078435, b: .196078435, a: 1} 53 | m_FontData: 54 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 55 | m_FontSize: 14 56 | m_FontStyle: 0 57 | m_BestFit: 0 58 | m_MinSize: 10 59 | m_MaxSize: 40 60 | m_Alignment: 4 61 | m_RichText: 1 62 | m_HorizontalOverflow: 0 63 | m_VerticalOverflow: 0 64 | m_LineSpacing: 1 65 | m_Text: Button 66 | --- !u!114 &11439716 67 | MonoBehaviour: 68 | m_ObjectHideFlags: 1 69 | m_PrefabParentObject: {fileID: 0} 70 | m_PrefabInternal: {fileID: 100100000} 71 | m_GameObject: {fileID: 183744} 72 | m_Enabled: 1 73 | m_EditorHideFlags: 0 74 | m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 75 | m_Name: 76 | m_EditorClassIdentifier: 77 | m_Navigation: 78 | m_Mode: 3 79 | m_SelectOnUp: {fileID: 0} 80 | m_SelectOnDown: {fileID: 0} 81 | m_SelectOnLeft: {fileID: 0} 82 | m_SelectOnRight: {fileID: 0} 83 | m_Transition: 1 84 | m_Colors: 85 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 86 | m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} 87 | m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} 88 | m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} 89 | m_ColorMultiplier: 1 90 | m_FadeDuration: .100000001 91 | m_SpriteState: 92 | m_HighlightedSprite: {fileID: 0} 93 | m_PressedSprite: {fileID: 0} 94 | m_DisabledSprite: {fileID: 0} 95 | m_AnimationTriggers: 96 | m_NormalTrigger: Normal 97 | m_HighlightedTrigger: Highlighted 98 | m_PressedTrigger: Pressed 99 | m_DisabledTrigger: Disabled 100 | m_Interactable: 1 101 | m_TargetGraphic: {fileID: 11487888} 102 | m_OnClick: 103 | m_PersistentCalls: 104 | m_Calls: [] 105 | m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, 106 | Culture=neutral, PublicKeyToken=null 107 | --- !u!114 &11464570 108 | MonoBehaviour: 109 | m_ObjectHideFlags: 1 110 | m_PrefabParentObject: {fileID: 0} 111 | m_PrefabInternal: {fileID: 100100000} 112 | m_GameObject: {fileID: 183744} 113 | m_Enabled: 1 114 | m_EditorHideFlags: 0 115 | m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 116 | m_Name: 117 | m_EditorClassIdentifier: 118 | m_IgnoreLayout: 0 119 | m_MinWidth: -1 120 | m_MinHeight: -1 121 | m_PreferredWidth: 150 122 | m_PreferredHeight: 50 123 | m_FlexibleWidth: -1 124 | m_FlexibleHeight: -1 125 | --- !u!114 &11468506 126 | MonoBehaviour: 127 | m_ObjectHideFlags: 1 128 | m_PrefabParentObject: {fileID: 0} 129 | m_PrefabInternal: {fileID: 100100000} 130 | m_GameObject: {fileID: 183744} 131 | m_Enabled: 1 132 | m_EditorHideFlags: 0 133 | m_Script: {fileID: 11500000, guid: aae79c5fe0add56479237307a95fbb7f, type: 3} 134 | m_Name: 135 | m_EditorClassIdentifier: 136 | image: {fileID: 11487888} 137 | text: {fileID: 11410392} 138 | --- !u!114 &11487888 139 | MonoBehaviour: 140 | m_ObjectHideFlags: 1 141 | m_PrefabParentObject: {fileID: 0} 142 | m_PrefabInternal: {fileID: 100100000} 143 | m_GameObject: {fileID: 183744} 144 | m_Enabled: 1 145 | m_EditorHideFlags: 0 146 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 147 | m_Name: 148 | m_EditorClassIdentifier: 149 | m_Material: {fileID: 0} 150 | m_Color: {r: 1, g: 1, b: 1, a: 1} 151 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 152 | m_Type: 1 153 | m_PreserveAspect: 0 154 | m_FillCenter: 1 155 | m_FillMethod: 4 156 | m_FillAmount: 1 157 | m_FillClockwise: 1 158 | m_FillOrigin: 0 159 | --- !u!222 &22216460 160 | CanvasRenderer: 161 | m_ObjectHideFlags: 1 162 | m_PrefabParentObject: {fileID: 0} 163 | m_PrefabInternal: {fileID: 100100000} 164 | m_GameObject: {fileID: 183744} 165 | --- !u!222 &22270478 166 | CanvasRenderer: 167 | m_ObjectHideFlags: 1 168 | m_PrefabParentObject: {fileID: 0} 169 | m_PrefabInternal: {fileID: 100100000} 170 | m_GameObject: {fileID: 108710} 171 | --- !u!224 &22418634 172 | RectTransform: 173 | m_ObjectHideFlags: 1 174 | m_PrefabParentObject: {fileID: 0} 175 | m_PrefabInternal: {fileID: 100100000} 176 | m_GameObject: {fileID: 183744} 177 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 178 | m_LocalPosition: {x: 0, y: 0, z: 0} 179 | m_LocalScale: {x: 1, y: 1, z: 1} 180 | m_Children: 181 | - {fileID: 22435118} 182 | m_Father: {fileID: 0} 183 | m_RootOrder: 0 184 | m_AnchorMin: {x: 0, y: 0} 185 | m_AnchorMax: {x: 0, y: 0} 186 | m_AnchoredPosition: {x: 0, y: 0} 187 | m_SizeDelta: {x: 0, y: 0} 188 | m_Pivot: {x: .5, y: .5} 189 | --- !u!224 &22435118 190 | RectTransform: 191 | m_ObjectHideFlags: 1 192 | m_PrefabParentObject: {fileID: 0} 193 | m_PrefabInternal: {fileID: 100100000} 194 | m_GameObject: {fileID: 108710} 195 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 196 | m_LocalPosition: {x: 0, y: 0, z: 0} 197 | m_LocalScale: {x: 1, y: 1, z: 1} 198 | m_Children: [] 199 | m_Father: {fileID: 22418634} 200 | m_RootOrder: 0 201 | m_AnchorMin: {x: 0, y: 0} 202 | m_AnchorMax: {x: 1, y: 1} 203 | m_AnchoredPosition: {x: 0, y: 0} 204 | m_SizeDelta: {x: 0, y: 0} 205 | m_Pivot: {x: .5, y: .5} 206 | --- !u!1001 &100100000 207 | Prefab: 208 | m_ObjectHideFlags: 1 209 | serializedVersion: 2 210 | m_Modification: 211 | m_TransformParent: {fileID: 0} 212 | m_Modifications: 213 | - target: {fileID: 0} 214 | propertyPath: m_PreferredWidth 215 | value: 150 216 | objectReference: {fileID: 0} 217 | - target: {fileID: 0} 218 | propertyPath: m_PreferredHeight 219 | value: 50 220 | objectReference: {fileID: 0} 221 | - target: {fileID: 0} 222 | propertyPath: image 223 | value: 224 | objectReference: {fileID: 11487888} 225 | m_RemovedComponents: [] 226 | m_ParentPrefab: {fileID: 0} 227 | m_RootGameObject: {fileID: 183744} 228 | m_IsPrefabParent: 1 229 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Resources/ScrollCell1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 22b5f8ed284b7904299d6ca6a21597ad 3 | timeCreated: 1439425233 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Resources/ScrollCell2.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &108666 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 100100000} 8 | serializedVersion: 4 9 | m_Component: 10 | - 224: {fileID: 22478042} 11 | - 222: {fileID: 22298252} 12 | - 114: {fileID: 11410352} 13 | m_Layer: 5 14 | m_Name: Text 15 | m_TagString: Untagged 16 | m_Icon: {fileID: 0} 17 | m_NavMeshLayer: 0 18 | m_StaticEditorFlags: 0 19 | m_IsActive: 1 20 | --- !u!1 &137000 21 | GameObject: 22 | m_ObjectHideFlags: 0 23 | m_PrefabParentObject: {fileID: 0} 24 | m_PrefabInternal: {fileID: 100100000} 25 | serializedVersion: 4 26 | m_Component: 27 | - 224: {fileID: 22424898} 28 | - 222: {fileID: 22244204} 29 | - 114: {fileID: 11476074} 30 | - 114: {fileID: 11496432} 31 | - 114: {fileID: 11418372} 32 | - 114: {fileID: 11477872} 33 | m_Layer: 5 34 | m_Name: ScrollCell2 35 | m_TagString: Untagged 36 | m_Icon: {fileID: 0} 37 | m_NavMeshLayer: 0 38 | m_StaticEditorFlags: 0 39 | m_IsActive: 1 40 | --- !u!114 &11410352 41 | MonoBehaviour: 42 | m_ObjectHideFlags: 1 43 | m_PrefabParentObject: {fileID: 0} 44 | m_PrefabInternal: {fileID: 100100000} 45 | m_GameObject: {fileID: 108666} 46 | m_Enabled: 1 47 | m_EditorHideFlags: 0 48 | m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 49 | m_Name: 50 | m_EditorClassIdentifier: 51 | m_Material: {fileID: 0} 52 | m_Color: {r: .196078435, g: .196078435, b: .196078435, a: 1} 53 | m_FontData: 54 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 55 | m_FontSize: 14 56 | m_FontStyle: 0 57 | m_BestFit: 0 58 | m_MinSize: 10 59 | m_MaxSize: 40 60 | m_Alignment: 4 61 | m_RichText: 1 62 | m_HorizontalOverflow: 0 63 | m_VerticalOverflow: 0 64 | m_LineSpacing: 1 65 | m_Text: Button 66 | --- !u!114 &11418372 67 | MonoBehaviour: 68 | m_ObjectHideFlags: 1 69 | m_PrefabParentObject: {fileID: 0} 70 | m_PrefabInternal: {fileID: 100100000} 71 | m_GameObject: {fileID: 137000} 72 | m_Enabled: 1 73 | m_EditorHideFlags: 0 74 | m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 75 | m_Name: 76 | m_EditorClassIdentifier: 77 | m_IgnoreLayout: 0 78 | m_MinWidth: -1 79 | m_MinHeight: -1 80 | m_PreferredWidth: 100 81 | m_PreferredHeight: 150 82 | m_FlexibleWidth: -1 83 | m_FlexibleHeight: -1 84 | --- !u!114 &11476074 85 | MonoBehaviour: 86 | m_ObjectHideFlags: 1 87 | m_PrefabParentObject: {fileID: 0} 88 | m_PrefabInternal: {fileID: 100100000} 89 | m_GameObject: {fileID: 137000} 90 | m_Enabled: 1 91 | m_EditorHideFlags: 0 92 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 93 | m_Name: 94 | m_EditorClassIdentifier: 95 | m_Material: {fileID: 0} 96 | m_Color: {r: 1, g: 1, b: 1, a: 1} 97 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 98 | m_Type: 1 99 | m_PreserveAspect: 0 100 | m_FillCenter: 1 101 | m_FillMethod: 4 102 | m_FillAmount: 1 103 | m_FillClockwise: 1 104 | m_FillOrigin: 0 105 | --- !u!114 &11477872 106 | MonoBehaviour: 107 | m_ObjectHideFlags: 1 108 | m_PrefabParentObject: {fileID: 0} 109 | m_PrefabInternal: {fileID: 100100000} 110 | m_GameObject: {fileID: 137000} 111 | m_Enabled: 1 112 | m_EditorHideFlags: 0 113 | m_Script: {fileID: 11500000, guid: 4d2a1b5a8e8308e4fbd894c93c0caa09, type: 3} 114 | m_Name: 115 | m_EditorClassIdentifier: 116 | text: {fileID: 11410352} 117 | element: {fileID: 11418372} 118 | --- !u!114 &11496432 119 | MonoBehaviour: 120 | m_ObjectHideFlags: 1 121 | m_PrefabParentObject: {fileID: 0} 122 | m_PrefabInternal: {fileID: 100100000} 123 | m_GameObject: {fileID: 137000} 124 | m_Enabled: 1 125 | m_EditorHideFlags: 0 126 | m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 127 | m_Name: 128 | m_EditorClassIdentifier: 129 | m_Navigation: 130 | m_Mode: 3 131 | m_SelectOnUp: {fileID: 0} 132 | m_SelectOnDown: {fileID: 0} 133 | m_SelectOnLeft: {fileID: 0} 134 | m_SelectOnRight: {fileID: 0} 135 | m_Transition: 1 136 | m_Colors: 137 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 138 | m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} 139 | m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} 140 | m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} 141 | m_ColorMultiplier: 1 142 | m_FadeDuration: .100000001 143 | m_SpriteState: 144 | m_HighlightedSprite: {fileID: 0} 145 | m_PressedSprite: {fileID: 0} 146 | m_DisabledSprite: {fileID: 0} 147 | m_AnimationTriggers: 148 | m_NormalTrigger: Normal 149 | m_HighlightedTrigger: Highlighted 150 | m_PressedTrigger: Pressed 151 | m_DisabledTrigger: Disabled 152 | m_Interactable: 1 153 | m_TargetGraphic: {fileID: 11476074} 154 | m_OnClick: 155 | m_PersistentCalls: 156 | m_Calls: [] 157 | m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, 158 | Culture=neutral, PublicKeyToken=null 159 | --- !u!222 &22244204 160 | CanvasRenderer: 161 | m_ObjectHideFlags: 1 162 | m_PrefabParentObject: {fileID: 0} 163 | m_PrefabInternal: {fileID: 100100000} 164 | m_GameObject: {fileID: 137000} 165 | --- !u!222 &22298252 166 | CanvasRenderer: 167 | m_ObjectHideFlags: 1 168 | m_PrefabParentObject: {fileID: 0} 169 | m_PrefabInternal: {fileID: 100100000} 170 | m_GameObject: {fileID: 108666} 171 | --- !u!224 &22424898 172 | RectTransform: 173 | m_ObjectHideFlags: 1 174 | m_PrefabParentObject: {fileID: 0} 175 | m_PrefabInternal: {fileID: 100100000} 176 | m_GameObject: {fileID: 137000} 177 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 178 | m_LocalPosition: {x: 0, y: 0, z: 0} 179 | m_LocalScale: {x: 1, y: 1, z: 1} 180 | m_Children: 181 | - {fileID: 22478042} 182 | m_Father: {fileID: 0} 183 | m_RootOrder: 0 184 | m_AnchorMin: {x: 0, y: 0} 185 | m_AnchorMax: {x: 0, y: 0} 186 | m_AnchoredPosition: {x: 0, y: 0} 187 | m_SizeDelta: {x: 0, y: 0} 188 | m_Pivot: {x: .5, y: .5} 189 | --- !u!224 &22478042 190 | RectTransform: 191 | m_ObjectHideFlags: 1 192 | m_PrefabParentObject: {fileID: 0} 193 | m_PrefabInternal: {fileID: 100100000} 194 | m_GameObject: {fileID: 108666} 195 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 196 | m_LocalPosition: {x: 0, y: 0, z: 0} 197 | m_LocalScale: {x: 1, y: 1, z: 1} 198 | m_Children: [] 199 | m_Father: {fileID: 22424898} 200 | m_RootOrder: 0 201 | m_AnchorMin: {x: 0, y: 0} 202 | m_AnchorMax: {x: 1, y: 1} 203 | m_AnchoredPosition: {x: 0, y: 0} 204 | m_SizeDelta: {x: 0, y: 0} 205 | m_Pivot: {x: .5, y: .5} 206 | --- !u!1001 &100100000 207 | Prefab: 208 | m_ObjectHideFlags: 1 209 | serializedVersion: 2 210 | m_Modification: 211 | m_TransformParent: {fileID: 0} 212 | m_Modifications: [] 213 | m_RemovedComponents: [] 214 | m_ParentPrefab: {fileID: 0} 215 | m_RootGameObject: {fileID: 137000} 216 | m_IsPrefabParent: 1 217 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Resources/ScrollCell2.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 58f2a669cd6976d4ca4c72cd7bfa298c 3 | timeCreated: 1439607751 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Resources/ScrollCell3.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &125280 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 100100000} 8 | serializedVersion: 4 9 | m_Component: 10 | - 224: {fileID: 22436942} 11 | - 222: {fileID: 22215342} 12 | - 114: {fileID: 11469264} 13 | m_Layer: 5 14 | m_Name: Text 15 | m_TagString: Untagged 16 | m_Icon: {fileID: 0} 17 | m_NavMeshLayer: 0 18 | m_StaticEditorFlags: 0 19 | m_IsActive: 1 20 | --- !u!1 &174784 21 | GameObject: 22 | m_ObjectHideFlags: 0 23 | m_PrefabParentObject: {fileID: 0} 24 | m_PrefabInternal: {fileID: 100100000} 25 | serializedVersion: 4 26 | m_Component: 27 | - 224: {fileID: 22411180} 28 | - 222: {fileID: 22240748} 29 | - 114: {fileID: 11429772} 30 | - 114: {fileID: 11402414} 31 | - 114: {fileID: 11425032} 32 | - 114: {fileID: 11478532} 33 | m_Layer: 5 34 | m_Name: ScrollCell3 35 | m_TagString: Untagged 36 | m_Icon: {fileID: 0} 37 | m_NavMeshLayer: 0 38 | m_StaticEditorFlags: 0 39 | m_IsActive: 1 40 | --- !u!114 &11402414 41 | MonoBehaviour: 42 | m_ObjectHideFlags: 1 43 | m_PrefabParentObject: {fileID: 0} 44 | m_PrefabInternal: {fileID: 100100000} 45 | m_GameObject: {fileID: 174784} 46 | m_Enabled: 1 47 | m_EditorHideFlags: 0 48 | m_Script: {fileID: 1392445389, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 49 | m_Name: 50 | m_EditorClassIdentifier: 51 | m_Navigation: 52 | m_Mode: 3 53 | m_SelectOnUp: {fileID: 0} 54 | m_SelectOnDown: {fileID: 0} 55 | m_SelectOnLeft: {fileID: 0} 56 | m_SelectOnRight: {fileID: 0} 57 | m_Transition: 1 58 | m_Colors: 59 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 60 | m_HighlightedColor: {r: .960784316, g: .960784316, b: .960784316, a: 1} 61 | m_PressedColor: {r: .784313738, g: .784313738, b: .784313738, a: 1} 62 | m_DisabledColor: {r: .784313738, g: .784313738, b: .784313738, a: .501960814} 63 | m_ColorMultiplier: 1 64 | m_FadeDuration: .100000001 65 | m_SpriteState: 66 | m_HighlightedSprite: {fileID: 0} 67 | m_PressedSprite: {fileID: 0} 68 | m_DisabledSprite: {fileID: 0} 69 | m_AnimationTriggers: 70 | m_NormalTrigger: Normal 71 | m_HighlightedTrigger: Highlighted 72 | m_PressedTrigger: Pressed 73 | m_DisabledTrigger: Disabled 74 | m_Interactable: 1 75 | m_TargetGraphic: {fileID: 11429772} 76 | m_OnClick: 77 | m_PersistentCalls: 78 | m_Calls: [] 79 | m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, 80 | Culture=neutral, PublicKeyToken=null 81 | --- !u!114 &11425032 82 | MonoBehaviour: 83 | m_ObjectHideFlags: 1 84 | m_PrefabParentObject: {fileID: 0} 85 | m_PrefabInternal: {fileID: 100100000} 86 | m_GameObject: {fileID: 174784} 87 | m_Enabled: 1 88 | m_EditorHideFlags: 0 89 | m_Script: {fileID: 11500000, guid: 485315e3fd2b43d4d8d15c437f7f01d3, type: 3} 90 | m_Name: 91 | m_EditorClassIdentifier: 92 | text: {fileID: 11469264} 93 | --- !u!114 &11429772 94 | MonoBehaviour: 95 | m_ObjectHideFlags: 1 96 | m_PrefabParentObject: {fileID: 0} 97 | m_PrefabInternal: {fileID: 100100000} 98 | m_GameObject: {fileID: 174784} 99 | m_Enabled: 1 100 | m_EditorHideFlags: 0 101 | m_Script: {fileID: -765806418, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 102 | m_Name: 103 | m_EditorClassIdentifier: 104 | m_Material: {fileID: 0} 105 | m_Color: {r: 1, g: 1, b: 1, a: 1} 106 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 107 | m_Type: 1 108 | m_PreserveAspect: 0 109 | m_FillCenter: 1 110 | m_FillMethod: 4 111 | m_FillAmount: 1 112 | m_FillClockwise: 1 113 | m_FillOrigin: 0 114 | --- !u!114 &11469264 115 | MonoBehaviour: 116 | m_ObjectHideFlags: 1 117 | m_PrefabParentObject: {fileID: 0} 118 | m_PrefabInternal: {fileID: 100100000} 119 | m_GameObject: {fileID: 125280} 120 | m_Enabled: 1 121 | m_EditorHideFlags: 0 122 | m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 123 | m_Name: 124 | m_EditorClassIdentifier: 125 | m_Material: {fileID: 0} 126 | m_Color: {r: .196078435, g: .196078435, b: .196078435, a: 1} 127 | m_FontData: 128 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 129 | m_FontSize: 14 130 | m_FontStyle: 0 131 | m_BestFit: 0 132 | m_MinSize: 10 133 | m_MaxSize: 40 134 | m_Alignment: 4 135 | m_RichText: 1 136 | m_HorizontalOverflow: 0 137 | m_VerticalOverflow: 0 138 | m_LineSpacing: 1 139 | m_Text: Button 140 | --- !u!114 &11478532 141 | MonoBehaviour: 142 | m_ObjectHideFlags: 1 143 | m_PrefabParentObject: {fileID: 0} 144 | m_PrefabInternal: {fileID: 100100000} 145 | m_GameObject: {fileID: 174784} 146 | m_Enabled: 1 147 | m_EditorHideFlags: 0 148 | m_Script: {fileID: 1679637790, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3} 149 | m_Name: 150 | m_EditorClassIdentifier: 151 | m_IgnoreLayout: 0 152 | m_MinWidth: -1 153 | m_MinHeight: -1 154 | m_PreferredWidth: 100 155 | m_PreferredHeight: 100 156 | m_FlexibleWidth: -1 157 | m_FlexibleHeight: -1 158 | --- !u!222 &22215342 159 | CanvasRenderer: 160 | m_ObjectHideFlags: 1 161 | m_PrefabParentObject: {fileID: 0} 162 | m_PrefabInternal: {fileID: 100100000} 163 | m_GameObject: {fileID: 125280} 164 | --- !u!222 &22240748 165 | CanvasRenderer: 166 | m_ObjectHideFlags: 1 167 | m_PrefabParentObject: {fileID: 0} 168 | m_PrefabInternal: {fileID: 100100000} 169 | m_GameObject: {fileID: 174784} 170 | --- !u!224 &22411180 171 | RectTransform: 172 | m_ObjectHideFlags: 1 173 | m_PrefabParentObject: {fileID: 0} 174 | m_PrefabInternal: {fileID: 100100000} 175 | m_GameObject: {fileID: 174784} 176 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 177 | m_LocalPosition: {x: 0, y: 0, z: 0} 178 | m_LocalScale: {x: 1, y: 1, z: 1} 179 | m_Children: 180 | - {fileID: 22436942} 181 | m_Father: {fileID: 0} 182 | m_RootOrder: 0 183 | m_AnchorMin: {x: 0, y: 0} 184 | m_AnchorMax: {x: 0, y: 0} 185 | m_AnchoredPosition: {x: 0, y: 0} 186 | m_SizeDelta: {x: 0, y: 0} 187 | m_Pivot: {x: .5, y: .5} 188 | --- !u!224 &22436942 189 | RectTransform: 190 | m_ObjectHideFlags: 1 191 | m_PrefabParentObject: {fileID: 0} 192 | m_PrefabInternal: {fileID: 100100000} 193 | m_GameObject: {fileID: 125280} 194 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 195 | m_LocalPosition: {x: 0, y: 0, z: 0} 196 | m_LocalScale: {x: 1, y: 1, z: 1} 197 | m_Children: [] 198 | m_Father: {fileID: 22411180} 199 | m_RootOrder: 0 200 | m_AnchorMin: {x: 0, y: 0} 201 | m_AnchorMax: {x: 1, y: 1} 202 | m_AnchoredPosition: {x: 0, y: 0} 203 | m_SizeDelta: {x: 0, y: 0} 204 | m_Pivot: {x: .5, y: .5} 205 | --- !u!1001 &100100000 206 | Prefab: 207 | m_ObjectHideFlags: 1 208 | serializedVersion: 2 209 | m_Modification: 210 | m_TransformParent: {fileID: 0} 211 | m_Modifications: 212 | - target: {fileID: 0} 213 | propertyPath: m_PreferredWidth 214 | value: 0 215 | objectReference: {fileID: 0} 216 | m_RemovedComponents: [] 217 | m_ParentPrefab: {fileID: 0} 218 | m_RootGameObject: {fileID: 174784} 219 | m_IsPrefabParent: 1 220 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Resources/ScrollCell3.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56b618cf8c6e1584db503ad2cee1f27f 3 | timeCreated: 1439608466 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 38f39d5416d65c848acd1bf8a6fe769b 3 | folderAsset: yes 4 | timeCreated: 1439609534 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Scripts/ScrollIndexCallback1.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using System.Collections; 4 | 5 | public class ScrollIndexCallback1 : MonoBehaviour 6 | { 7 | public Image image; 8 | public Text text; 9 | 10 | void ScrollCellIndex (int idx) 11 | { 12 | string name = "Cell " + idx.ToString (); 13 | if (text != null) 14 | { 15 | text.text = name; 16 | } 17 | if (image != null) 18 | { 19 | image.color = Rainbow(idx / 50.0f); 20 | } 21 | gameObject.name = name; 22 | } 23 | 24 | // http://stackoverflow.com/questions/2288498/how-do-i-get-a-rainbow-color-gradient-in-c 25 | public static Color Rainbow(float progress) 26 | { 27 | progress = Mathf.Clamp01(progress); 28 | float r = 0.0f; 29 | float g = 0.0f; 30 | float b = 0.0f; 31 | int i = (int)(progress * 6); 32 | float f = progress * 6.0f - i; 33 | float q = 1 - f; 34 | 35 | switch (i % 6) 36 | { 37 | case 0: 38 | r = 1; 39 | g = f; 40 | b = 0; 41 | break; 42 | case 1: 43 | r = q; 44 | g = 1; 45 | b = 0; 46 | break; 47 | case 2: 48 | r = 0; 49 | g = 1; 50 | b = f; 51 | break; 52 | case 3: 53 | r = 0; 54 | g = q; 55 | b = 1; 56 | break; 57 | case 4: 58 | r = f; 59 | g = 0; 60 | b = 1; 61 | break; 62 | case 5: 63 | r = 1; 64 | g = 0; 65 | b = q; 66 | break; 67 | } 68 | return new Color(r, g, b); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Scripts/ScrollIndexCallback1.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aae79c5fe0add56479237307a95fbb7f 3 | timeCreated: 1439396433 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Scripts/ScrollIndexCallback2.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using System.Collections; 4 | 5 | public class ScrollIndexCallback2 : MonoBehaviour 6 | { 7 | public Text text; 8 | public LayoutElement element; 9 | private static float[] randomWidths = new float[3] { 100, 150, 50 }; 10 | void ScrollCellIndex(int idx) 11 | { 12 | string name = "Cell " + idx.ToString(); 13 | if (text != null) 14 | { 15 | text.text = name; 16 | } 17 | element.preferredWidth = randomWidths[Mathf.Abs(idx) % 3]; 18 | gameObject.name = name; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Scripts/ScrollIndexCallback2.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d2a1b5a8e8308e4fbd894c93c0caa09 3 | timeCreated: 1439607769 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Scripts/ScrollIndexCallback3.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using System.Collections; 4 | 5 | public class ScrollIndexCallback3 : MonoBehaviour 6 | { 7 | public Text text; 8 | void ScrollCellIndex(int idx) 9 | { 10 | string name = "Cell " + idx.ToString(); 11 | if (text != null) 12 | { 13 | text.text = name; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Demo/Scripts/ScrollIndexCallback3.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 485315e3fd2b43d4d8d15c437f7f01d3 3 | timeCreated: 1439608418 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ec0ddcd49b026ab4fb6b7d49fd693e57 3 | folderAsset: yes 4 | timeCreated: 1439395131 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/EasyObjectPool.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 68f26a4aba55aca4fbcb4894ea811c59 3 | folderAsset: yes 4 | timeCreated: 1439395530 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/EasyObjectPool/EasyObjectPool.cs: -------------------------------------------------------------------------------- 1 | /* 2 | * Unless otherwise licensed, this file cannot be copied or redistributed in any format without the explicit consent of the author. 3 | * (c) Preet Kamal Singh Minhas, http://marchingbytes.com 4 | * contact@marchingbytes.com 5 | */ 6 | // modified version by Kanglai Qian 7 | using UnityEngine; 8 | using System.Collections.Generic; 9 | 10 | namespace SG 11 | { 12 | [DisallowMultipleComponent] 13 | [AddComponentMenu("")] 14 | public class PoolObject : MonoBehaviour 15 | { 16 | public string poolName; 17 | //defines whether the object is waiting in pool or is in use 18 | public bool isPooled; 19 | } 20 | 21 | public enum PoolInflationType 22 | { 23 | /// When a dynamic pool inflates, add one to the pool. 24 | INCREMENT, 25 | /// When a dynamic pool inflates, double the size of the pool 26 | DOUBLE 27 | } 28 | 29 | class Pool 30 | { 31 | private Stack availableObjStack = new Stack(); 32 | 33 | //the root obj for unused obj 34 | private GameObject rootObj; 35 | private PoolInflationType inflationType; 36 | private string poolName; 37 | private int objectsInUse = 0; 38 | 39 | public Pool(string poolName, GameObject poolObjectPrefab, GameObject rootPoolObj, int initialCount, PoolInflationType type) 40 | { 41 | if (poolObjectPrefab == null) 42 | { 43 | #if UNITY_EDITOR 44 | Debug.LogError("[ObjPoolManager] null pool object prefab !"); 45 | #endif 46 | return; 47 | } 48 | this.poolName = poolName; 49 | this.inflationType = type; 50 | this.rootObj = new GameObject(poolName + "Pool"); 51 | this.rootObj.transform.SetParent(rootPoolObj.transform, false); 52 | 53 | // In case the origin one is Destroyed, we should keep at least one 54 | GameObject go = GameObject.Instantiate(poolObjectPrefab); 55 | PoolObject po = go.GetComponent(); 56 | if (po == null) 57 | { 58 | po = go.AddComponent(); 59 | } 60 | po.poolName = poolName; 61 | AddObjectToPool(po); 62 | 63 | //populate the pool 64 | populatePool(Mathf.Max(initialCount, 1)); 65 | } 66 | 67 | //o(1) 68 | private void AddObjectToPool(PoolObject po) 69 | { 70 | //add to pool 71 | po.gameObject.SetActive(false); 72 | po.gameObject.name = poolName; 73 | availableObjStack.Push(po); 74 | po.isPooled = true; 75 | //add to a root obj 76 | po.gameObject.transform.SetParent(rootObj.transform, false); 77 | } 78 | 79 | private void populatePool(int initialCount) 80 | { 81 | for (int index = 0; index < initialCount; index++) 82 | { 83 | PoolObject po = GameObject.Instantiate(availableObjStack.Peek()); 84 | AddObjectToPool(po); 85 | } 86 | } 87 | 88 | //o(1) 89 | public GameObject NextAvailableObject(bool autoActive) 90 | { 91 | PoolObject po = null; 92 | if (availableObjStack.Count > 1) 93 | { 94 | po = availableObjStack.Pop(); 95 | } 96 | else 97 | { 98 | int increaseSize = 0; 99 | //increment size var, this is for info purpose only 100 | if (inflationType == PoolInflationType.INCREMENT) 101 | { 102 | increaseSize = 1; 103 | } 104 | else if (inflationType == PoolInflationType.DOUBLE) 105 | { 106 | increaseSize = availableObjStack.Count + Mathf.Max(objectsInUse, 0); 107 | } 108 | if (increaseSize > 0) 109 | { 110 | populatePool(increaseSize); 111 | po = availableObjStack.Pop(); 112 | } 113 | } 114 | 115 | GameObject result = null; 116 | if (po != null) 117 | { 118 | objectsInUse++; 119 | po.isPooled = false; 120 | result = po.gameObject; 121 | if (autoActive) 122 | { 123 | result.SetActive(true); 124 | } 125 | } 126 | 127 | return result; 128 | } 129 | 130 | //o(1) 131 | public void ReturnObjectToPool(PoolObject po) 132 | { 133 | if (poolName.Equals(po.poolName)) 134 | { 135 | objectsInUse--; 136 | /* we could have used availableObjStack.Contains(po) to check if this object is in pool. 137 | * While that would have been more robust, it would have made this method O(n) 138 | */ 139 | if (po.isPooled) 140 | { 141 | #if UNITY_EDITOR 142 | Debug.LogWarning(po.gameObject.name + " is already in pool. Why are you trying to return it again? Check usage."); 143 | #endif 144 | } 145 | else 146 | { 147 | AddObjectToPool(po); 148 | } 149 | } 150 | else 151 | { 152 | Debug.LogError(string.Format("Trying to add object to incorrect pool {0} {1}", po.poolName, poolName)); 153 | } 154 | } 155 | } 156 | } -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/EasyObjectPool/EasyObjectPool.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 25ed55ef4750fc64a8d2879276865942 3 | timeCreated: 1439395530 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/EasyObjectPool/ResourceManager.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | 6 | namespace SG 7 | { 8 | [DisallowMultipleComponent] 9 | [AddComponentMenu("")] 10 | public class ResourceManager : MonoBehaviour 11 | { 12 | //obj pool 13 | private Dictionary poolDict = new Dictionary(); 14 | 15 | private static ResourceManager mInstance = null; 16 | 17 | public static ResourceManager Instance 18 | { 19 | get 20 | { 21 | if (mInstance == null) 22 | { 23 | GameObject go = new GameObject("ResourceManager", typeof(ResourceManager)); 24 | go.transform.localPosition = new Vector3(9999999, 9999999, 9999999); 25 | // Kanglai: if we have `GO.hideFlags |= HideFlags.DontSave;`, we will encounter Destroy problem when exit playing 26 | // However we should keep using this in Play mode only! 27 | mInstance = go.GetComponent(); 28 | 29 | if (Application.isPlaying) 30 | { 31 | DontDestroyOnLoad(mInstance.gameObject); 32 | } 33 | else 34 | { 35 | Debug.LogWarning("[ResourceManager] You'd better ignore ResourceManager in Editor mode"); 36 | } 37 | } 38 | 39 | return mInstance; 40 | } 41 | } 42 | public void InitPool(string poolName, int size, PoolInflationType type = PoolInflationType.DOUBLE) 43 | { 44 | if (poolDict.ContainsKey(poolName)) 45 | { 46 | return; 47 | } 48 | else 49 | { 50 | GameObject pb = Resources.Load(poolName); 51 | if (pb == null) 52 | { 53 | Debug.LogError("[ResourceManager] Invalide prefab name for pooling :" + poolName); 54 | return; 55 | } 56 | poolDict[poolName] = new Pool(poolName, pb, gameObject, size, type); 57 | } 58 | } 59 | 60 | /// 61 | /// Returns an available object from the pool 62 | /// OR null in case the pool does not have any object available & can grow size is false. 63 | /// 64 | /// 65 | /// 66 | public GameObject GetObjectFromPool(string poolName, bool autoActive = true, int autoCreate = 0) 67 | { 68 | GameObject result = null; 69 | 70 | if (!poolDict.ContainsKey(poolName) && autoCreate > 0) 71 | { 72 | InitPool(poolName, autoCreate, PoolInflationType.INCREMENT); 73 | } 74 | 75 | if (poolDict.ContainsKey(poolName)) 76 | { 77 | Pool pool = poolDict[poolName]; 78 | result = pool.NextAvailableObject(autoActive); 79 | //scenario when no available object is found in pool 80 | #if UNITY_EDITOR 81 | if (result == null) 82 | { 83 | Debug.LogWarning("[ResourceManager]:No object available in " + poolName); 84 | } 85 | #endif 86 | } 87 | #if UNITY_EDITOR 88 | else 89 | { 90 | Debug.LogError("[ResourceManager]:Invalid pool name specified: " + poolName); 91 | } 92 | #endif 93 | return result; 94 | } 95 | 96 | /// 97 | /// Return obj to the pool 98 | /// 99 | /// 100 | public void ReturnObjectToPool(GameObject go) 101 | { 102 | PoolObject po = go.GetComponent(); 103 | if (po == null) 104 | { 105 | #if UNITY_EDITOR 106 | Debug.LogWarning("Specified object is not a pooled instance: " + go.name); 107 | #endif 108 | } 109 | else 110 | { 111 | Pool pool = null; 112 | if (poolDict.TryGetValue(po.poolName, out pool)) 113 | { 114 | pool.ReturnObjectToPool(po); 115 | } 116 | #if UNITY_EDITOR 117 | else 118 | { 119 | Debug.LogWarning("No pool available with name: " + po.poolName); 120 | } 121 | #endif 122 | } 123 | } 124 | 125 | /// 126 | /// Return obj to the pool 127 | /// 128 | /// 129 | public void ReturnTransformToPool(Transform t) 130 | { 131 | if (t == null) 132 | { 133 | #if UNITY_EDITOR 134 | Debug.LogError("[ResourceManager] try to return a null transform to pool!"); 135 | #endif 136 | return; 137 | } 138 | ReturnObjectToPool(t.gameObject); 139 | } 140 | } 141 | } -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/EasyObjectPool/ResourceManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ae24a45f17beae49b3281944f847870 3 | timeCreated: 1476411289 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b10ceda9bec25b14ea5e190eb9bb0341 3 | folderAsset: yes 4 | timeCreated: 1476279504 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/Editor/LoopScrollRectInspector.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using UnityEditor; 4 | 5 | [CustomEditor(typeof(LoopScrollRect), true)] 6 | public class LoopScrollRectInspector : Editor 7 | { 8 | int index = 0; 9 | float speed = 1000; 10 | public override void OnInspectorGUI () 11 | { 12 | base.OnInspectorGUI(); 13 | EditorGUILayout.Space(); 14 | 15 | LoopScrollRect scroll = (LoopScrollRect)target; 16 | GUI.enabled = Application.isPlaying; 17 | 18 | EditorGUILayout.BeginHorizontal(); 19 | if(GUILayout.Button("Clear")) 20 | { 21 | scroll.ClearCells(); 22 | } 23 | if (GUILayout.Button("Refresh")) 24 | { 25 | scroll.RefreshCells(); 26 | } 27 | if(GUILayout.Button("Refill")) 28 | { 29 | scroll.RefillCells(); 30 | } 31 | if(GUILayout.Button("RefillFromEnd")) 32 | { 33 | scroll.RefillCellsFromEnd(); 34 | } 35 | EditorGUILayout.EndHorizontal(); 36 | 37 | EditorGUIUtility.labelWidth = 45; 38 | float w = (EditorGUIUtility.currentViewWidth - 100) / 2; 39 | EditorGUILayout.BeginHorizontal(); 40 | index = EditorGUILayout.IntField("Index", index, GUILayout.Width(w)); 41 | speed = EditorGUILayout.FloatField("Speed", speed, GUILayout.Width(w)); 42 | if(GUILayout.Button("Scroll", GUILayout.Width(45))) 43 | { 44 | scroll.SrollToCell(index, speed); 45 | } 46 | EditorGUILayout.EndHorizontal(); 47 | } 48 | } -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/Editor/LoopScrollRectInspector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 216d44a40b90b944db6c5f4624768e58 3 | timeCreated: 1439395663 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/Editor/SGDefaultControls.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections.Generic; 3 | 4 | namespace UnityEngine.UI 5 | { 6 | public static class SGDefaultControls 7 | { 8 | #region code from DefaultControls.cs 9 | public struct Resources 10 | { 11 | public Sprite standard; 12 | public Sprite background; 13 | public Sprite inputField; 14 | public Sprite knob; 15 | public Sprite checkmark; 16 | public Sprite dropdown; 17 | public Sprite mask; 18 | } 19 | 20 | private const float kWidth = 160f; 21 | private const float kThickHeight = 30f; 22 | private const float kThinHeight = 20f; 23 | //private static Vector2 s_ThickElementSize = new Vector2(kWidth, kThickHeight); 24 | //private static Vector2 s_ThinElementSize = new Vector2(kWidth, kThinHeight); 25 | //private static Vector2 s_ImageElementSize = new Vector2(100f, 100f); 26 | //private static Color s_DefaultSelectableColor = new Color(1f, 1f, 1f, 1f); 27 | //private static Color s_PanelColor = new Color(1f, 1f, 1f, 0.392f); 28 | private static Color s_TextColor = new Color(50f / 255f, 50f / 255f, 50f / 255f, 1f); 29 | 30 | // Helper methods at top 31 | 32 | private static GameObject CreateUIElementRoot(string name, Vector2 size) 33 | { 34 | GameObject child = new GameObject(name); 35 | RectTransform rectTransform = child.AddComponent(); 36 | rectTransform.sizeDelta = size; 37 | return child; 38 | } 39 | 40 | static GameObject CreateUIObject(string name, GameObject parent) 41 | { 42 | GameObject go = new GameObject(name); 43 | go.AddComponent(); 44 | SetParentAndAlign(go, parent); 45 | return go; 46 | } 47 | 48 | private static void SetDefaultTextValues(Text lbl) 49 | { 50 | // Set text values we want across UI elements in default controls. 51 | // Don't set values which are the same as the default values for the Text component, 52 | // since there's no point in that, and it's good to keep them as consistent as possible. 53 | lbl.color = s_TextColor; 54 | } 55 | 56 | private static void SetDefaultColorTransitionValues(Selectable slider) 57 | { 58 | ColorBlock colors = slider.colors; 59 | colors.highlightedColor = new Color(0.882f, 0.882f, 0.882f); 60 | colors.pressedColor = new Color(0.698f, 0.698f, 0.698f); 61 | colors.disabledColor = new Color(0.521f, 0.521f, 0.521f); 62 | } 63 | 64 | private static void SetParentAndAlign(GameObject child, GameObject parent) 65 | { 66 | if (parent == null) 67 | return; 68 | 69 | child.transform.SetParent(parent.transform, false); 70 | SetLayerRecursively(child, parent.layer); 71 | } 72 | 73 | private static void SetLayerRecursively(GameObject go, int layer) 74 | { 75 | go.layer = layer; 76 | Transform t = go.transform; 77 | for (int i = 0; i < t.childCount; i++) 78 | SetLayerRecursively(t.GetChild(i).gameObject, layer); 79 | } 80 | #endregion 81 | 82 | public static GameObject CreateLoopHorizontalScrollRect(DefaultControls.Resources resources) 83 | { 84 | GameObject root = CreateUIElementRoot("Loop Horizontal Scroll Rect", new Vector2(200, 200)); 85 | 86 | GameObject content = CreateUIObject("Content", root); 87 | 88 | RectTransform contentRT = content.GetComponent(); 89 | contentRT.anchorMin = new Vector2(0, 0.5f); 90 | contentRT.anchorMax = new Vector2(0, 0.5f); 91 | contentRT.sizeDelta = new Vector2(0, 200); 92 | contentRT.pivot = new Vector2(0, 0.5f); 93 | 94 | // Setup UI components. 95 | 96 | LoopHorizontalScrollRect scrollRect = root.AddComponent(); 97 | scrollRect.content = contentRT; 98 | scrollRect.viewport = null; 99 | scrollRect.horizontalScrollbar = null; 100 | scrollRect.verticalScrollbar = null; 101 | scrollRect.horizontal = true; 102 | scrollRect.vertical = false; 103 | scrollRect.horizontalScrollbarVisibility = LoopScrollRect.ScrollbarVisibility.Permanent; 104 | scrollRect.verticalScrollbarVisibility = LoopScrollRect.ScrollbarVisibility.Permanent; 105 | scrollRect.horizontalScrollbarSpacing = 0; 106 | scrollRect.verticalScrollbarSpacing = 0; 107 | 108 | root.AddComponent(); 109 | 110 | HorizontalLayoutGroup layoutGroup = content.AddComponent(); 111 | layoutGroup.childAlignment = TextAnchor.MiddleLeft; 112 | layoutGroup.childForceExpandWidth = false; 113 | layoutGroup.childForceExpandHeight = true; 114 | 115 | ContentSizeFitter sizeFitter = content.AddComponent(); 116 | sizeFitter.horizontalFit = ContentSizeFitter.FitMode.PreferredSize; 117 | sizeFitter.verticalFit = ContentSizeFitter.FitMode.Unconstrained; 118 | 119 | return root; 120 | } 121 | 122 | public static GameObject CreateLoopVerticalScrollRect(DefaultControls.Resources resources) 123 | { 124 | GameObject root = CreateUIElementRoot("Loop Vertical Scroll Rect", new Vector2(200, 200)); 125 | 126 | GameObject content = CreateUIObject("Content", root); 127 | 128 | RectTransform contentRT = content.GetComponent(); 129 | contentRT.anchorMin = new Vector2(0.5f, 1); 130 | contentRT.anchorMax = new Vector2(0.5f, 1); 131 | contentRT.sizeDelta = new Vector2(200, 0); 132 | contentRT.pivot = new Vector2(0.5f, 1); 133 | 134 | // Setup UI components. 135 | 136 | LoopVerticalScrollRect scrollRect = root.AddComponent(); 137 | scrollRect.content = contentRT; 138 | scrollRect.viewport = null; 139 | scrollRect.horizontalScrollbar = null; 140 | scrollRect.verticalScrollbar = null; 141 | scrollRect.horizontal = false; 142 | scrollRect.vertical = true; 143 | scrollRect.horizontalScrollbarVisibility = LoopScrollRect.ScrollbarVisibility.Permanent; 144 | scrollRect.verticalScrollbarVisibility = LoopScrollRect.ScrollbarVisibility.Permanent; 145 | scrollRect.horizontalScrollbarSpacing = 0; 146 | scrollRect.verticalScrollbarSpacing = 0; 147 | 148 | root.AddComponent(); 149 | 150 | VerticalLayoutGroup layoutGroup = content.AddComponent(); 151 | layoutGroup.childAlignment = TextAnchor.UpperCenter; 152 | layoutGroup.childForceExpandWidth = true; 153 | layoutGroup.childForceExpandHeight = false; 154 | 155 | ContentSizeFitter sizeFitter = content.AddComponent(); 156 | sizeFitter.horizontalFit = ContentSizeFitter.FitMode.Unconstrained; 157 | sizeFitter.verticalFit = ContentSizeFitter.FitMode.PreferredSize; 158 | 159 | return root; 160 | } 161 | } 162 | } 163 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/Editor/SGDefaultControls.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e2cfa47387224a4eb069fc6dc8ac8b3 3 | timeCreated: 1476279563 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/Editor/SGMenuOptions.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | using UnityEngine.UI; 4 | 5 | namespace UnityEditor.UI 6 | { 7 | static internal class SGMenuOptions 8 | { 9 | #region code from MenuOptions.cs 10 | private const string kUILayerName = "UI"; 11 | 12 | private const string kStandardSpritePath = "UI/Skin/UISprite.psd"; 13 | private const string kBackgroundSpritePath = "UI/Skin/Background.psd"; 14 | private const string kInputFieldBackgroundPath = "UI/Skin/InputFieldBackground.psd"; 15 | private const string kKnobPath = "UI/Skin/Knob.psd"; 16 | private const string kCheckmarkPath = "UI/Skin/Checkmark.psd"; 17 | private const string kDropdownArrowPath = "UI/Skin/DropdownArrow.psd"; 18 | private const string kMaskPath = "UI/Skin/UIMask.psd"; 19 | 20 | static private DefaultControls.Resources s_StandardResources; 21 | 22 | static private DefaultControls.Resources GetStandardResources() 23 | { 24 | if (s_StandardResources.standard == null) 25 | { 26 | s_StandardResources.standard = AssetDatabase.GetBuiltinExtraResource(kStandardSpritePath); 27 | s_StandardResources.background = AssetDatabase.GetBuiltinExtraResource(kBackgroundSpritePath); 28 | s_StandardResources.inputField = AssetDatabase.GetBuiltinExtraResource(kInputFieldBackgroundPath); 29 | s_StandardResources.knob = AssetDatabase.GetBuiltinExtraResource(kKnobPath); 30 | s_StandardResources.checkmark = AssetDatabase.GetBuiltinExtraResource(kCheckmarkPath); 31 | s_StandardResources.dropdown = AssetDatabase.GetBuiltinExtraResource(kDropdownArrowPath); 32 | s_StandardResources.mask = AssetDatabase.GetBuiltinExtraResource(kMaskPath); 33 | } 34 | return s_StandardResources; 35 | } 36 | 37 | private static void SetPositionVisibleinSceneView(RectTransform canvasRTransform, RectTransform itemTransform) 38 | { 39 | // Find the best scene view 40 | SceneView sceneView = SceneView.lastActiveSceneView; 41 | if (sceneView == null && SceneView.sceneViews.Count > 0) 42 | sceneView = SceneView.sceneViews[0] as SceneView; 43 | 44 | // Couldn't find a SceneView. Don't set position. 45 | if (sceneView == null || sceneView.camera == null) 46 | return; 47 | 48 | // Create world space Plane from canvas position. 49 | Vector2 localPlanePosition; 50 | Camera camera = sceneView.camera; 51 | Vector3 position = Vector3.zero; 52 | if (RectTransformUtility.ScreenPointToLocalPointInRectangle(canvasRTransform, new Vector2(camera.pixelWidth / 2, camera.pixelHeight / 2), camera, out localPlanePosition)) 53 | { 54 | // Adjust for canvas pivot 55 | localPlanePosition.x = localPlanePosition.x + canvasRTransform.sizeDelta.x * canvasRTransform.pivot.x; 56 | localPlanePosition.y = localPlanePosition.y + canvasRTransform.sizeDelta.y * canvasRTransform.pivot.y; 57 | 58 | localPlanePosition.x = Mathf.Clamp(localPlanePosition.x, 0, canvasRTransform.sizeDelta.x); 59 | localPlanePosition.y = Mathf.Clamp(localPlanePosition.y, 0, canvasRTransform.sizeDelta.y); 60 | 61 | // Adjust for anchoring 62 | position.x = localPlanePosition.x - canvasRTransform.sizeDelta.x * itemTransform.anchorMin.x; 63 | position.y = localPlanePosition.y - canvasRTransform.sizeDelta.y * itemTransform.anchorMin.y; 64 | 65 | Vector3 minLocalPosition; 66 | minLocalPosition.x = canvasRTransform.sizeDelta.x * (0 - canvasRTransform.pivot.x) + itemTransform.sizeDelta.x * itemTransform.pivot.x; 67 | minLocalPosition.y = canvasRTransform.sizeDelta.y * (0 - canvasRTransform.pivot.y) + itemTransform.sizeDelta.y * itemTransform.pivot.y; 68 | 69 | Vector3 maxLocalPosition; 70 | maxLocalPosition.x = canvasRTransform.sizeDelta.x * (1 - canvasRTransform.pivot.x) - itemTransform.sizeDelta.x * itemTransform.pivot.x; 71 | maxLocalPosition.y = canvasRTransform.sizeDelta.y * (1 - canvasRTransform.pivot.y) - itemTransform.sizeDelta.y * itemTransform.pivot.y; 72 | 73 | position.x = Mathf.Clamp(position.x, minLocalPosition.x, maxLocalPosition.x); 74 | position.y = Mathf.Clamp(position.y, minLocalPosition.y, maxLocalPosition.y); 75 | } 76 | 77 | itemTransform.anchoredPosition = position; 78 | itemTransform.localRotation = Quaternion.identity; 79 | itemTransform.localScale = Vector3.one; 80 | } 81 | 82 | private static void PlaceUIElementRoot(GameObject element, MenuCommand menuCommand) 83 | { 84 | GameObject parent = menuCommand.context as GameObject; 85 | if (parent == null || parent.GetComponentInParent() == null) 86 | { 87 | parent = GetOrCreateCanvasGameObject(); 88 | } 89 | 90 | string uniqueName = GameObjectUtility.GetUniqueNameForSibling(parent.transform, element.name); 91 | element.name = uniqueName; 92 | Undo.RegisterCreatedObjectUndo(element, "Create " + element.name); 93 | Undo.SetTransformParent(element.transform, parent.transform, "Parent " + element.name); 94 | GameObjectUtility.SetParentAndAlign(element, parent); 95 | if (parent != menuCommand.context) // not a context click, so center in sceneview 96 | SetPositionVisibleinSceneView(parent.GetComponent(), element.GetComponent()); 97 | 98 | Selection.activeGameObject = element; 99 | } 100 | 101 | static public GameObject CreateNewUI() 102 | { 103 | // Root for the UI 104 | var root = new GameObject("Canvas"); 105 | root.layer = LayerMask.NameToLayer(kUILayerName); 106 | Canvas canvas = root.AddComponent(); 107 | canvas.renderMode = RenderMode.ScreenSpaceOverlay; 108 | root.AddComponent(); 109 | root.AddComponent(); 110 | Undo.RegisterCreatedObjectUndo(root, "Create " + root.name); 111 | 112 | // if there is no event system add one... 113 | // CreateEventSystem(false); 114 | return root; 115 | } 116 | 117 | // Helper function that returns a Canvas GameObject; preferably a parent of the selection, or other existing Canvas. 118 | static public GameObject GetOrCreateCanvasGameObject() 119 | { 120 | GameObject selectedGo = Selection.activeGameObject; 121 | 122 | // Try to find a gameobject that is the selected GO or one if its parents. 123 | Canvas canvas = (selectedGo != null) ? selectedGo.GetComponentInParent() : null; 124 | if (canvas != null && canvas.gameObject.activeInHierarchy) 125 | return canvas.gameObject; 126 | 127 | // No canvas in selection or its parents? Then use just any canvas.. 128 | canvas = Object.FindObjectOfType(typeof(Canvas)) as Canvas; 129 | if (canvas != null && canvas.gameObject.activeInHierarchy) 130 | return canvas.gameObject; 131 | 132 | // No canvas in the scene at all? Then create a new one. 133 | return SGMenuOptions.CreateNewUI(); 134 | } 135 | #endregion 136 | 137 | [MenuItem("GameObject/UI/Loop Horizontal Scroll Rect", false, 2151)] 138 | static public void AddLoopHorizontalScrollRect(MenuCommand menuCommand) 139 | { 140 | GameObject go = SGDefaultControls.CreateLoopHorizontalScrollRect(GetStandardResources()); 141 | PlaceUIElementRoot(go, menuCommand); 142 | } 143 | 144 | [MenuItem("GameObject/UI/Loop Vertical Scroll Rect", false, 2152)] 145 | static public void AddLoopVerticalScrollRect(MenuCommand menuCommand) 146 | { 147 | GameObject go = SGDefaultControls.CreateLoopVerticalScrollRect(GetStandardResources()); 148 | PlaceUIElementRoot(go, menuCommand); 149 | } 150 | } 151 | } -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/Editor/SGMenuOptions.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4b63bf28f5af0e42a464ac316fef603 3 | timeCreated: 1476279563 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/InitOnStart.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using UnityEngine.UI; 4 | 5 | namespace SG 6 | { 7 | [RequireComponent(typeof(UnityEngine.UI.LoopScrollRect))] 8 | [DisallowMultipleComponent] 9 | public class InitOnStart : MonoBehaviour 10 | { 11 | public int totalCount = -1; 12 | void Start() 13 | { 14 | var ls = GetComponent(); 15 | ls.totalCount = totalCount; 16 | ls.RefillCells(); 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/InitOnStart.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c41ca759a5d70b448b991ca2699766ba 3 | timeCreated: 1476327660 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/LoopHorizontalScrollRect.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | namespace UnityEngine.UI 5 | { 6 | [AddComponentMenu("UI/Loop Horizontal Scroll Rect", 50)] 7 | [DisallowMultipleComponent] 8 | public class LoopHorizontalScrollRect : LoopScrollRect 9 | { 10 | protected override float GetSize(RectTransform item) 11 | { 12 | float size = contentSpacing; 13 | if (m_GridLayout != null) 14 | { 15 | size += m_GridLayout.cellSize.x; 16 | } 17 | else 18 | { 19 | size += LayoutUtility.GetPreferredWidth(item); 20 | } 21 | return size; 22 | } 23 | 24 | protected override float GetDimension(Vector2 vector) 25 | { 26 | return -vector.x; 27 | } 28 | 29 | protected override Vector2 GetVector(float value) 30 | { 31 | return new Vector2(-value, 0); 32 | } 33 | 34 | protected override void Awake() 35 | { 36 | base.Awake(); 37 | directionSign = 1; 38 | 39 | GridLayoutGroup layout = content.GetComponent(); 40 | if (layout != null && layout.constraint != GridLayoutGroup.Constraint.FixedRowCount) 41 | { 42 | Debug.LogError("[LoopHorizontalScrollRect] unsupported GridLayoutGroup constraint"); 43 | } 44 | } 45 | 46 | protected override bool UpdateItems(Bounds viewBounds, Bounds contentBounds) 47 | { 48 | bool changed = false; 49 | if (viewBounds.max.x > contentBounds.max.x) 50 | { 51 | float size = NewItemAtEnd(), totalSize = size; 52 | while (size > 0 && viewBounds.max.x > contentBounds.max.x + totalSize) 53 | { 54 | size = NewItemAtEnd(); 55 | totalSize += size; 56 | } 57 | if (totalSize > 0) 58 | changed = true; 59 | } 60 | else if (viewBounds.max.x < contentBounds.max.x - threshold) 61 | { 62 | float size = DeleteItemAtEnd(), totalSize = size; 63 | while (size > 0 && viewBounds.max.x < contentBounds.max.x - threshold - totalSize) 64 | { 65 | size = DeleteItemAtEnd(); 66 | totalSize += size; 67 | } 68 | if (totalSize > 0) 69 | changed = true; 70 | } 71 | 72 | if (viewBounds.min.x < contentBounds.min.x) 73 | { 74 | float size = NewItemAtStart(), totalSize = size; 75 | while (size > 0 && viewBounds.min.x < contentBounds.min.x - totalSize) 76 | { 77 | size = NewItemAtStart(); 78 | totalSize += size; 79 | } 80 | if (totalSize > 0) 81 | changed = true; 82 | } 83 | else if (viewBounds.min.x > contentBounds.min.x + threshold) 84 | { 85 | float size = DeleteItemAtStart(), totalSize = size; 86 | while (size > 0 && viewBounds.min.x > contentBounds.min.x + threshold + totalSize) 87 | { 88 | size = DeleteItemAtStart(); 89 | totalSize += size; 90 | } 91 | if (totalSize > 0) 92 | changed = true; 93 | } 94 | return changed; 95 | } 96 | } 97 | } -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/LoopHorizontalScrollRect.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab7b38d60c9f6a944831d24146f39793 3 | timeCreated: 1439395663 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/LoopScrollDataSource.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | namespace UnityEngine.UI 5 | { 6 | public abstract class LoopScrollDataSource 7 | { 8 | public abstract void ProvideData(Transform transform, int idx); 9 | } 10 | 11 | public class LoopScrollSendIndexSource : LoopScrollDataSource 12 | { 13 | public static readonly LoopScrollSendIndexSource Instance = new LoopScrollSendIndexSource(); 14 | 15 | LoopScrollSendIndexSource(){} 16 | 17 | public override void ProvideData(Transform transform, int idx) 18 | { 19 | transform.SendMessage("ScrollCellIndex", idx); 20 | } 21 | } 22 | 23 | public class LoopScrollArraySource : LoopScrollDataSource 24 | { 25 | T[] objectsToFill; 26 | 27 | public LoopScrollArraySource(T[] objectsToFill) 28 | { 29 | this.objectsToFill = objectsToFill; 30 | } 31 | 32 | public override void ProvideData(Transform transform, int idx) 33 | { 34 | transform.SendMessage("ScrollCellContent", objectsToFill[idx]); 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/LoopScrollDataSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: be1ddd0ddf17846f0b38566071ee623e 3 | timeCreated: 1500356133 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/LoopScrollPrefabSource.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | namespace UnityEngine.UI 5 | { 6 | [System.Serializable] 7 | public class LoopScrollPrefabSource 8 | { 9 | public string prefabName; 10 | public int poolSize = 5; 11 | 12 | private bool inited = false; 13 | public virtual GameObject GetObject() 14 | { 15 | if(!inited) 16 | { 17 | SG.ResourceManager.Instance.InitPool(prefabName, poolSize); 18 | inited = true; 19 | } 20 | return SG.ResourceManager.Instance.GetObjectFromPool(prefabName); 21 | } 22 | 23 | public virtual void ReturnObject(Transform go) 24 | { 25 | go.SendMessage("ScrollCellReturn", SendMessageOptions.DontRequireReceiver); 26 | SG.ResourceManager.Instance.ReturnObjectToPool(go.gameObject); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/LoopScrollPrefabSource.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4cea3807a046c4500be20219e5c46432 3 | timeCreated: 1500356133 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/LoopScrollRect.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 33aaabb8aa0854047a50d2d2b0c6f1a5 3 | timeCreated: 1439395663 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/LoopVerticalScrollRect.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.UI; 3 | using System.Collections; 4 | 5 | namespace UnityEngine.UI 6 | { 7 | [AddComponentMenu("UI/Loop Vertical Scroll Rect", 51)] 8 | [DisallowMultipleComponent] 9 | public class LoopVerticalScrollRect : LoopScrollRect 10 | { 11 | protected override float GetSize(RectTransform item) 12 | { 13 | float size = contentSpacing; 14 | if (m_GridLayout != null) 15 | { 16 | size += m_GridLayout.cellSize.y; 17 | } 18 | else 19 | { 20 | size += LayoutUtility.GetPreferredHeight(item); 21 | } 22 | return size; 23 | } 24 | 25 | protected override float GetDimension(Vector2 vector) 26 | { 27 | return vector.y; 28 | } 29 | 30 | protected override Vector2 GetVector(float value) 31 | { 32 | return new Vector2(0, value); 33 | } 34 | 35 | protected override void Awake() 36 | { 37 | base.Awake(); 38 | directionSign = -1; 39 | 40 | GridLayoutGroup layout = content.GetComponent(); 41 | if (layout != null && layout.constraint != GridLayoutGroup.Constraint.FixedColumnCount) 42 | { 43 | Debug.LogError("[LoopHorizontalScrollRect] unsupported GridLayoutGroup constraint"); 44 | } 45 | } 46 | 47 | protected override bool UpdateItems(Bounds viewBounds, Bounds contentBounds) 48 | { 49 | bool changed = false; 50 | if (viewBounds.min.y < contentBounds.min.y) 51 | { 52 | float size = NewItemAtEnd(), totalSize = size; 53 | while(size > 0 && viewBounds.min.y < contentBounds.min.y - totalSize) 54 | { 55 | size = NewItemAtEnd(); 56 | totalSize += size; 57 | } 58 | if (totalSize > 0) 59 | changed = true; 60 | } 61 | else if (viewBounds.min.y > contentBounds.min.y + threshold) 62 | { 63 | float size = DeleteItemAtEnd(), totalSize = size; 64 | while (size > 0 && viewBounds.min.y > contentBounds.min.y + threshold + totalSize) 65 | { 66 | size = DeleteItemAtEnd(); 67 | totalSize += size; 68 | } 69 | if (totalSize > 0) 70 | changed = true; 71 | } 72 | 73 | if (viewBounds.max.y > contentBounds.max.y) 74 | { 75 | float size = NewItemAtStart(), totalSize = size; 76 | while (size > 0 && viewBounds.max.y > contentBounds.max.y + totalSize) 77 | { 78 | size = NewItemAtStart(); 79 | totalSize += size; 80 | } 81 | if (totalSize > 0) 82 | changed = true; 83 | } 84 | else if (viewBounds.max.y < contentBounds.max.y - threshold) 85 | { 86 | float size = DeleteItemAtStart(), totalSize = size; 87 | while (size > 0 && viewBounds.max.y < contentBounds.max.y - threshold - totalSize) 88 | { 89 | size = DeleteItemAtStart(); 90 | totalSize += size; 91 | } 92 | if (totalSize > 0) 93 | changed = true; 94 | } 95 | return changed; 96 | } 97 | } 98 | } -------------------------------------------------------------------------------- /Assets/LoopScrollRect/Scripts/LoopVerticalScrollRect.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce71017a2903f7c4c9a699e438d0b897 3 | timeCreated: 1439395663 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/WDataTable.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb82a16ad59d5564697d6c32fee10b77 3 | folderAsset: yes 4 | timeCreated: 1493889722 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/WDataTable/Demo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e4a4d8ba6f8c324383fa0f1d863d26c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/WDataTable/Demo/DynamicData.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94799a16bae4c2c449e08a371fc75af3 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/WDataTable/Demo/DynamicSize.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0.44657844, g: 0.49641222, b: 0.57481694, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 0 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_TemporalCoherenceThreshold: 1 54 | m_EnvironmentLightingMode: 0 55 | m_EnableBakedLightmaps: 1 56 | m_EnableRealtimeLightmaps: 1 57 | m_LightmapEditorSettings: 58 | serializedVersion: 10 59 | m_Resolution: 2 60 | m_BakeResolution: 40 61 | m_AtlasSize: 1024 62 | m_AO: 0 63 | m_AOMaxDistance: 1 64 | m_CompAOExponent: 1 65 | m_CompAOExponentDirect: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 1 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 500 79 | m_PVRBounces: 2 80 | m_PVRFilterTypeDirect: 0 81 | m_PVRFilterTypeIndirect: 0 82 | m_PVRFilterTypeAO: 0 83 | m_PVRFilteringMode: 1 84 | m_PVRCulling: 1 85 | m_PVRFilteringGaussRadiusDirect: 1 86 | m_PVRFilteringGaussRadiusIndirect: 5 87 | m_PVRFilteringGaussRadiusAO: 2 88 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 89 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 90 | m_PVRFilteringAtrousPositionSigmaAO: 1 91 | m_ShowResolutionOverlay: 1 92 | m_LightingDataAsset: {fileID: 0} 93 | m_UseShadowmask: 1 94 | --- !u!196 &4 95 | NavMeshSettings: 96 | serializedVersion: 2 97 | m_ObjectHideFlags: 0 98 | m_BuildSettings: 99 | serializedVersion: 2 100 | agentTypeID: 0 101 | agentRadius: 0.5 102 | agentHeight: 2 103 | agentSlope: 45 104 | agentClimb: 0.4 105 | ledgeDropHeight: 0 106 | maxJumpAcrossDistance: 0 107 | minRegionArea: 2 108 | manualCellSize: 0 109 | cellSize: 0.16666667 110 | manualTileSize: 0 111 | tileSize: 256 112 | accuratePlacement: 0 113 | debug: 114 | m_Flags: 0 115 | m_NavMeshData: {fileID: 0} 116 | --- !u!224 &903664774 stripped 117 | RectTransform: 118 | m_CorrespondingSourceObject: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 119 | type: 2} 120 | m_PrefabInternal: {fileID: 1184046971} 121 | --- !u!114 &903664776 stripped 122 | MonoBehaviour: 123 | m_CorrespondingSourceObject: {fileID: 114853463139825760, guid: 69d721592acc55241bcdc08f14b18e36, 124 | type: 2} 125 | m_PrefabInternal: {fileID: 1184046971} 126 | m_Script: {fileID: 11500000, guid: 7f2049e846635d840ab6e631aee9f094, type: 3} 127 | --- !u!1001 &1184046971 128 | Prefab: 129 | m_ObjectHideFlags: 0 130 | serializedVersion: 2 131 | m_Modification: 132 | m_TransformParent: {fileID: 1368583369} 133 | m_Modifications: 134 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 135 | type: 2} 136 | propertyPath: m_LocalPosition.x 137 | value: 0 138 | objectReference: {fileID: 0} 139 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 140 | type: 2} 141 | propertyPath: m_LocalPosition.y 142 | value: 0 143 | objectReference: {fileID: 0} 144 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 145 | type: 2} 146 | propertyPath: m_LocalPosition.z 147 | value: 0 148 | objectReference: {fileID: 0} 149 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 150 | type: 2} 151 | propertyPath: m_LocalRotation.x 152 | value: 0 153 | objectReference: {fileID: 0} 154 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 155 | type: 2} 156 | propertyPath: m_LocalRotation.y 157 | value: 0 158 | objectReference: {fileID: 0} 159 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 160 | type: 2} 161 | propertyPath: m_LocalRotation.z 162 | value: 0 163 | objectReference: {fileID: 0} 164 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 165 | type: 2} 166 | propertyPath: m_LocalRotation.w 167 | value: 1 168 | objectReference: {fileID: 0} 169 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 170 | type: 2} 171 | propertyPath: m_RootOrder 172 | value: 0 173 | objectReference: {fileID: 0} 174 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 175 | type: 2} 176 | propertyPath: m_AnchoredPosition.x 177 | value: -200 178 | objectReference: {fileID: 0} 179 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 180 | type: 2} 181 | propertyPath: m_AnchoredPosition.y 182 | value: 100 183 | objectReference: {fileID: 0} 184 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 185 | type: 2} 186 | propertyPath: m_SizeDelta.x 187 | value: 0 188 | objectReference: {fileID: 0} 189 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 190 | type: 2} 191 | propertyPath: m_SizeDelta.y 192 | value: 0 193 | objectReference: {fileID: 0} 194 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 195 | type: 2} 196 | propertyPath: m_AnchorMin.x 197 | value: 0.5 198 | objectReference: {fileID: 0} 199 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 200 | type: 2} 201 | propertyPath: m_AnchorMin.y 202 | value: 0.5 203 | objectReference: {fileID: 0} 204 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 205 | type: 2} 206 | propertyPath: m_AnchorMax.x 207 | value: 0.5 208 | objectReference: {fileID: 0} 209 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 210 | type: 2} 211 | propertyPath: m_AnchorMax.y 212 | value: 0.5 213 | objectReference: {fileID: 0} 214 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 215 | type: 2} 216 | propertyPath: m_Pivot.x 217 | value: 0.5 218 | objectReference: {fileID: 0} 219 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 220 | type: 2} 221 | propertyPath: m_Pivot.y 222 | value: 0.5 223 | objectReference: {fileID: 0} 224 | - target: {fileID: 1479736763517910, guid: 69d721592acc55241bcdc08f14b18e36, type: 2} 225 | propertyPath: m_Name 226 | value: Table 227 | objectReference: {fileID: 0} 228 | m_RemovedComponents: [] 229 | m_SourcePrefab: {fileID: 100100000, guid: 69d721592acc55241bcdc08f14b18e36, type: 2} 230 | m_IsPrefabAsset: 0 231 | --- !u!1 &1241462623 232 | GameObject: 233 | m_ObjectHideFlags: 0 234 | m_CorrespondingSourceObject: {fileID: 0} 235 | m_PrefabInternal: {fileID: 0} 236 | serializedVersion: 6 237 | m_Component: 238 | - component: {fileID: 1241462625} 239 | - component: {fileID: 1241462624} 240 | m_Layer: 0 241 | m_Name: Example 242 | m_TagString: Untagged 243 | m_Icon: {fileID: 0} 244 | m_NavMeshLayer: 0 245 | m_StaticEditorFlags: 0 246 | m_IsActive: 1 247 | --- !u!114 &1241462624 248 | MonoBehaviour: 249 | m_ObjectHideFlags: 0 250 | m_CorrespondingSourceObject: {fileID: 0} 251 | m_PrefabInternal: {fileID: 0} 252 | m_GameObject: {fileID: 1241462623} 253 | m_Enabled: 1 254 | m_EditorHideFlags: 0 255 | m_Script: {fileID: 11500000, guid: afd17dee6e863f14a89d8bb284ddbbde, type: 3} 256 | m_Name: 257 | m_EditorClassIdentifier: 258 | dataTable: {fileID: 903664776} 259 | testDynamic: 1 260 | --- !u!4 &1241462625 261 | Transform: 262 | m_ObjectHideFlags: 0 263 | m_CorrespondingSourceObject: {fileID: 0} 264 | m_PrefabInternal: {fileID: 0} 265 | m_GameObject: {fileID: 1241462623} 266 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 267 | m_LocalPosition: {x: 640, y: 360, z: 0} 268 | m_LocalScale: {x: 1, y: 1, z: 1} 269 | m_Children: [] 270 | m_Father: {fileID: 0} 271 | m_RootOrder: 3 272 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 273 | --- !u!1 &1323980759 274 | GameObject: 275 | m_ObjectHideFlags: 0 276 | m_CorrespondingSourceObject: {fileID: 0} 277 | m_PrefabInternal: {fileID: 0} 278 | serializedVersion: 6 279 | m_Component: 280 | - component: {fileID: 1323980762} 281 | - component: {fileID: 1323980761} 282 | - component: {fileID: 1323980760} 283 | m_Layer: 0 284 | m_Name: Main Camera 285 | m_TagString: MainCamera 286 | m_Icon: {fileID: 0} 287 | m_NavMeshLayer: 0 288 | m_StaticEditorFlags: 0 289 | m_IsActive: 1 290 | --- !u!81 &1323980760 291 | AudioListener: 292 | m_ObjectHideFlags: 0 293 | m_CorrespondingSourceObject: {fileID: 0} 294 | m_PrefabInternal: {fileID: 0} 295 | m_GameObject: {fileID: 1323980759} 296 | m_Enabled: 1 297 | --- !u!20 &1323980761 298 | Camera: 299 | m_ObjectHideFlags: 0 300 | m_CorrespondingSourceObject: {fileID: 0} 301 | m_PrefabInternal: {fileID: 0} 302 | m_GameObject: {fileID: 1323980759} 303 | m_Enabled: 1 304 | serializedVersion: 2 305 | m_ClearFlags: 1 306 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 307 | m_projectionMatrixMode: 1 308 | m_SensorSize: {x: 36, y: 24} 309 | m_LensShift: {x: 0, y: 0} 310 | m_FocalLength: 50 311 | m_NormalizedViewPortRect: 312 | serializedVersion: 2 313 | x: 0 314 | y: 0 315 | width: 1 316 | height: 1 317 | near clip plane: 0.3 318 | far clip plane: 1000 319 | field of view: 60 320 | orthographic: 0 321 | orthographic size: 5 322 | m_Depth: -1 323 | m_CullingMask: 324 | serializedVersion: 2 325 | m_Bits: 4294967295 326 | m_RenderingPath: -1 327 | m_TargetTexture: {fileID: 0} 328 | m_TargetDisplay: 0 329 | m_TargetEye: 3 330 | m_HDR: 1 331 | m_AllowMSAA: 1 332 | m_AllowDynamicResolution: 0 333 | m_ForceIntoRT: 0 334 | m_OcclusionCulling: 1 335 | m_StereoConvergence: 10 336 | m_StereoSeparation: 0.022 337 | --- !u!4 &1323980762 338 | Transform: 339 | m_ObjectHideFlags: 0 340 | m_CorrespondingSourceObject: {fileID: 0} 341 | m_PrefabInternal: {fileID: 0} 342 | m_GameObject: {fileID: 1323980759} 343 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 344 | m_LocalPosition: {x: 0, y: 1, z: -10} 345 | m_LocalScale: {x: 1, y: 1, z: 1} 346 | m_Children: [] 347 | m_Father: {fileID: 0} 348 | m_RootOrder: 0 349 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 350 | --- !u!1 &1368583365 351 | GameObject: 352 | m_ObjectHideFlags: 0 353 | m_CorrespondingSourceObject: {fileID: 0} 354 | m_PrefabInternal: {fileID: 0} 355 | serializedVersion: 6 356 | m_Component: 357 | - component: {fileID: 1368583369} 358 | - component: {fileID: 1368583368} 359 | - component: {fileID: 1368583367} 360 | - component: {fileID: 1368583366} 361 | m_Layer: 5 362 | m_Name: Canvas 363 | m_TagString: Untagged 364 | m_Icon: {fileID: 0} 365 | m_NavMeshLayer: 0 366 | m_StaticEditorFlags: 0 367 | m_IsActive: 1 368 | --- !u!114 &1368583366 369 | MonoBehaviour: 370 | m_ObjectHideFlags: 0 371 | m_CorrespondingSourceObject: {fileID: 0} 372 | m_PrefabInternal: {fileID: 0} 373 | m_GameObject: {fileID: 1368583365} 374 | m_Enabled: 1 375 | m_EditorHideFlags: 0 376 | m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} 377 | m_Name: 378 | m_EditorClassIdentifier: 379 | m_IgnoreReversedGraphics: 1 380 | m_BlockingObjects: 0 381 | m_BlockingMask: 382 | serializedVersion: 2 383 | m_Bits: 4294967295 384 | --- !u!114 &1368583367 385 | MonoBehaviour: 386 | m_ObjectHideFlags: 0 387 | m_CorrespondingSourceObject: {fileID: 0} 388 | m_PrefabInternal: {fileID: 0} 389 | m_GameObject: {fileID: 1368583365} 390 | m_Enabled: 1 391 | m_EditorHideFlags: 0 392 | m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} 393 | m_Name: 394 | m_EditorClassIdentifier: 395 | m_UiScaleMode: 0 396 | m_ReferencePixelsPerUnit: 100 397 | m_ScaleFactor: 1 398 | m_ReferenceResolution: {x: 800, y: 600} 399 | m_ScreenMatchMode: 0 400 | m_MatchWidthOrHeight: 0 401 | m_PhysicalUnit: 3 402 | m_FallbackScreenDPI: 96 403 | m_DefaultSpriteDPI: 96 404 | m_DynamicPixelsPerUnit: 1 405 | --- !u!223 &1368583368 406 | Canvas: 407 | m_ObjectHideFlags: 0 408 | m_CorrespondingSourceObject: {fileID: 0} 409 | m_PrefabInternal: {fileID: 0} 410 | m_GameObject: {fileID: 1368583365} 411 | m_Enabled: 1 412 | serializedVersion: 3 413 | m_RenderMode: 0 414 | m_Camera: {fileID: 0} 415 | m_PlaneDistance: 100 416 | m_PixelPerfect: 0 417 | m_ReceivesEvents: 1 418 | m_OverrideSorting: 0 419 | m_OverridePixelPerfect: 0 420 | m_SortingBucketNormalizedSize: 0 421 | m_AdditionalShaderChannelsFlag: 25 422 | m_SortingLayerID: 0 423 | m_SortingOrder: 0 424 | m_TargetDisplay: 0 425 | --- !u!224 &1368583369 426 | RectTransform: 427 | m_ObjectHideFlags: 0 428 | m_CorrespondingSourceObject: {fileID: 0} 429 | m_PrefabInternal: {fileID: 0} 430 | m_GameObject: {fileID: 1368583365} 431 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 432 | m_LocalPosition: {x: 0, y: 0, z: 0} 433 | m_LocalScale: {x: 0, y: 0, z: 0} 434 | m_Children: 435 | - {fileID: 903664774} 436 | m_Father: {fileID: 0} 437 | m_RootOrder: 2 438 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 439 | m_AnchorMin: {x: 0, y: 0} 440 | m_AnchorMax: {x: 0, y: 0} 441 | m_AnchoredPosition: {x: 0, y: 0} 442 | m_SizeDelta: {x: 0, y: 0} 443 | m_Pivot: {x: 0, y: 0} 444 | --- !u!1 &1817241388 445 | GameObject: 446 | m_ObjectHideFlags: 0 447 | m_CorrespondingSourceObject: {fileID: 0} 448 | m_PrefabInternal: {fileID: 0} 449 | serializedVersion: 6 450 | m_Component: 451 | - component: {fileID: 1817241391} 452 | - component: {fileID: 1817241390} 453 | - component: {fileID: 1817241389} 454 | m_Layer: 0 455 | m_Name: EventSystem 456 | m_TagString: Untagged 457 | m_Icon: {fileID: 0} 458 | m_NavMeshLayer: 0 459 | m_StaticEditorFlags: 0 460 | m_IsActive: 1 461 | --- !u!114 &1817241389 462 | MonoBehaviour: 463 | m_ObjectHideFlags: 0 464 | m_CorrespondingSourceObject: {fileID: 0} 465 | m_PrefabInternal: {fileID: 0} 466 | m_GameObject: {fileID: 1817241388} 467 | m_Enabled: 1 468 | m_EditorHideFlags: 0 469 | m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} 470 | m_Name: 471 | m_EditorClassIdentifier: 472 | m_HorizontalAxis: Horizontal 473 | m_VerticalAxis: Vertical 474 | m_SubmitButton: Submit 475 | m_CancelButton: Cancel 476 | m_InputActionsPerSecond: 10 477 | m_RepeatDelay: 0.5 478 | m_ForceModuleActive: 0 479 | --- !u!114 &1817241390 480 | MonoBehaviour: 481 | m_ObjectHideFlags: 0 482 | m_CorrespondingSourceObject: {fileID: 0} 483 | m_PrefabInternal: {fileID: 0} 484 | m_GameObject: {fileID: 1817241388} 485 | m_Enabled: 1 486 | m_EditorHideFlags: 0 487 | m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} 488 | m_Name: 489 | m_EditorClassIdentifier: 490 | m_FirstSelected: {fileID: 0} 491 | m_sendNavigationEvents: 1 492 | m_DragThreshold: 10 493 | --- !u!4 &1817241391 494 | Transform: 495 | m_ObjectHideFlags: 0 496 | m_CorrespondingSourceObject: {fileID: 0} 497 | m_PrefabInternal: {fileID: 0} 498 | m_GameObject: {fileID: 1817241388} 499 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 500 | m_LocalPosition: {x: 0, y: 0, z: 0} 501 | m_LocalScale: {x: 1, y: 1, z: 1} 502 | m_Children: [] 503 | m_Father: {fileID: 0} 504 | m_RootOrder: 4 505 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 506 | --- !u!1 &2006915935 507 | GameObject: 508 | m_ObjectHideFlags: 0 509 | m_CorrespondingSourceObject: {fileID: 0} 510 | m_PrefabInternal: {fileID: 0} 511 | serializedVersion: 6 512 | m_Component: 513 | - component: {fileID: 2006915937} 514 | - component: {fileID: 2006915936} 515 | m_Layer: 0 516 | m_Name: Directional Light 517 | m_TagString: Untagged 518 | m_Icon: {fileID: 0} 519 | m_NavMeshLayer: 0 520 | m_StaticEditorFlags: 0 521 | m_IsActive: 1 522 | --- !u!108 &2006915936 523 | Light: 524 | m_ObjectHideFlags: 0 525 | m_CorrespondingSourceObject: {fileID: 0} 526 | m_PrefabInternal: {fileID: 0} 527 | m_GameObject: {fileID: 2006915935} 528 | m_Enabled: 1 529 | serializedVersion: 8 530 | m_Type: 1 531 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 532 | m_Intensity: 1 533 | m_Range: 10 534 | m_SpotAngle: 30 535 | m_CookieSize: 10 536 | m_Shadows: 537 | m_Type: 2 538 | m_Resolution: -1 539 | m_CustomResolution: -1 540 | m_Strength: 1 541 | m_Bias: 0.05 542 | m_NormalBias: 0.4 543 | m_NearPlane: 0.2 544 | m_Cookie: {fileID: 0} 545 | m_DrawHalo: 0 546 | m_Flare: {fileID: 0} 547 | m_RenderMode: 0 548 | m_CullingMask: 549 | serializedVersion: 2 550 | m_Bits: 4294967295 551 | m_Lightmapping: 4 552 | m_LightShadowCasterMode: 0 553 | m_AreaSize: {x: 1, y: 1} 554 | m_BounceIntensity: 1 555 | m_ColorTemperature: 6570 556 | m_UseColorTemperature: 0 557 | m_ShadowRadius: 0 558 | m_ShadowAngle: 0 559 | --- !u!4 &2006915937 560 | Transform: 561 | m_ObjectHideFlags: 0 562 | m_CorrespondingSourceObject: {fileID: 0} 563 | m_PrefabInternal: {fileID: 0} 564 | m_GameObject: {fileID: 2006915935} 565 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 566 | m_LocalPosition: {x: 0, y: 3, z: 0} 567 | m_LocalScale: {x: 1, y: 1, z: 1} 568 | m_Children: [] 569 | m_Father: {fileID: 0} 570 | m_RootOrder: 1 571 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 572 | -------------------------------------------------------------------------------- /Assets/WDataTable/Demo/DynamicSize.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f16b6abd2b815d64a972f4c40366d077 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/WDataTable/Demo/Example.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | using WDT; 6 | 7 | public class Example : MonoBehaviour 8 | { 9 | public WDataTable dataTable; 10 | public bool testDynamic; 11 | public bool testTextMeshPro; 12 | public Text text; 13 | 14 | private List> m_datas = null; 15 | private List m_columnDefs = null; 16 | private int m_tempSelectIndex = -1; 17 | 18 | // Use this for initialization 19 | void Start() 20 | { 21 | m_datas = new List>(); 22 | // name is necessary in columnDefs 23 | m_columnDefs = new List 24 | { 25 | new WColumnDef() {name = "ID", width = "40"}, 26 | new WColumnDef() 27 | { 28 | name = "A", 29 | elementPrefabName = "ButtonElement", 30 | headPrefabName = "TextElement" 31 | }, 32 | new WColumnDef() {name = "B"}, 33 | new WColumnDef() {name = "C"}, 34 | new WColumnDef() {name = "D", width = "50%", disableSort = true} 35 | }; 36 | 37 | for (int i = 0; i < 30; i++) 38 | { 39 | m_datas.Add(GetRandomData(i)); 40 | } 41 | 42 | if (testTextMeshPro) 43 | { 44 | dataTable.defaultHeadPrefabName = "TMPButtonElement"; 45 | dataTable.defaultElementPrefabName = "TMPTextElement"; 46 | } 47 | dataTable.msgHandle += HandleTableEvent; 48 | dataTable.InitDataTable(m_datas, m_columnDefs); 49 | } 50 | 51 | public void HandleTableEvent(WEventType messageType, params object[] args) 52 | { 53 | if (messageType == WEventType.INIT_ELEMENT) 54 | { 55 | int rowIndex = (int) args[0]; 56 | int columnIndex = (int) args[1]; 57 | WElement element = args[2] as WElement; 58 | if (element == null) 59 | return; 60 | Text tText = element.GetComponent(); 61 | if (tText == null) 62 | return; 63 | tText.color = columnIndex % 2 == 0 ? Color.blue : Color.red; 64 | } 65 | else if (messageType == WEventType.SELECT_ROW) 66 | { 67 | int rowIndex = (int) args[0]; 68 | if (text != null) 69 | text.text = "Select Row" + rowIndex; 70 | m_tempSelectIndex = rowIndex; 71 | } 72 | } 73 | 74 | private List GetRandomData(int i = -1) 75 | { 76 | return new List 77 | { 78 | i, 79 | "dsada" + i, 80 | 20.1 + i, 81 | Random.Range(0.0f, 1.0f), 82 | new Vector3(1, i, 2) 83 | }; 84 | } 85 | 86 | public void AddRow() 87 | { 88 | m_datas.Add(GetRandomData()); 89 | dataTable.UpdateData(m_datas); 90 | } 91 | 92 | public void InsertRow(int index) 93 | { 94 | m_datas.Insert(index, GetRandomData()); 95 | dataTable.UpdateData(m_datas); 96 | } 97 | 98 | public void RemoveRow(int index) 99 | { 100 | if (m_datas.Count == 0) 101 | return; 102 | 103 | m_datas.RemoveAt(index); 104 | dataTable.UpdateData(m_datas); 105 | } 106 | 107 | public void RemoveSelectRow() 108 | { 109 | if (m_datas.Count == 0) 110 | return; 111 | 112 | if (m_tempSelectIndex < 0 || m_tempSelectIndex >= m_datas.Count) 113 | return; 114 | 115 | int oldSize = m_datas.Count; 116 | float oldPostion = dataTable.GetPosition(); 117 | m_datas.RemoveAt(m_tempSelectIndex); 118 | int newSize = m_datas.Count; 119 | dataTable.UpdateData(m_datas); 120 | dataTable.SetPosition(dataTable.GetPositionByNewSize(oldPostion, oldSize, newSize)); 121 | } 122 | 123 | private void Update() 124 | { 125 | if (!testDynamic) 126 | return; 127 | dataTable.tableWidth = (int) (Mathf.Sin(Time.time * 2) * 100) + 600; 128 | dataTable.tableHeight = (int) (Mathf.Sin(Time.time * 2) * 50) + 200; 129 | dataTable.itemHeight = (int) (Mathf.Cos(Time.time * 2) * 10) + 40; 130 | dataTable.UpdateSize(); 131 | } 132 | } -------------------------------------------------------------------------------- /Assets/WDataTable/Demo/Example.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: afd17dee6e863f14a89d8bb284ddbbde 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/WDataTable/Demo/TextMeshPro.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0.44657844, g: 0.49641222, b: 0.57481694, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 0 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_TemporalCoherenceThreshold: 1 54 | m_EnvironmentLightingMode: 0 55 | m_EnableBakedLightmaps: 1 56 | m_EnableRealtimeLightmaps: 1 57 | m_LightmapEditorSettings: 58 | serializedVersion: 10 59 | m_Resolution: 2 60 | m_BakeResolution: 40 61 | m_AtlasSize: 1024 62 | m_AO: 0 63 | m_AOMaxDistance: 1 64 | m_CompAOExponent: 1 65 | m_CompAOExponentDirect: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 1 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 500 79 | m_PVRBounces: 2 80 | m_PVRFilterTypeDirect: 0 81 | m_PVRFilterTypeIndirect: 0 82 | m_PVRFilterTypeAO: 0 83 | m_PVRFilteringMode: 1 84 | m_PVRCulling: 1 85 | m_PVRFilteringGaussRadiusDirect: 1 86 | m_PVRFilteringGaussRadiusIndirect: 5 87 | m_PVRFilteringGaussRadiusAO: 2 88 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 89 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 90 | m_PVRFilteringAtrousPositionSigmaAO: 1 91 | m_ShowResolutionOverlay: 1 92 | m_LightingDataAsset: {fileID: 0} 93 | m_UseShadowmask: 1 94 | --- !u!196 &4 95 | NavMeshSettings: 96 | serializedVersion: 2 97 | m_ObjectHideFlags: 0 98 | m_BuildSettings: 99 | serializedVersion: 2 100 | agentTypeID: 0 101 | agentRadius: 0.5 102 | agentHeight: 2 103 | agentSlope: 45 104 | agentClimb: 0.4 105 | ledgeDropHeight: 0 106 | maxJumpAcrossDistance: 0 107 | minRegionArea: 2 108 | manualCellSize: 0 109 | cellSize: 0.16666667 110 | manualTileSize: 0 111 | tileSize: 256 112 | accuratePlacement: 0 113 | debug: 114 | m_Flags: 0 115 | m_NavMeshData: {fileID: 0} 116 | --- !u!1 &500470293 117 | GameObject: 118 | m_ObjectHideFlags: 0 119 | m_CorrespondingSourceObject: {fileID: 0} 120 | m_PrefabInternal: {fileID: 0} 121 | serializedVersion: 6 122 | m_Component: 123 | - component: {fileID: 500470297} 124 | - component: {fileID: 500470296} 125 | - component: {fileID: 500470295} 126 | - component: {fileID: 500470294} 127 | m_Layer: 5 128 | m_Name: Canvas 129 | m_TagString: Untagged 130 | m_Icon: {fileID: 0} 131 | m_NavMeshLayer: 0 132 | m_StaticEditorFlags: 0 133 | m_IsActive: 1 134 | --- !u!114 &500470294 135 | MonoBehaviour: 136 | m_ObjectHideFlags: 0 137 | m_CorrespondingSourceObject: {fileID: 0} 138 | m_PrefabInternal: {fileID: 0} 139 | m_GameObject: {fileID: 500470293} 140 | m_Enabled: 1 141 | m_EditorHideFlags: 0 142 | m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} 143 | m_Name: 144 | m_EditorClassIdentifier: 145 | m_IgnoreReversedGraphics: 1 146 | m_BlockingObjects: 0 147 | m_BlockingMask: 148 | serializedVersion: 2 149 | m_Bits: 4294967295 150 | --- !u!114 &500470295 151 | MonoBehaviour: 152 | m_ObjectHideFlags: 0 153 | m_CorrespondingSourceObject: {fileID: 0} 154 | m_PrefabInternal: {fileID: 0} 155 | m_GameObject: {fileID: 500470293} 156 | m_Enabled: 1 157 | m_EditorHideFlags: 0 158 | m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} 159 | m_Name: 160 | m_EditorClassIdentifier: 161 | m_UiScaleMode: 0 162 | m_ReferencePixelsPerUnit: 100 163 | m_ScaleFactor: 1 164 | m_ReferenceResolution: {x: 800, y: 600} 165 | m_ScreenMatchMode: 0 166 | m_MatchWidthOrHeight: 0 167 | m_PhysicalUnit: 3 168 | m_FallbackScreenDPI: 96 169 | m_DefaultSpriteDPI: 96 170 | m_DynamicPixelsPerUnit: 1 171 | --- !u!223 &500470296 172 | Canvas: 173 | m_ObjectHideFlags: 0 174 | m_CorrespondingSourceObject: {fileID: 0} 175 | m_PrefabInternal: {fileID: 0} 176 | m_GameObject: {fileID: 500470293} 177 | m_Enabled: 1 178 | serializedVersion: 3 179 | m_RenderMode: 0 180 | m_Camera: {fileID: 0} 181 | m_PlaneDistance: 100 182 | m_PixelPerfect: 0 183 | m_ReceivesEvents: 1 184 | m_OverrideSorting: 0 185 | m_OverridePixelPerfect: 0 186 | m_SortingBucketNormalizedSize: 0 187 | m_AdditionalShaderChannelsFlag: 0 188 | m_SortingLayerID: 0 189 | m_SortingOrder: 0 190 | m_TargetDisplay: 0 191 | --- !u!224 &500470297 192 | RectTransform: 193 | m_ObjectHideFlags: 0 194 | m_CorrespondingSourceObject: {fileID: 0} 195 | m_PrefabInternal: {fileID: 0} 196 | m_GameObject: {fileID: 500470293} 197 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 198 | m_LocalPosition: {x: 0, y: 0, z: 0} 199 | m_LocalScale: {x: 0, y: 0, z: 0} 200 | m_Children: 201 | - {fileID: 552333656} 202 | m_Father: {fileID: 0} 203 | m_RootOrder: 2 204 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 205 | m_AnchorMin: {x: 0, y: 0} 206 | m_AnchorMax: {x: 0, y: 0} 207 | m_AnchoredPosition: {x: 0, y: 0} 208 | m_SizeDelta: {x: 0, y: 0} 209 | m_Pivot: {x: 0, y: 0} 210 | --- !u!1001 &552333655 211 | Prefab: 212 | m_ObjectHideFlags: 0 213 | serializedVersion: 2 214 | m_Modification: 215 | m_TransformParent: {fileID: 500470297} 216 | m_Modifications: 217 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 218 | type: 2} 219 | propertyPath: m_LocalPosition.x 220 | value: 0 221 | objectReference: {fileID: 0} 222 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 223 | type: 2} 224 | propertyPath: m_LocalPosition.y 225 | value: 0 226 | objectReference: {fileID: 0} 227 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 228 | type: 2} 229 | propertyPath: m_LocalPosition.z 230 | value: 0 231 | objectReference: {fileID: 0} 232 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 233 | type: 2} 234 | propertyPath: m_LocalRotation.x 235 | value: 0 236 | objectReference: {fileID: 0} 237 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 238 | type: 2} 239 | propertyPath: m_LocalRotation.y 240 | value: 0 241 | objectReference: {fileID: 0} 242 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 243 | type: 2} 244 | propertyPath: m_LocalRotation.z 245 | value: 0 246 | objectReference: {fileID: 0} 247 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 248 | type: 2} 249 | propertyPath: m_LocalRotation.w 250 | value: 1 251 | objectReference: {fileID: 0} 252 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 253 | type: 2} 254 | propertyPath: m_RootOrder 255 | value: 0 256 | objectReference: {fileID: 0} 257 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 258 | type: 2} 259 | propertyPath: m_AnchoredPosition.x 260 | value: -470.8 261 | objectReference: {fileID: 0} 262 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 263 | type: 2} 264 | propertyPath: m_AnchoredPosition.y 265 | value: 192.5 266 | objectReference: {fileID: 0} 267 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 268 | type: 2} 269 | propertyPath: m_SizeDelta.x 270 | value: 0 271 | objectReference: {fileID: 0} 272 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 273 | type: 2} 274 | propertyPath: m_SizeDelta.y 275 | value: 0 276 | objectReference: {fileID: 0} 277 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 278 | type: 2} 279 | propertyPath: m_AnchorMin.x 280 | value: 0.5 281 | objectReference: {fileID: 0} 282 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 283 | type: 2} 284 | propertyPath: m_AnchorMin.y 285 | value: 0.5 286 | objectReference: {fileID: 0} 287 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 288 | type: 2} 289 | propertyPath: m_AnchorMax.x 290 | value: 0.5 291 | objectReference: {fileID: 0} 292 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 293 | type: 2} 294 | propertyPath: m_AnchorMax.y 295 | value: 0.5 296 | objectReference: {fileID: 0} 297 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 298 | type: 2} 299 | propertyPath: m_Pivot.x 300 | value: 0.5 301 | objectReference: {fileID: 0} 302 | - target: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 303 | type: 2} 304 | propertyPath: m_Pivot.y 305 | value: 0.5 306 | objectReference: {fileID: 0} 307 | m_RemovedComponents: [] 308 | m_SourcePrefab: {fileID: 100100000, guid: 69d721592acc55241bcdc08f14b18e36, type: 2} 309 | m_IsPrefabAsset: 0 310 | --- !u!224 &552333656 stripped 311 | RectTransform: 312 | m_CorrespondingSourceObject: {fileID: 224112708788501422, guid: 69d721592acc55241bcdc08f14b18e36, 313 | type: 2} 314 | m_PrefabInternal: {fileID: 552333655} 315 | --- !u!114 &552333657 stripped 316 | MonoBehaviour: 317 | m_CorrespondingSourceObject: {fileID: 114853463139825760, guid: 69d721592acc55241bcdc08f14b18e36, 318 | type: 2} 319 | m_PrefabInternal: {fileID: 552333655} 320 | m_Script: {fileID: 11500000, guid: 7f2049e846635d840ab6e631aee9f094, type: 3} 321 | --- !u!1 &1237443947 322 | GameObject: 323 | m_ObjectHideFlags: 0 324 | m_CorrespondingSourceObject: {fileID: 0} 325 | m_PrefabInternal: {fileID: 0} 326 | serializedVersion: 6 327 | m_Component: 328 | - component: {fileID: 1237443950} 329 | - component: {fileID: 1237443949} 330 | - component: {fileID: 1237443948} 331 | - component: {fileID: 1237443951} 332 | m_Layer: 0 333 | m_Name: Main Camera 334 | m_TagString: MainCamera 335 | m_Icon: {fileID: 0} 336 | m_NavMeshLayer: 0 337 | m_StaticEditorFlags: 0 338 | m_IsActive: 1 339 | --- !u!81 &1237443948 340 | AudioListener: 341 | m_ObjectHideFlags: 0 342 | m_CorrespondingSourceObject: {fileID: 0} 343 | m_PrefabInternal: {fileID: 0} 344 | m_GameObject: {fileID: 1237443947} 345 | m_Enabled: 1 346 | --- !u!20 &1237443949 347 | Camera: 348 | m_ObjectHideFlags: 0 349 | m_CorrespondingSourceObject: {fileID: 0} 350 | m_PrefabInternal: {fileID: 0} 351 | m_GameObject: {fileID: 1237443947} 352 | m_Enabled: 1 353 | serializedVersion: 2 354 | m_ClearFlags: 1 355 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 356 | m_projectionMatrixMode: 1 357 | m_SensorSize: {x: 36, y: 24} 358 | m_LensShift: {x: 0, y: 0} 359 | m_FocalLength: 50 360 | m_NormalizedViewPortRect: 361 | serializedVersion: 2 362 | x: 0 363 | y: 0 364 | width: 1 365 | height: 1 366 | near clip plane: 0.3 367 | far clip plane: 1000 368 | field of view: 60 369 | orthographic: 0 370 | orthographic size: 5 371 | m_Depth: -1 372 | m_CullingMask: 373 | serializedVersion: 2 374 | m_Bits: 4294967295 375 | m_RenderingPath: -1 376 | m_TargetTexture: {fileID: 0} 377 | m_TargetDisplay: 0 378 | m_TargetEye: 3 379 | m_HDR: 1 380 | m_AllowMSAA: 1 381 | m_AllowDynamicResolution: 0 382 | m_ForceIntoRT: 0 383 | m_OcclusionCulling: 1 384 | m_StereoConvergence: 10 385 | m_StereoSeparation: 0.022 386 | --- !u!4 &1237443950 387 | Transform: 388 | m_ObjectHideFlags: 0 389 | m_CorrespondingSourceObject: {fileID: 0} 390 | m_PrefabInternal: {fileID: 0} 391 | m_GameObject: {fileID: 1237443947} 392 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 393 | m_LocalPosition: {x: 0, y: 1, z: -10} 394 | m_LocalScale: {x: 1, y: 1, z: 1} 395 | m_Children: [] 396 | m_Father: {fileID: 0} 397 | m_RootOrder: 0 398 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 399 | --- !u!114 &1237443951 400 | MonoBehaviour: 401 | m_ObjectHideFlags: 0 402 | m_CorrespondingSourceObject: {fileID: 0} 403 | m_PrefabInternal: {fileID: 0} 404 | m_GameObject: {fileID: 1237443947} 405 | m_Enabled: 1 406 | m_EditorHideFlags: 0 407 | m_Script: {fileID: 11500000, guid: afd17dee6e863f14a89d8bb284ddbbde, type: 3} 408 | m_Name: 409 | m_EditorClassIdentifier: 410 | dataTable: {fileID: 552333657} 411 | testDynamic: 0 412 | testTextMeshPro: 1 413 | text: {fileID: 0} 414 | --- !u!1 &1350295087 415 | GameObject: 416 | m_ObjectHideFlags: 0 417 | m_CorrespondingSourceObject: {fileID: 0} 418 | m_PrefabInternal: {fileID: 0} 419 | serializedVersion: 6 420 | m_Component: 421 | - component: {fileID: 1350295089} 422 | - component: {fileID: 1350295088} 423 | m_Layer: 0 424 | m_Name: Directional Light 425 | m_TagString: Untagged 426 | m_Icon: {fileID: 0} 427 | m_NavMeshLayer: 0 428 | m_StaticEditorFlags: 0 429 | m_IsActive: 1 430 | --- !u!108 &1350295088 431 | Light: 432 | m_ObjectHideFlags: 0 433 | m_CorrespondingSourceObject: {fileID: 0} 434 | m_PrefabInternal: {fileID: 0} 435 | m_GameObject: {fileID: 1350295087} 436 | m_Enabled: 1 437 | serializedVersion: 8 438 | m_Type: 1 439 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 440 | m_Intensity: 1 441 | m_Range: 10 442 | m_SpotAngle: 30 443 | m_CookieSize: 10 444 | m_Shadows: 445 | m_Type: 2 446 | m_Resolution: -1 447 | m_CustomResolution: -1 448 | m_Strength: 1 449 | m_Bias: 0.05 450 | m_NormalBias: 0.4 451 | m_NearPlane: 0.2 452 | m_Cookie: {fileID: 0} 453 | m_DrawHalo: 0 454 | m_Flare: {fileID: 0} 455 | m_RenderMode: 0 456 | m_CullingMask: 457 | serializedVersion: 2 458 | m_Bits: 4294967295 459 | m_Lightmapping: 4 460 | m_LightShadowCasterMode: 0 461 | m_AreaSize: {x: 1, y: 1} 462 | m_BounceIntensity: 1 463 | m_ColorTemperature: 6570 464 | m_UseColorTemperature: 0 465 | m_ShadowRadius: 0 466 | m_ShadowAngle: 0 467 | --- !u!4 &1350295089 468 | Transform: 469 | m_ObjectHideFlags: 0 470 | m_CorrespondingSourceObject: {fileID: 0} 471 | m_PrefabInternal: {fileID: 0} 472 | m_GameObject: {fileID: 1350295087} 473 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} 474 | m_LocalPosition: {x: 0, y: 3, z: 0} 475 | m_LocalScale: {x: 1, y: 1, z: 1} 476 | m_Children: [] 477 | m_Father: {fileID: 0} 478 | m_RootOrder: 1 479 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} 480 | --- !u!1 &1397578968 481 | GameObject: 482 | m_ObjectHideFlags: 0 483 | m_CorrespondingSourceObject: {fileID: 0} 484 | m_PrefabInternal: {fileID: 0} 485 | serializedVersion: 6 486 | m_Component: 487 | - component: {fileID: 1397578971} 488 | - component: {fileID: 1397578970} 489 | - component: {fileID: 1397578969} 490 | m_Layer: 0 491 | m_Name: EventSystem 492 | m_TagString: Untagged 493 | m_Icon: {fileID: 0} 494 | m_NavMeshLayer: 0 495 | m_StaticEditorFlags: 0 496 | m_IsActive: 1 497 | --- !u!114 &1397578969 498 | MonoBehaviour: 499 | m_ObjectHideFlags: 0 500 | m_CorrespondingSourceObject: {fileID: 0} 501 | m_PrefabInternal: {fileID: 0} 502 | m_GameObject: {fileID: 1397578968} 503 | m_Enabled: 1 504 | m_EditorHideFlags: 0 505 | m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} 506 | m_Name: 507 | m_EditorClassIdentifier: 508 | m_HorizontalAxis: Horizontal 509 | m_VerticalAxis: Vertical 510 | m_SubmitButton: Submit 511 | m_CancelButton: Cancel 512 | m_InputActionsPerSecond: 10 513 | m_RepeatDelay: 0.5 514 | m_ForceModuleActive: 0 515 | --- !u!114 &1397578970 516 | MonoBehaviour: 517 | m_ObjectHideFlags: 0 518 | m_CorrespondingSourceObject: {fileID: 0} 519 | m_PrefabInternal: {fileID: 0} 520 | m_GameObject: {fileID: 1397578968} 521 | m_Enabled: 1 522 | m_EditorHideFlags: 0 523 | m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} 524 | m_Name: 525 | m_EditorClassIdentifier: 526 | m_FirstSelected: {fileID: 0} 527 | m_sendNavigationEvents: 1 528 | m_DragThreshold: 10 529 | --- !u!4 &1397578971 530 | Transform: 531 | m_ObjectHideFlags: 0 532 | m_CorrespondingSourceObject: {fileID: 0} 533 | m_PrefabInternal: {fileID: 0} 534 | m_GameObject: {fileID: 1397578968} 535 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 536 | m_LocalPosition: {x: 0, y: 0, z: 0} 537 | m_LocalScale: {x: 1, y: 1, z: 1} 538 | m_Children: [] 539 | m_Father: {fileID: 0} 540 | m_RootOrder: 3 541 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 542 | -------------------------------------------------------------------------------- /Assets/WDataTable/Demo/TextMeshPro.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 84a738cd7b8100c409d432b5a0ee1c72 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/WDataTable/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b93894df5b200d6409818c2e23711a0b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/WDataTable/Prefabs/DataTable.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69d721592acc55241bcdc08f14b18e36 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/WDataTable/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4c2ac190aea52fb4c9bb3c2a9aee972f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/WDataTable/Resources/ButtonElement.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_SourcePrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1478834042811616} 13 | m_IsPrefabAsset: 1 14 | --- !u!1 &1478834042811616 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_CorrespondingSourceObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 6 20 | m_Component: 21 | - component: {fileID: 224818820984353370} 22 | - component: {fileID: 222744119580831986} 23 | - component: {fileID: 114697106683923420} 24 | - component: {fileID: 114510030447268488} 25 | - component: {fileID: 114446407745193696} 26 | - component: {fileID: 114470754290158066} 27 | m_Layer: 5 28 | m_Name: ButtonElement 29 | m_TagString: Untagged 30 | m_Icon: {fileID: 0} 31 | m_NavMeshLayer: 0 32 | m_StaticEditorFlags: 0 33 | m_IsActive: 1 34 | --- !u!1 &1930979838824982 35 | GameObject: 36 | m_ObjectHideFlags: 0 37 | m_CorrespondingSourceObject: {fileID: 0} 38 | m_PrefabInternal: {fileID: 100100000} 39 | serializedVersion: 6 40 | m_Component: 41 | - component: {fileID: 224746555420374912} 42 | - component: {fileID: 222519286183020402} 43 | - component: {fileID: 114857275397005958} 44 | m_Layer: 5 45 | m_Name: Text 46 | m_TagString: Untagged 47 | m_Icon: {fileID: 0} 48 | m_NavMeshLayer: 0 49 | m_StaticEditorFlags: 0 50 | m_IsActive: 1 51 | --- !u!114 &114446407745193696 52 | MonoBehaviour: 53 | m_ObjectHideFlags: 1 54 | m_CorrespondingSourceObject: {fileID: 0} 55 | m_PrefabInternal: {fileID: 100100000} 56 | m_GameObject: {fileID: 1478834042811616} 57 | m_Enabled: 1 58 | m_EditorHideFlags: 0 59 | m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} 60 | m_Name: 61 | m_EditorClassIdentifier: 62 | m_IgnoreLayout: 0 63 | m_MinWidth: -1 64 | m_MinHeight: -1 65 | m_PreferredWidth: -1 66 | m_PreferredHeight: -1 67 | m_FlexibleWidth: -1 68 | m_FlexibleHeight: -1 69 | m_LayoutPriority: 1 70 | --- !u!114 &114470754290158066 71 | MonoBehaviour: 72 | m_ObjectHideFlags: 1 73 | m_CorrespondingSourceObject: {fileID: 0} 74 | m_PrefabInternal: {fileID: 100100000} 75 | m_GameObject: {fileID: 1478834042811616} 76 | m_Enabled: 1 77 | m_EditorHideFlags: 0 78 | m_Script: {fileID: 11500000, guid: a2d5eed8f5ede7246a987edd6be5b425, type: 3} 79 | m_Name: 80 | m_EditorClassIdentifier: 81 | --- !u!114 &114510030447268488 82 | MonoBehaviour: 83 | m_ObjectHideFlags: 1 84 | m_CorrespondingSourceObject: {fileID: 0} 85 | m_PrefabInternal: {fileID: 100100000} 86 | m_GameObject: {fileID: 1478834042811616} 87 | m_Enabled: 1 88 | m_EditorHideFlags: 0 89 | m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} 90 | m_Name: 91 | m_EditorClassIdentifier: 92 | m_Navigation: 93 | m_Mode: 3 94 | m_SelectOnUp: {fileID: 0} 95 | m_SelectOnDown: {fileID: 0} 96 | m_SelectOnLeft: {fileID: 0} 97 | m_SelectOnRight: {fileID: 0} 98 | m_Transition: 1 99 | m_Colors: 100 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 101 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 102 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 103 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 104 | m_ColorMultiplier: 1 105 | m_FadeDuration: 0.1 106 | m_SpriteState: 107 | m_HighlightedSprite: {fileID: 0} 108 | m_PressedSprite: {fileID: 0} 109 | m_DisabledSprite: {fileID: 0} 110 | m_AnimationTriggers: 111 | m_NormalTrigger: Normal 112 | m_HighlightedTrigger: Highlighted 113 | m_PressedTrigger: Pressed 114 | m_DisabledTrigger: Disabled 115 | m_Interactable: 1 116 | m_TargetGraphic: {fileID: 114697106683923420} 117 | m_OnClick: 118 | m_PersistentCalls: 119 | m_Calls: [] 120 | m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, 121 | Culture=neutral, PublicKeyToken=null 122 | --- !u!114 &114697106683923420 123 | MonoBehaviour: 124 | m_ObjectHideFlags: 1 125 | m_CorrespondingSourceObject: {fileID: 0} 126 | m_PrefabInternal: {fileID: 100100000} 127 | m_GameObject: {fileID: 1478834042811616} 128 | m_Enabled: 1 129 | m_EditorHideFlags: 0 130 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 131 | m_Name: 132 | m_EditorClassIdentifier: 133 | m_Material: {fileID: 0} 134 | m_Color: {r: 1, g: 1, b: 1, a: 1} 135 | m_RaycastTarget: 1 136 | m_OnCullStateChanged: 137 | m_PersistentCalls: 138 | m_Calls: [] 139 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 140 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 141 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 142 | m_Type: 1 143 | m_PreserveAspect: 0 144 | m_FillCenter: 1 145 | m_FillMethod: 4 146 | m_FillAmount: 1 147 | m_FillClockwise: 1 148 | m_FillOrigin: 0 149 | --- !u!114 &114857275397005958 150 | MonoBehaviour: 151 | m_ObjectHideFlags: 1 152 | m_CorrespondingSourceObject: {fileID: 0} 153 | m_PrefabInternal: {fileID: 100100000} 154 | m_GameObject: {fileID: 1930979838824982} 155 | m_Enabled: 1 156 | m_EditorHideFlags: 0 157 | m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} 158 | m_Name: 159 | m_EditorClassIdentifier: 160 | m_Material: {fileID: 0} 161 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 162 | m_RaycastTarget: 1 163 | m_OnCullStateChanged: 164 | m_PersistentCalls: 165 | m_Calls: [] 166 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 167 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 168 | m_FontData: 169 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 170 | m_FontSize: 14 171 | m_FontStyle: 0 172 | m_BestFit: 0 173 | m_MinSize: 10 174 | m_MaxSize: 40 175 | m_Alignment: 4 176 | m_AlignByGeometry: 0 177 | m_RichText: 1 178 | m_HorizontalOverflow: 0 179 | m_VerticalOverflow: 0 180 | m_LineSpacing: 1 181 | m_Text: Button 182 | --- !u!222 &222519286183020402 183 | CanvasRenderer: 184 | m_ObjectHideFlags: 1 185 | m_CorrespondingSourceObject: {fileID: 0} 186 | m_PrefabInternal: {fileID: 100100000} 187 | m_GameObject: {fileID: 1930979838824982} 188 | m_CullTransparentMesh: 0 189 | --- !u!222 &222744119580831986 190 | CanvasRenderer: 191 | m_ObjectHideFlags: 1 192 | m_CorrespondingSourceObject: {fileID: 0} 193 | m_PrefabInternal: {fileID: 100100000} 194 | m_GameObject: {fileID: 1478834042811616} 195 | m_CullTransparentMesh: 0 196 | --- !u!224 &224746555420374912 197 | RectTransform: 198 | m_ObjectHideFlags: 1 199 | m_CorrespondingSourceObject: {fileID: 0} 200 | m_PrefabInternal: {fileID: 100100000} 201 | m_GameObject: {fileID: 1930979838824982} 202 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 203 | m_LocalPosition: {x: 0, y: 0, z: 0} 204 | m_LocalScale: {x: 1, y: 1, z: 1} 205 | m_Children: [] 206 | m_Father: {fileID: 224818820984353370} 207 | m_RootOrder: 0 208 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 209 | m_AnchorMin: {x: 0, y: 0} 210 | m_AnchorMax: {x: 1, y: 1} 211 | m_AnchoredPosition: {x: 0, y: 0} 212 | m_SizeDelta: {x: 0, y: 0} 213 | m_Pivot: {x: 0.5, y: 0.5} 214 | --- !u!224 &224818820984353370 215 | RectTransform: 216 | m_ObjectHideFlags: 1 217 | m_CorrespondingSourceObject: {fileID: 0} 218 | m_PrefabInternal: {fileID: 100100000} 219 | m_GameObject: {fileID: 1478834042811616} 220 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 221 | m_LocalPosition: {x: 0, y: 0, z: 0} 222 | m_LocalScale: {x: 1, y: 1, z: 1} 223 | m_Children: 224 | - {fileID: 224746555420374912} 225 | m_Father: {fileID: 0} 226 | m_RootOrder: 0 227 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 228 | m_AnchorMin: {x: 0, y: 1} 229 | m_AnchorMax: {x: 0, y: 1} 230 | m_AnchoredPosition: {x: 20, y: -15.96} 231 | m_SizeDelta: {x: 40, y: 31.92} 232 | m_Pivot: {x: 0.5, y: 0.5} 233 | -------------------------------------------------------------------------------- /Assets/WDataTable/Resources/ButtonElement.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86a35f20c2ca6684e9f5179d51036ed3 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/WDataTable/Resources/RowCotainter.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_SourcePrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1565737376617492} 13 | m_IsPrefabAsset: 1 14 | --- !u!1 &1565737376617492 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_CorrespondingSourceObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 6 20 | m_Component: 21 | - component: {fileID: 224971042047265340} 22 | - component: {fileID: 114591429132117124} 23 | - component: {fileID: 114064094856541792} 24 | - component: {fileID: 222839107545708466} 25 | - component: {fileID: 114022816101361108} 26 | - component: {fileID: 114121473001337294} 27 | - component: {fileID: 114577069632968468} 28 | m_Layer: 5 29 | m_Name: RowCotainter 30 | m_TagString: Untagged 31 | m_Icon: {fileID: 0} 32 | m_NavMeshLayer: 0 33 | m_StaticEditorFlags: 0 34 | m_IsActive: 1 35 | --- !u!114 &114022816101361108 36 | MonoBehaviour: 37 | m_ObjectHideFlags: 1 38 | m_CorrespondingSourceObject: {fileID: 0} 39 | m_PrefabInternal: {fileID: 100100000} 40 | m_GameObject: {fileID: 1565737376617492} 41 | m_Enabled: 1 42 | m_EditorHideFlags: 0 43 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 44 | m_Name: 45 | m_EditorClassIdentifier: 46 | m_Material: {fileID: 0} 47 | m_Color: {r: 1, g: 1, b: 1, a: 1} 48 | m_RaycastTarget: 1 49 | m_OnCullStateChanged: 50 | m_PersistentCalls: 51 | m_Calls: [] 52 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 53 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 54 | m_Sprite: {fileID: 0} 55 | m_Type: 0 56 | m_PreserveAspect: 0 57 | m_FillCenter: 1 58 | m_FillMethod: 4 59 | m_FillAmount: 1 60 | m_FillClockwise: 1 61 | m_FillOrigin: 0 62 | --- !u!114 &114064094856541792 63 | MonoBehaviour: 64 | m_ObjectHideFlags: 1 65 | m_CorrespondingSourceObject: {fileID: 0} 66 | m_PrefabInternal: {fileID: 100100000} 67 | m_GameObject: {fileID: 1565737376617492} 68 | m_Enabled: 1 69 | m_EditorHideFlags: 0 70 | m_Script: {fileID: -405508275, guid: f70555f144d8491a825f0804e09c671c, type: 3} 71 | m_Name: 72 | m_EditorClassIdentifier: 73 | m_Padding: 74 | m_Left: 0 75 | m_Right: 0 76 | m_Top: 0 77 | m_Bottom: 0 78 | m_ChildAlignment: 0 79 | m_Spacing: 0 80 | m_ChildForceExpandWidth: 0 81 | m_ChildForceExpandHeight: 0 82 | m_ChildControlWidth: 0 83 | m_ChildControlHeight: 0 84 | --- !u!114 &114121473001337294 85 | MonoBehaviour: 86 | m_ObjectHideFlags: 1 87 | m_CorrespondingSourceObject: {fileID: 0} 88 | m_PrefabInternal: {fileID: 100100000} 89 | m_GameObject: {fileID: 1565737376617492} 90 | m_Enabled: 1 91 | m_EditorHideFlags: 0 92 | m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} 93 | m_Name: 94 | m_EditorClassIdentifier: 95 | m_Navigation: 96 | m_Mode: 0 97 | m_SelectOnUp: {fileID: 0} 98 | m_SelectOnDown: {fileID: 0} 99 | m_SelectOnLeft: {fileID: 0} 100 | m_SelectOnRight: {fileID: 0} 101 | m_Transition: 1 102 | m_Colors: 103 | m_NormalColor: {r: 1, g: 1, b: 1, a: 0} 104 | m_HighlightedColor: {r: 1, g: 0, b: 0, a: 0.25490198} 105 | m_PressedColor: {r: 1, g: 1, b: 1, a: 0.34117648} 106 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 107 | m_ColorMultiplier: 1 108 | m_FadeDuration: 0.1 109 | m_SpriteState: 110 | m_HighlightedSprite: {fileID: 0} 111 | m_PressedSprite: {fileID: 0} 112 | m_DisabledSprite: {fileID: 0} 113 | m_AnimationTriggers: 114 | m_NormalTrigger: Normal 115 | m_HighlightedTrigger: Highlighted 116 | m_PressedTrigger: Pressed 117 | m_DisabledTrigger: Disabled 118 | m_Interactable: 1 119 | m_TargetGraphic: {fileID: 114022816101361108} 120 | m_OnClick: 121 | m_PersistentCalls: 122 | m_Calls: [] 123 | m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, 124 | Culture=neutral, PublicKeyToken=null 125 | --- !u!114 &114577069632968468 126 | MonoBehaviour: 127 | m_ObjectHideFlags: 1 128 | m_CorrespondingSourceObject: {fileID: 0} 129 | m_PrefabInternal: {fileID: 100100000} 130 | m_GameObject: {fileID: 1565737376617492} 131 | m_Enabled: 1 132 | m_EditorHideFlags: 0 133 | m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} 134 | m_Name: 135 | m_EditorClassIdentifier: 136 | m_IgnoreLayout: 0 137 | m_MinWidth: -1 138 | m_MinHeight: -1 139 | m_PreferredWidth: -1 140 | m_PreferredHeight: -1 141 | m_FlexibleWidth: -1 142 | m_FlexibleHeight: -1 143 | m_LayoutPriority: 1 144 | --- !u!114 &114591429132117124 145 | MonoBehaviour: 146 | m_ObjectHideFlags: 1 147 | m_CorrespondingSourceObject: {fileID: 0} 148 | m_PrefabInternal: {fileID: 100100000} 149 | m_GameObject: {fileID: 1565737376617492} 150 | m_Enabled: 1 151 | m_EditorHideFlags: 0 152 | m_Script: {fileID: 11500000, guid: 52b5a0062597efc4fb6c52157d2294f5, type: 3} 153 | m_Name: 154 | m_EditorClassIdentifier: 155 | --- !u!222 &222839107545708466 156 | CanvasRenderer: 157 | m_ObjectHideFlags: 1 158 | m_CorrespondingSourceObject: {fileID: 0} 159 | m_PrefabInternal: {fileID: 100100000} 160 | m_GameObject: {fileID: 1565737376617492} 161 | m_CullTransparentMesh: 0 162 | --- !u!224 &224971042047265340 163 | RectTransform: 164 | m_ObjectHideFlags: 1 165 | m_CorrespondingSourceObject: {fileID: 0} 166 | m_PrefabInternal: {fileID: 100100000} 167 | m_GameObject: {fileID: 1565737376617492} 168 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 169 | m_LocalPosition: {x: 0, y: 0, z: 0} 170 | m_LocalScale: {x: 1, y: 1, z: 1} 171 | m_Children: [] 172 | m_Father: {fileID: 0} 173 | m_RootOrder: 0 174 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 175 | m_AnchorMin: {x: 0, y: 1} 176 | m_AnchorMax: {x: 0, y: 1} 177 | m_AnchoredPosition: {x: 300, y: -16} 178 | m_SizeDelta: {x: 300, y: 32} 179 | m_Pivot: {x: 0.5, y: 0.5} 180 | -------------------------------------------------------------------------------- /Assets/WDataTable/Resources/RowCotainter.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa65de918ed3879479b5465a58832a19 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/WDataTable/Resources/TMPButtonElement.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_SourcePrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1478834042811616} 13 | m_IsPrefabAsset: 1 14 | --- !u!1 &1478834042811616 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_CorrespondingSourceObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 6 20 | m_Component: 21 | - component: {fileID: 224818820984353370} 22 | - component: {fileID: 222744119580831986} 23 | - component: {fileID: 114697106683923420} 24 | - component: {fileID: 114510030447268488} 25 | - component: {fileID: 114446407745193696} 26 | - component: {fileID: 114470754290158066} 27 | m_Layer: 5 28 | m_Name: TMPButtonElement 29 | m_TagString: Untagged 30 | m_Icon: {fileID: 0} 31 | m_NavMeshLayer: 0 32 | m_StaticEditorFlags: 0 33 | m_IsActive: 1 34 | --- !u!1 &1930979838824982 35 | GameObject: 36 | m_ObjectHideFlags: 0 37 | m_CorrespondingSourceObject: {fileID: 0} 38 | m_PrefabInternal: {fileID: 100100000} 39 | serializedVersion: 6 40 | m_Component: 41 | - component: {fileID: 224746555420374912} 42 | - component: {fileID: 222519286183020402} 43 | - component: {fileID: 114743948399276952} 44 | m_Layer: 5 45 | m_Name: Text 46 | m_TagString: Untagged 47 | m_Icon: {fileID: 0} 48 | m_NavMeshLayer: 0 49 | m_StaticEditorFlags: 0 50 | m_IsActive: 1 51 | --- !u!114 &114446407745193696 52 | MonoBehaviour: 53 | m_ObjectHideFlags: 1 54 | m_CorrespondingSourceObject: {fileID: 0} 55 | m_PrefabInternal: {fileID: 100100000} 56 | m_GameObject: {fileID: 1478834042811616} 57 | m_Enabled: 1 58 | m_EditorHideFlags: 0 59 | m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} 60 | m_Name: 61 | m_EditorClassIdentifier: 62 | m_IgnoreLayout: 0 63 | m_MinWidth: -1 64 | m_MinHeight: -1 65 | m_PreferredWidth: -1 66 | m_PreferredHeight: -1 67 | m_FlexibleWidth: -1 68 | m_FlexibleHeight: -1 69 | m_LayoutPriority: 1 70 | --- !u!114 &114470754290158066 71 | MonoBehaviour: 72 | m_ObjectHideFlags: 1 73 | m_CorrespondingSourceObject: {fileID: 0} 74 | m_PrefabInternal: {fileID: 100100000} 75 | m_GameObject: {fileID: 1478834042811616} 76 | m_Enabled: 1 77 | m_EditorHideFlags: 0 78 | m_Script: {fileID: 11500000, guid: a2d5eed8f5ede7246a987edd6be5b425, type: 3} 79 | m_Name: 80 | m_EditorClassIdentifier: 81 | --- !u!114 &114510030447268488 82 | MonoBehaviour: 83 | m_ObjectHideFlags: 1 84 | m_CorrespondingSourceObject: {fileID: 0} 85 | m_PrefabInternal: {fileID: 100100000} 86 | m_GameObject: {fileID: 1478834042811616} 87 | m_Enabled: 1 88 | m_EditorHideFlags: 0 89 | m_Script: {fileID: 1392445389, guid: f70555f144d8491a825f0804e09c671c, type: 3} 90 | m_Name: 91 | m_EditorClassIdentifier: 92 | m_Navigation: 93 | m_Mode: 3 94 | m_SelectOnUp: {fileID: 0} 95 | m_SelectOnDown: {fileID: 0} 96 | m_SelectOnLeft: {fileID: 0} 97 | m_SelectOnRight: {fileID: 0} 98 | m_Transition: 1 99 | m_Colors: 100 | m_NormalColor: {r: 1, g: 1, b: 1, a: 1} 101 | m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} 102 | m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} 103 | m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} 104 | m_ColorMultiplier: 1 105 | m_FadeDuration: 0.1 106 | m_SpriteState: 107 | m_HighlightedSprite: {fileID: 0} 108 | m_PressedSprite: {fileID: 0} 109 | m_DisabledSprite: {fileID: 0} 110 | m_AnimationTriggers: 111 | m_NormalTrigger: Normal 112 | m_HighlightedTrigger: Highlighted 113 | m_PressedTrigger: Pressed 114 | m_DisabledTrigger: Disabled 115 | m_Interactable: 1 116 | m_TargetGraphic: {fileID: 114697106683923420} 117 | m_OnClick: 118 | m_PersistentCalls: 119 | m_Calls: [] 120 | m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0, 121 | Culture=neutral, PublicKeyToken=null 122 | --- !u!114 &114697106683923420 123 | MonoBehaviour: 124 | m_ObjectHideFlags: 1 125 | m_CorrespondingSourceObject: {fileID: 0} 126 | m_PrefabInternal: {fileID: 100100000} 127 | m_GameObject: {fileID: 1478834042811616} 128 | m_Enabled: 1 129 | m_EditorHideFlags: 0 130 | m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3} 131 | m_Name: 132 | m_EditorClassIdentifier: 133 | m_Material: {fileID: 0} 134 | m_Color: {r: 1, g: 1, b: 1, a: 1} 135 | m_RaycastTarget: 1 136 | m_OnCullStateChanged: 137 | m_PersistentCalls: 138 | m_Calls: [] 139 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 140 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 141 | m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0} 142 | m_Type: 1 143 | m_PreserveAspect: 0 144 | m_FillCenter: 1 145 | m_FillMethod: 4 146 | m_FillAmount: 1 147 | m_FillClockwise: 1 148 | m_FillOrigin: 0 149 | --- !u!114 &114743948399276952 150 | MonoBehaviour: 151 | m_ObjectHideFlags: 1 152 | m_CorrespondingSourceObject: {fileID: 0} 153 | m_PrefabInternal: {fileID: 100100000} 154 | m_GameObject: {fileID: 1930979838824982} 155 | m_Enabled: 1 156 | m_EditorHideFlags: 0 157 | m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} 158 | m_Name: 159 | m_EditorClassIdentifier: 160 | m_Material: {fileID: 0} 161 | m_Color: {r: 1, g: 1, b: 1, a: 1} 162 | m_RaycastTarget: 1 163 | m_OnCullStateChanged: 164 | m_PersistentCalls: 165 | m_Calls: [] 166 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 167 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 168 | m_text: 169 | m_isRightToLeft: 0 170 | m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 171 | m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 172 | m_fontSharedMaterials: [] 173 | m_fontMaterial: {fileID: 0} 174 | m_fontMaterials: [] 175 | m_fontColor32: 176 | serializedVersion: 2 177 | rgba: 4294967295 178 | m_fontColor: {r: 1, g: 0, b: 0, a: 1} 179 | m_enableVertexGradient: 0 180 | m_fontColorGradient: 181 | topLeft: {r: 1, g: 1, b: 1, a: 1} 182 | topRight: {r: 1, g: 1, b: 1, a: 1} 183 | bottomLeft: {r: 1, g: 1, b: 1, a: 1} 184 | bottomRight: {r: 1, g: 1, b: 1, a: 1} 185 | m_fontColorGradientPreset: {fileID: 0} 186 | m_spriteAsset: {fileID: 0} 187 | m_tintAllSprites: 0 188 | m_overrideHtmlColors: 0 189 | m_faceColor: 190 | serializedVersion: 2 191 | rgba: 4294967295 192 | m_outlineColor: 193 | serializedVersion: 2 194 | rgba: 4278190080 195 | m_fontSize: 14 196 | m_fontSizeBase: 14 197 | m_fontWeight: 400 198 | m_enableAutoSizing: 0 199 | m_fontSizeMin: 18 200 | m_fontSizeMax: 72 201 | m_fontStyle: 0 202 | m_textAlignment: 514 203 | m_isAlignmentEnumConverted: 1 204 | m_characterSpacing: 0 205 | m_wordSpacing: 0 206 | m_lineSpacing: 0 207 | m_lineSpacingMax: 0 208 | m_paragraphSpacing: 0 209 | m_charWidthMaxAdj: 0 210 | m_enableWordWrapping: 1 211 | m_wordWrappingRatios: 0.4 212 | m_overflowMode: 0 213 | m_firstOverflowCharacterIndex: -1 214 | m_linkedTextComponent: {fileID: 0} 215 | m_isLinkedTextComponent: 0 216 | m_isTextTruncated: 0 217 | m_enableKerning: 1 218 | m_enableExtraPadding: 0 219 | checkPaddingRequired: 0 220 | m_isRichText: 1 221 | m_parseCtrlCharacters: 1 222 | m_isOrthographic: 1 223 | m_isCullingEnabled: 0 224 | m_ignoreRectMaskCulling: 0 225 | m_ignoreCulling: 1 226 | m_horizontalMapping: 0 227 | m_verticalMapping: 0 228 | m_uvLineOffset: 0 229 | m_geometrySortingOrder: 0 230 | m_firstVisibleCharacter: 0 231 | m_useMaxVisibleDescender: 1 232 | m_pageToDisplay: 1 233 | m_margin: {x: 0, y: 0, z: 0, w: 0} 234 | m_textInfo: 235 | textComponent: {fileID: 0} 236 | characterCount: 0 237 | spriteCount: 0 238 | spaceCount: 0 239 | wordCount: 0 240 | linkCount: 0 241 | lineCount: 0 242 | pageCount: 0 243 | materialCount: 1 244 | m_havePropertiesChanged: 1 245 | m_isUsingLegacyAnimationComponent: 0 246 | m_isVolumetricText: 0 247 | m_spriteAnimator: {fileID: 0} 248 | m_isInputParsingRequired: 0 249 | m_inputSource: 0 250 | m_hasFontAssetChanged: 0 251 | m_subTextObjects: 252 | - {fileID: 0} 253 | - {fileID: 0} 254 | - {fileID: 0} 255 | - {fileID: 0} 256 | - {fileID: 0} 257 | - {fileID: 0} 258 | - {fileID: 0} 259 | - {fileID: 0} 260 | m_baseMaterial: {fileID: 0} 261 | m_maskOffset: {x: 0, y: 0, z: 0, w: 0} 262 | --- !u!222 &222519286183020402 263 | CanvasRenderer: 264 | m_ObjectHideFlags: 1 265 | m_CorrespondingSourceObject: {fileID: 0} 266 | m_PrefabInternal: {fileID: 100100000} 267 | m_GameObject: {fileID: 1930979838824982} 268 | m_CullTransparentMesh: 0 269 | --- !u!222 &222744119580831986 270 | CanvasRenderer: 271 | m_ObjectHideFlags: 1 272 | m_CorrespondingSourceObject: {fileID: 0} 273 | m_PrefabInternal: {fileID: 100100000} 274 | m_GameObject: {fileID: 1478834042811616} 275 | m_CullTransparentMesh: 0 276 | --- !u!224 &224746555420374912 277 | RectTransform: 278 | m_ObjectHideFlags: 1 279 | m_CorrespondingSourceObject: {fileID: 0} 280 | m_PrefabInternal: {fileID: 100100000} 281 | m_GameObject: {fileID: 1930979838824982} 282 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 283 | m_LocalPosition: {x: 0, y: 0, z: 0} 284 | m_LocalScale: {x: 1, y: 1, z: 1} 285 | m_Children: [] 286 | m_Father: {fileID: 224818820984353370} 287 | m_RootOrder: 0 288 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 289 | m_AnchorMin: {x: 0, y: 0} 290 | m_AnchorMax: {x: 1, y: 1} 291 | m_AnchoredPosition: {x: 0, y: 0} 292 | m_SizeDelta: {x: 0, y: 0} 293 | m_Pivot: {x: 0.5, y: 0.5} 294 | --- !u!224 &224818820984353370 295 | RectTransform: 296 | m_ObjectHideFlags: 1 297 | m_CorrespondingSourceObject: {fileID: 0} 298 | m_PrefabInternal: {fileID: 100100000} 299 | m_GameObject: {fileID: 1478834042811616} 300 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 301 | m_LocalPosition: {x: 0, y: 0, z: 0} 302 | m_LocalScale: {x: 1, y: 1, z: 1} 303 | m_Children: 304 | - {fileID: 224746555420374912} 305 | m_Father: {fileID: 0} 306 | m_RootOrder: 0 307 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 308 | m_AnchorMin: {x: 0, y: 1} 309 | m_AnchorMax: {x: 0, y: 1} 310 | m_AnchoredPosition: {x: 20, y: -15.96} 311 | m_SizeDelta: {x: 40, y: 31.92} 312 | m_Pivot: {x: 0.5, y: 0.5} 313 | -------------------------------------------------------------------------------- /Assets/WDataTable/Resources/TMPButtonElement.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 704705f6013e7ba44a4e2d6755b57ea4 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/WDataTable/Resources/TMPTextElement.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_SourcePrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1502688461413554} 13 | m_IsPrefabAsset: 1 14 | --- !u!1 &1502688461413554 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_CorrespondingSourceObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 6 20 | m_Component: 21 | - component: {fileID: 224475097328540208} 22 | - component: {fileID: 222034562962040354} 23 | - component: {fileID: 114505040361742252} 24 | - component: {fileID: 114733560346015940} 25 | - component: {fileID: 114691504113720682} 26 | m_Layer: 5 27 | m_Name: TMPTextElement 28 | m_TagString: Untagged 29 | m_Icon: {fileID: 0} 30 | m_NavMeshLayer: 0 31 | m_StaticEditorFlags: 0 32 | m_IsActive: 1 33 | --- !u!114 &114505040361742252 34 | MonoBehaviour: 35 | m_ObjectHideFlags: 1 36 | m_CorrespondingSourceObject: {fileID: 0} 37 | m_PrefabInternal: {fileID: 100100000} 38 | m_GameObject: {fileID: 1502688461413554} 39 | m_Enabled: 1 40 | m_EditorHideFlags: 0 41 | m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} 42 | m_Name: 43 | m_EditorClassIdentifier: 44 | m_IgnoreLayout: 0 45 | m_MinWidth: -1 46 | m_MinHeight: -1 47 | m_PreferredWidth: -1 48 | m_PreferredHeight: -1 49 | m_FlexibleWidth: -1 50 | m_FlexibleHeight: -1 51 | m_LayoutPriority: 1 52 | --- !u!114 &114691504113720682 53 | MonoBehaviour: 54 | m_ObjectHideFlags: 1 55 | m_CorrespondingSourceObject: {fileID: 0} 56 | m_PrefabInternal: {fileID: 100100000} 57 | m_GameObject: {fileID: 1502688461413554} 58 | m_Enabled: 1 59 | m_EditorHideFlags: 0 60 | m_Script: {fileID: 11500000, guid: 17184bd6f27cf7547a3f07d12e8cfdab, type: 3} 61 | m_Name: 62 | m_EditorClassIdentifier: 63 | --- !u!114 &114733560346015940 64 | MonoBehaviour: 65 | m_ObjectHideFlags: 1 66 | m_CorrespondingSourceObject: {fileID: 0} 67 | m_PrefabInternal: {fileID: 100100000} 68 | m_GameObject: {fileID: 1502688461413554} 69 | m_Enabled: 1 70 | m_EditorHideFlags: 0 71 | m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} 72 | m_Name: 73 | m_EditorClassIdentifier: 74 | m_Material: {fileID: 0} 75 | m_Color: {r: 1, g: 1, b: 1, a: 1} 76 | m_RaycastTarget: 1 77 | m_OnCullStateChanged: 78 | m_PersistentCalls: 79 | m_Calls: [] 80 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 81 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 82 | m_text: dsadsda 83 | m_isRightToLeft: 0 84 | m_fontAsset: {fileID: 0} 85 | m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 86 | m_fontSharedMaterials: [] 87 | m_fontMaterial: {fileID: 0} 88 | m_fontMaterials: [] 89 | m_fontColor32: 90 | serializedVersion: 2 91 | rgba: 4278190080 92 | m_fontColor: {r: 0, g: 0, b: 0, a: 1} 93 | m_enableVertexGradient: 0 94 | m_fontColorGradient: 95 | topLeft: {r: 1, g: 1, b: 1, a: 1} 96 | topRight: {r: 1, g: 1, b: 1, a: 1} 97 | bottomLeft: {r: 1, g: 1, b: 1, a: 1} 98 | bottomRight: {r: 1, g: 1, b: 1, a: 1} 99 | m_fontColorGradientPreset: {fileID: 0} 100 | m_spriteAsset: {fileID: 0} 101 | m_tintAllSprites: 0 102 | m_overrideHtmlColors: 0 103 | m_faceColor: 104 | serializedVersion: 2 105 | rgba: 4294967295 106 | m_outlineColor: 107 | serializedVersion: 2 108 | rgba: 4278190080 109 | m_fontSize: 14 110 | m_fontSizeBase: 14 111 | m_fontWeight: 400 112 | m_enableAutoSizing: 0 113 | m_fontSizeMin: 18 114 | m_fontSizeMax: 72 115 | m_fontStyle: 0 116 | m_textAlignment: 514 117 | m_isAlignmentEnumConverted: 1 118 | m_characterSpacing: 0 119 | m_wordSpacing: 0 120 | m_lineSpacing: 0 121 | m_lineSpacingMax: 0 122 | m_paragraphSpacing: 0 123 | m_charWidthMaxAdj: 0 124 | m_enableWordWrapping: 1 125 | m_wordWrappingRatios: 0.4 126 | m_overflowMode: 0 127 | m_firstOverflowCharacterIndex: -1 128 | m_linkedTextComponent: {fileID: 0} 129 | m_isLinkedTextComponent: 0 130 | m_isTextTruncated: 0 131 | m_enableKerning: 1 132 | m_enableExtraPadding: 0 133 | checkPaddingRequired: 0 134 | m_isRichText: 1 135 | m_parseCtrlCharacters: 1 136 | m_isOrthographic: 1 137 | m_isCullingEnabled: 0 138 | m_ignoreRectMaskCulling: 0 139 | m_ignoreCulling: 1 140 | m_horizontalMapping: 0 141 | m_verticalMapping: 0 142 | m_uvLineOffset: 0 143 | m_geometrySortingOrder: 0 144 | m_firstVisibleCharacter: 0 145 | m_useMaxVisibleDescender: 1 146 | m_pageToDisplay: 1 147 | m_margin: {x: 0, y: 0, z: 0, w: 0} 148 | m_textInfo: 149 | textComponent: {fileID: 114733560346015940} 150 | characterCount: 7 151 | spriteCount: 0 152 | spaceCount: 0 153 | wordCount: 1 154 | linkCount: 0 155 | lineCount: 1 156 | pageCount: 1 157 | materialCount: 1 158 | m_havePropertiesChanged: 0 159 | m_isUsingLegacyAnimationComponent: 0 160 | m_isVolumetricText: 0 161 | m_spriteAnimator: {fileID: 0} 162 | m_isInputParsingRequired: 0 163 | m_inputSource: 0 164 | m_hasFontAssetChanged: 0 165 | m_subTextObjects: 166 | - {fileID: 0} 167 | - {fileID: 0} 168 | - {fileID: 0} 169 | - {fileID: 0} 170 | - {fileID: 0} 171 | - {fileID: 0} 172 | - {fileID: 0} 173 | - {fileID: 0} 174 | m_baseMaterial: {fileID: 0} 175 | m_maskOffset: {x: 0, y: 0, z: 0, w: 0} 176 | --- !u!222 &222034562962040354 177 | CanvasRenderer: 178 | m_ObjectHideFlags: 1 179 | m_CorrespondingSourceObject: {fileID: 0} 180 | m_PrefabInternal: {fileID: 100100000} 181 | m_GameObject: {fileID: 1502688461413554} 182 | m_CullTransparentMesh: 0 183 | --- !u!224 &224475097328540208 184 | RectTransform: 185 | m_ObjectHideFlags: 1 186 | m_CorrespondingSourceObject: {fileID: 0} 187 | m_PrefabInternal: {fileID: 100100000} 188 | m_GameObject: {fileID: 1502688461413554} 189 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 190 | m_LocalPosition: {x: 0, y: 0, z: 0} 191 | m_LocalScale: {x: 1, y: 1, z: 1} 192 | m_Children: [] 193 | m_Father: {fileID: 0} 194 | m_RootOrder: 0 195 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 196 | m_AnchorMin: {x: 0, y: 1} 197 | m_AnchorMax: {x: 0, y: 1} 198 | m_AnchoredPosition: {x: 29.5, y: -8} 199 | m_SizeDelta: {x: 200, y: 50} 200 | m_Pivot: {x: 0.5, y: 0.5} 201 | -------------------------------------------------------------------------------- /Assets/WDataTable/Resources/TMPTextElement.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9cefde6ccdbc22f4f8210d8c2a0dc24e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/WDataTable/Resources/TextElement.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_SourcePrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1502688461413554} 13 | m_IsPrefabAsset: 1 14 | --- !u!1 &1502688461413554 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_CorrespondingSourceObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 6 20 | m_Component: 21 | - component: {fileID: 224475097328540208} 22 | - component: {fileID: 222034562962040354} 23 | - component: {fileID: 114867234018674516} 24 | - component: {fileID: 114505040361742252} 25 | - component: {fileID: 114068951960604648} 26 | m_Layer: 5 27 | m_Name: TextElement 28 | m_TagString: Untagged 29 | m_Icon: {fileID: 0} 30 | m_NavMeshLayer: 0 31 | m_StaticEditorFlags: 0 32 | m_IsActive: 1 33 | --- !u!114 &114068951960604648 34 | MonoBehaviour: 35 | m_ObjectHideFlags: 1 36 | m_CorrespondingSourceObject: {fileID: 0} 37 | m_PrefabInternal: {fileID: 100100000} 38 | m_GameObject: {fileID: 1502688461413554} 39 | m_Enabled: 1 40 | m_EditorHideFlags: 0 41 | m_Script: {fileID: 11500000, guid: 17184bd6f27cf7547a3f07d12e8cfdab, type: 3} 42 | m_Name: 43 | m_EditorClassIdentifier: 44 | --- !u!114 &114505040361742252 45 | MonoBehaviour: 46 | m_ObjectHideFlags: 1 47 | m_CorrespondingSourceObject: {fileID: 0} 48 | m_PrefabInternal: {fileID: 100100000} 49 | m_GameObject: {fileID: 1502688461413554} 50 | m_Enabled: 1 51 | m_EditorHideFlags: 0 52 | m_Script: {fileID: 1679637790, guid: f70555f144d8491a825f0804e09c671c, type: 3} 53 | m_Name: 54 | m_EditorClassIdentifier: 55 | m_IgnoreLayout: 0 56 | m_MinWidth: -1 57 | m_MinHeight: -1 58 | m_PreferredWidth: -1 59 | m_PreferredHeight: -1 60 | m_FlexibleWidth: -1 61 | m_FlexibleHeight: -1 62 | m_LayoutPriority: 1 63 | --- !u!114 &114867234018674516 64 | MonoBehaviour: 65 | m_ObjectHideFlags: 1 66 | m_CorrespondingSourceObject: {fileID: 0} 67 | m_PrefabInternal: {fileID: 100100000} 68 | m_GameObject: {fileID: 1502688461413554} 69 | m_Enabled: 1 70 | m_EditorHideFlags: 0 71 | m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3} 72 | m_Name: 73 | m_EditorClassIdentifier: 74 | m_Material: {fileID: 0} 75 | m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} 76 | m_RaycastTarget: 1 77 | m_OnCullStateChanged: 78 | m_PersistentCalls: 79 | m_Calls: [] 80 | m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, 81 | Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 82 | m_FontData: 83 | m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} 84 | m_FontSize: 14 85 | m_FontStyle: 0 86 | m_BestFit: 0 87 | m_MinSize: 10 88 | m_MaxSize: 40 89 | m_Alignment: 4 90 | m_AlignByGeometry: 0 91 | m_RichText: 1 92 | m_HorizontalOverflow: 0 93 | m_VerticalOverflow: 0 94 | m_LineSpacing: 1 95 | m_Text: New Text 96 | --- !u!222 &222034562962040354 97 | CanvasRenderer: 98 | m_ObjectHideFlags: 1 99 | m_CorrespondingSourceObject: {fileID: 0} 100 | m_PrefabInternal: {fileID: 100100000} 101 | m_GameObject: {fileID: 1502688461413554} 102 | m_CullTransparentMesh: 0 103 | --- !u!224 &224475097328540208 104 | RectTransform: 105 | m_ObjectHideFlags: 1 106 | m_CorrespondingSourceObject: {fileID: 0} 107 | m_PrefabInternal: {fileID: 100100000} 108 | m_GameObject: {fileID: 1502688461413554} 109 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 110 | m_LocalPosition: {x: 0, y: 0, z: 0} 111 | m_LocalScale: {x: 1, y: 1, z: 1} 112 | m_Children: [] 113 | m_Father: {fileID: 0} 114 | m_RootOrder: 0 115 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 116 | m_AnchorMin: {x: 0, y: 1} 117 | m_AnchorMax: {x: 0, y: 1} 118 | m_AnchoredPosition: {x: 29.5, y: -8} 119 | m_SizeDelta: {x: 59, y: 16} 120 | m_Pivot: {x: 0.5, y: 0.5} 121 | -------------------------------------------------------------------------------- /Assets/WDataTable/Resources/TextElement.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 91f1d99734613eb4ebe2c15cbc3aedcd 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 100100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/WDataTable/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c88714ca128d534399a44e3a38def13 3 | folderAsset: yes 4 | timeCreated: 1493881292 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/WDataTable/Scripts/WButton.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.Assertions; 3 | using UnityEngine.UI; 4 | #if WDT_USE_TMPRO 5 | using TMPro; 6 | 7 | #endif 8 | 9 | namespace WDT 10 | { 11 | public class WButton : WElement 12 | { 13 | private Button m_button; 14 | private Text m_text; 15 | #if WDT_USE_TMPRO 16 | private TextMeshProUGUI m_tmpText; 17 | #endif 18 | private LayoutElement m_layoutElement; 19 | private RectTransform m_rectTransform; 20 | 21 | protected override void InitElement() 22 | { 23 | base.InitElement(); 24 | m_button = GetComponent