From c04c049c6a6ea88c613fe0f9aa6d811aab958083 Mon Sep 17 00:00:00 2001 From: SepComet <2428390463@qq.com> Date: Sat, 7 Mar 2026 22:50:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=95=86=E5=BA=97=20UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CustomComponent/ShopNodeComponent.cs | 42 +- .../Scripts/Definition/Enum/UIFormType.cs | 7 +- Assets/GameMain/Scripts/Event/Shop.meta | 8 + .../Event/Shop/ShopExitRequestedEventArgs.cs | 21 + .../Shop/ShopExitRequestedEventArgs.cs.meta | 11 + .../Shop/ShopInventoryRequestedEventArgs.cs | 21 + .../ShopInventoryRequestedEventArgs.cs.meta | 11 + .../Shop/ShopPurchaseRequestedEventArgs.cs | 26 + .../ShopPurchaseRequestedEventArgs.cs.meta | 11 + Assets/GameMain/Scripts/UI/Shop.meta | 8 + Assets/GameMain/Scripts/UI/Shop/Context.meta | 8 + .../UI/Shop/Context/GoodsItemContext.cs | 14 + .../UI/Shop/Context/GoodsItemContext.cs.meta | 11 + .../UI/Shop/Context/ShopFormContext.cs | 8 + .../UI/Shop/Context/ShopFormContext.cs.meta | 11 + .../GameMain/Scripts/UI/Shop/Controller.meta | 8 + .../UI/Shop/Controller/ShopFormController.cs | 182 +++ .../Controller/ShopFormController.cs.meta | 11 + Assets/GameMain/Scripts/UI/Shop/RawData.meta | 8 + .../UI/Shop/RawData/GoodsItemRawData.cs | 17 + .../UI/Shop/RawData/GoodsItemRawData.cs.meta | 11 + .../UI/Shop/RawData/ShopFormRawData.cs | 10 + .../UI/Shop/RawData/ShopFormRawData.cs.meta | 11 + Assets/GameMain/Scripts/UI/Shop/UseCase.meta | 8 + .../UI/Shop/UseCase/ShopFormUseCase.cs | 360 +++++ .../UI/Shop/UseCase/ShopFormUseCase.cs.meta | 11 + Assets/GameMain/Scripts/UI/Shop/View.meta | 8 + .../Scripts/UI/Shop/View/GoodsItem.cs | 136 ++ .../Scripts/UI/Shop/View/GoodsItem.cs.meta | 11 + .../GameMain/Scripts/UI/Shop/View/ShopForm.cs | 94 ++ .../Scripts/UI/Shop/View/ShopForm.cs.meta | 11 + Assets/GameMain/UI/UIForms/ShopForm.prefab | 1309 +++++++++++++++++ .../GameMain/UI/UIForms/ShopForm.prefab.meta | 7 + Assets/GameMain/UI/UIItems/GoodsItem.prefab | 994 +++++++++++++ .../GameMain/UI/UIItems/GoodsItem.prefab.meta | 7 + 35 files changed, 3422 insertions(+), 10 deletions(-) create mode 100644 Assets/GameMain/Scripts/Event/Shop.meta create mode 100644 Assets/GameMain/Scripts/Event/Shop/ShopExitRequestedEventArgs.cs create mode 100644 Assets/GameMain/Scripts/Event/Shop/ShopExitRequestedEventArgs.cs.meta create mode 100644 Assets/GameMain/Scripts/Event/Shop/ShopInventoryRequestedEventArgs.cs create mode 100644 Assets/GameMain/Scripts/Event/Shop/ShopInventoryRequestedEventArgs.cs.meta create mode 100644 Assets/GameMain/Scripts/Event/Shop/ShopPurchaseRequestedEventArgs.cs create mode 100644 Assets/GameMain/Scripts/Event/Shop/ShopPurchaseRequestedEventArgs.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/Context.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/Context/GoodsItemContext.cs create mode 100644 Assets/GameMain/Scripts/UI/Shop/Context/GoodsItemContext.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/Context/ShopFormContext.cs create mode 100644 Assets/GameMain/Scripts/UI/Shop/Context/ShopFormContext.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/Controller.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/Controller/ShopFormController.cs create mode 100644 Assets/GameMain/Scripts/UI/Shop/Controller/ShopFormController.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/RawData.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/RawData/GoodsItemRawData.cs create mode 100644 Assets/GameMain/Scripts/UI/Shop/RawData/GoodsItemRawData.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/RawData/ShopFormRawData.cs create mode 100644 Assets/GameMain/Scripts/UI/Shop/RawData/ShopFormRawData.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/UseCase.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs create mode 100644 Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/View.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/View/GoodsItem.cs create mode 100644 Assets/GameMain/Scripts/UI/Shop/View/GoodsItem.cs.meta create mode 100644 Assets/GameMain/Scripts/UI/Shop/View/ShopForm.cs create mode 100644 Assets/GameMain/Scripts/UI/Shop/View/ShopForm.cs.meta create mode 100644 Assets/GameMain/UI/UIForms/ShopForm.prefab create mode 100644 Assets/GameMain/UI/UIForms/ShopForm.prefab.meta create mode 100644 Assets/GameMain/UI/UIItems/GoodsItem.prefab create mode 100644 Assets/GameMain/UI/UIItems/GoodsItem.prefab.meta diff --git a/Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs b/Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs index d48a9a8..ffd81e6 100644 --- a/Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs +++ b/Assets/GameMain/Scripts/CustomComponent/ShopNodeComponent.cs @@ -1,24 +1,48 @@ -using System.Collections.Generic; -using GameFramework.DataTable; -using GeometryTD.DataTable; -using GeometryTD.Definition; -using Newtonsoft.Json.Linq; using GeometryTD.UI; -using UnityEngine; using UnityGameFramework.Runtime; +using GeometryTD.CustomEvent; +using GeometryTD.Definition; namespace GeometryTD.CustomComponent { public class ShopNodeComponent : GameFrameworkComponent { + private ShopFormUseCase _shopFormUseCase; + private bool _initialized; + public void OnInit() { - + if (_initialized) + { + return; + } + + _shopFormUseCase ??= new ShopFormUseCase(); + GameEntry.UIRouter.BindUIUseCase(UIFormType.ShopForm, _shopFormUseCase); + _initialized = true; } public void StartShop() { - //TODO + if (!_initialized) + { + OnInit(); + } + + if (_shopFormUseCase == null || !_shopFormUseCase.PrepareForOpen()) + { + Log.Warning("ShopNodeComponent.StartShop() failed. Shop use case is unavailable or goods generation failed."); + return; + } + + GameEntry.UIRouter.OpenUI(UIFormType.ShopForm); + GameEntry.Event.Fire(this, NodeEnterEventArgs.Create()); + } + + public void EndShop() + { + GameEntry.UIRouter.CloseUI(UIFormType.ShopForm); + GameEntry.Event.Fire(this, NodeCompleteEventArgs.Create()); } } -} \ No newline at end of file +} diff --git a/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs b/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs index 40a9484..016e486 100644 --- a/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs +++ b/Assets/GameMain/Scripts/Definition/Enum/UIFormType.cs @@ -67,9 +67,14 @@ /// CombatSelectForm = 142, + /// + /// 商店界面。 + /// + ShopForm = 150, + /// /// 测试菜单。 /// TestMenuForm = 200, } -} \ No newline at end of file +} diff --git a/Assets/GameMain/Scripts/Event/Shop.meta b/Assets/GameMain/Scripts/Event/Shop.meta new file mode 100644 index 0000000..53c9315 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Shop.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 56d13fc3b109421e814cba0ebc2417c9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Shop/ShopExitRequestedEventArgs.cs b/Assets/GameMain/Scripts/Event/Shop/ShopExitRequestedEventArgs.cs new file mode 100644 index 0000000..7af3669 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Shop/ShopExitRequestedEventArgs.cs @@ -0,0 +1,21 @@ +using GameFramework; +using GameFramework.Event; + +namespace GeometryTD.CustomEvent +{ + public sealed class ShopExitRequestedEventArgs : GameEventArgs + { + public static int EventId => typeof(ShopExitRequestedEventArgs).GetHashCode(); + + public override int Id => EventId; + + public static ShopExitRequestedEventArgs Create() + { + return ReferencePool.Acquire(); + } + + public override void Clear() + { + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Shop/ShopExitRequestedEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Shop/ShopExitRequestedEventArgs.cs.meta new file mode 100644 index 0000000..588ac05 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Shop/ShopExitRequestedEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6cd59d773d1f4cc5845eaf0c41838fdd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Shop/ShopInventoryRequestedEventArgs.cs b/Assets/GameMain/Scripts/Event/Shop/ShopInventoryRequestedEventArgs.cs new file mode 100644 index 0000000..b299c12 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Shop/ShopInventoryRequestedEventArgs.cs @@ -0,0 +1,21 @@ +using GameFramework; +using GameFramework.Event; + +namespace GeometryTD.CustomEvent +{ + public sealed class ShopInventoryRequestedEventArgs : GameEventArgs + { + public static int EventId => typeof(ShopInventoryRequestedEventArgs).GetHashCode(); + + public override int Id => EventId; + + public static ShopInventoryRequestedEventArgs Create() + { + return ReferencePool.Acquire(); + } + + public override void Clear() + { + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Shop/ShopInventoryRequestedEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Shop/ShopInventoryRequestedEventArgs.cs.meta new file mode 100644 index 0000000..321a47b --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Shop/ShopInventoryRequestedEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8f1480d3d78848dbb847fc5d3075d3a8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Event/Shop/ShopPurchaseRequestedEventArgs.cs b/Assets/GameMain/Scripts/Event/Shop/ShopPurchaseRequestedEventArgs.cs new file mode 100644 index 0000000..eece0c2 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Shop/ShopPurchaseRequestedEventArgs.cs @@ -0,0 +1,26 @@ +using GameFramework; +using GameFramework.Event; + +namespace GeometryTD.CustomEvent +{ + public sealed class ShopPurchaseRequestedEventArgs : GameEventArgs + { + public static int EventId => typeof(ShopPurchaseRequestedEventArgs).GetHashCode(); + + public override int Id => EventId; + + public int GoodsIndex { get; private set; } + + public static ShopPurchaseRequestedEventArgs Create(int goodsIndex) + { + ShopPurchaseRequestedEventArgs args = ReferencePool.Acquire(); + args.GoodsIndex = goodsIndex; + return args; + } + + public override void Clear() + { + GoodsIndex = -1; + } + } +} diff --git a/Assets/GameMain/Scripts/Event/Shop/ShopPurchaseRequestedEventArgs.cs.meta b/Assets/GameMain/Scripts/Event/Shop/ShopPurchaseRequestedEventArgs.cs.meta new file mode 100644 index 0000000..a9b9ae0 --- /dev/null +++ b/Assets/GameMain/Scripts/Event/Shop/ShopPurchaseRequestedEventArgs.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 57bf30adac09423ea7485c7b8df6ea77 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop.meta b/Assets/GameMain/Scripts/UI/Shop.meta new file mode 100644 index 0000000..180d9dd --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 25816d1aa52a4a14a84d15866c632772 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/Context.meta b/Assets/GameMain/Scripts/UI/Shop/Context.meta new file mode 100644 index 0000000..23e8cf6 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/Context.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 205871b758fd36c4293403d38a175a11 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/Context/GoodsItemContext.cs b/Assets/GameMain/Scripts/UI/Shop/Context/GoodsItemContext.cs new file mode 100644 index 0000000..909e052 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/Context/GoodsItemContext.cs @@ -0,0 +1,14 @@ +namespace GeometryTD.UI +{ + public sealed class GoodsItemContext : UIContext + { + public int GoodsIndex; + public string Title; + public string TypeText; + public string Description; + public string[] TagTexts; + public string PurchaseButtonText; + public bool CanPurchase; + public IconAreaContext IconAreaContext; + } +} diff --git a/Assets/GameMain/Scripts/UI/Shop/Context/GoodsItemContext.cs.meta b/Assets/GameMain/Scripts/UI/Shop/Context/GoodsItemContext.cs.meta new file mode 100644 index 0000000..49a9e3c --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/Context/GoodsItemContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3011a33afe7446b3b64f6c7e12d74bb3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/Context/ShopFormContext.cs b/Assets/GameMain/Scripts/UI/Shop/Context/ShopFormContext.cs new file mode 100644 index 0000000..b47827c --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/Context/ShopFormContext.cs @@ -0,0 +1,8 @@ +namespace GeometryTD.UI +{ + public sealed class ShopFormContext : UIContext + { + public string GoldText; + public GoodsItemContext[] GoodsItems; + } +} diff --git a/Assets/GameMain/Scripts/UI/Shop/Context/ShopFormContext.cs.meta b/Assets/GameMain/Scripts/UI/Shop/Context/ShopFormContext.cs.meta new file mode 100644 index 0000000..50beab8 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/Context/ShopFormContext.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2b93270d4a87490c8d28c4ab6ce76d8c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/Controller.meta b/Assets/GameMain/Scripts/UI/Shop/Controller.meta new file mode 100644 index 0000000..173ff3d --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/Controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65b0bdd28c1bb1a4eabce0759017ed74 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/Controller/ShopFormController.cs b/Assets/GameMain/Scripts/UI/Shop/Controller/ShopFormController.cs new file mode 100644 index 0000000..72989e2 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/Controller/ShopFormController.cs @@ -0,0 +1,182 @@ +using GeometryTD.CustomEvent; +using GeometryTD.Definition; +using GameFramework.Event; +using UnityEngine; +using UnityGameFramework.Runtime; + +namespace GeometryTD.UI +{ + public sealed class ShopFormController : UIFormControllerCommonBase + { + private ShopFormUseCase _useCase; + + protected override UIFormType UIFormTypeId => UIFormType.ShopForm; + + protected override void RefreshUI(ShopForm form, ShopFormContext context) + { + form.RefreshUI(context); + } + + protected override void SubscribeCustomEvents() + { + GameEntry.Event.Subscribe(ShopPurchaseRequestedEventArgs.EventId, OnPurchaseRequested); + GameEntry.Event.Subscribe(ShopExitRequestedEventArgs.EventId, OnExitRequested); + GameEntry.Event.Subscribe(ShopInventoryRequestedEventArgs.EventId, OnInventoryRequested); + } + + protected override void UnsubscribeCustomEvents() + { + GameEntry.Event.Unsubscribe(ShopPurchaseRequestedEventArgs.EventId, OnPurchaseRequested); + GameEntry.Event.Unsubscribe(ShopExitRequestedEventArgs.EventId, OnExitRequested); + GameEntry.Event.Unsubscribe(ShopInventoryRequestedEventArgs.EventId, OnInventoryRequested); + } + + public override int? OpenUI(object userData = null) + { + if (userData is ShopFormContext context) + { + return OpenUIInternal(context); + } + + if (userData is ShopFormRawData rawDataFromUserData) + { + return OpenUI(rawDataFromUserData); + } + + if (userData != null) + { + Log.Warning("ShopFormController.OpenUI() userData type is invalid."); + return null; + } + + if (_useCase == null) + { + Log.Error("ShopFormController.OpenUI() useCase is null."); + return null; + } + + ShopFormRawData rawData = _useCase.CreateInitialModel(); + return OpenUI(rawData); + } + + public int? OpenUI(ShopFormRawData rawData) + { + ShopFormContext context = BuildContext(rawData); + return OpenUIInternal(context); + } + + public override void BindUseCase(IUIUseCase useCase) + { + if (!(useCase is ShopFormUseCase shopFormUseCase)) + { + Log.Error("ShopFormController.BindUseCase() useCase is invalid."); + return; + } + + _useCase = shopFormUseCase; + } + + private void OnPurchaseRequested(object sender, GameEventArgs e) + { + if (!IsEventFromCurrentForm(sender) || !(e is ShopPurchaseRequestedEventArgs args) || _useCase == null) + { + return; + } + + if (!_useCase.TryPurchase(args.GoodsIndex, out ShopFormRawData rawData)) + { + return; + } + + SetContext(BuildContext(rawData)); + RefreshCurrentUI(); + } + + private void OnExitRequested(object sender, GameEventArgs e) + { + if (!IsEventFromCurrentForm(sender) || !(e is ShopExitRequestedEventArgs)) + { + return; + } + + GameEntry.ShopNode.EndShop(); + } + + private void OnInventoryRequested(object sender, GameEventArgs e) + { + if (!IsEventFromCurrentForm(sender) || !(e is ShopInventoryRequestedEventArgs)) + { + return; + } + + GameEntry.UIRouter.OpenUI(UIFormType.RepoForm); + } + + private bool IsEventFromCurrentForm(object sender) + { + if (Form == null) + { + return false; + } + + if (ReferenceEquals(sender, Form)) + { + return true; + } + + if (sender is Component component) + { + ShopForm ownerForm = component.GetComponentInParent(); + return ownerForm == Form; + } + + return false; + } + + private static ShopFormContext BuildContext(ShopFormRawData rawData) + { + GoodsItemContext[] goodsItemContexts = System.Array.Empty(); + if (rawData?.GoodsItems != null && rawData.GoodsItems.Count > 0) + { + goodsItemContexts = new GoodsItemContext[rawData.GoodsItems.Count]; + for (int i = 0; i < rawData.GoodsItems.Count; i++) + { + GoodsItemRawData item = rawData.GoodsItems[i]; + goodsItemContexts[i] = new GoodsItemContext + { + GoodsIndex = item?.GoodsIndex ?? i, + Title = item?.Title ?? string.Empty, + TypeText = item?.TypeText ?? string.Empty, + Description = item?.Description ?? string.Empty, + TagTexts = BuildTagTexts(item?.Tags), + PurchaseButtonText = item != null && item.IsPurchased ? "已购买" : $"购买 {item?.Price ?? 0}", + CanPurchase = item != null && !item.IsPurchased, + IconAreaContext = item?.IconAreaContext + }; + } + } + + return new ShopFormContext + { + GoldText = $"金币: {rawData?.PlayerGold ?? 0}", + GoodsItems = goodsItemContexts + }; + } + + private static string[] BuildTagTexts(TagType[] tags) + { + if (tags == null || tags.Length <= 0) + { + return System.Array.Empty(); + } + + string[] results = new string[tags.Length]; + for (int i = 0; i < tags.Length; i++) + { + results[i] = tags[i].ToString(); + } + + return results; + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Shop/Controller/ShopFormController.cs.meta b/Assets/GameMain/Scripts/UI/Shop/Controller/ShopFormController.cs.meta new file mode 100644 index 0000000..c85963d --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/Controller/ShopFormController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6dd7cf0d9ac04fbf887dd5c91ccfd8c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/RawData.meta b/Assets/GameMain/Scripts/UI/Shop/RawData.meta new file mode 100644 index 0000000..443a57c --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/RawData.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce22b3656e7af3f4496722cae8012c2c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/RawData/GoodsItemRawData.cs b/Assets/GameMain/Scripts/UI/Shop/RawData/GoodsItemRawData.cs new file mode 100644 index 0000000..3751b5d --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/RawData/GoodsItemRawData.cs @@ -0,0 +1,17 @@ +using GeometryTD.Definition; + +namespace GeometryTD.UI +{ + public sealed class GoodsItemRawData + { + public int GoodsIndex; + public string Title; + public string TypeText; + public string Description; + public int Price; + public TagType[] Tags; + public IconAreaContext IconAreaContext; + public TowerCompItemData SourceItem; + public bool IsPurchased; + } +} diff --git a/Assets/GameMain/Scripts/UI/Shop/RawData/GoodsItemRawData.cs.meta b/Assets/GameMain/Scripts/UI/Shop/RawData/GoodsItemRawData.cs.meta new file mode 100644 index 0000000..15ee539 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/RawData/GoodsItemRawData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2c8ebd55b553410c95771c81cf1e98ee +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/RawData/ShopFormRawData.cs b/Assets/GameMain/Scripts/UI/Shop/RawData/ShopFormRawData.cs new file mode 100644 index 0000000..c3c2c95 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/RawData/ShopFormRawData.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; + +namespace GeometryTD.UI +{ + public sealed class ShopFormRawData + { + public int PlayerGold; + public List GoodsItems; + } +} diff --git a/Assets/GameMain/Scripts/UI/Shop/RawData/ShopFormRawData.cs.meta b/Assets/GameMain/Scripts/UI/Shop/RawData/ShopFormRawData.cs.meta new file mode 100644 index 0000000..27cdc76 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/RawData/ShopFormRawData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f0bde78d35934ae0bbb1b54a6338790c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/UseCase.meta b/Assets/GameMain/Scripts/UI/Shop/UseCase.meta new file mode 100644 index 0000000..b727fd5 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/UseCase.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 24149e6ffd197cf498a39b7ef77e5679 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs b/Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs new file mode 100644 index 0000000..42839c5 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs @@ -0,0 +1,360 @@ +using System; +using System.Collections.Generic; +using GameFramework.DataTable; +using GeometryTD.CustomUtility; +using GeometryTD.DataTable; +using GeometryTD.Definition; +using UnityEngine; +using UnityGameFramework.Runtime; + +namespace GeometryTD.UI +{ + public sealed class ShopFormUseCase : IUIUseCase + { + private const int GoodsCount = 4; + private long _nextTempInstanceId = 1000000; + + private readonly List _currentGoods = new List(GoodsCount); + private readonly List _shopPriceRows = new List(); + + private IDataTable _shopPriceTable; + private IDataTable _muzzleCompTable; + private IDataTable _bearingCompTable; + private IDataTable _baseCompTable; + + public bool PrepareForOpen() + { + if (!EnsureTables()) + { + return false; + } + + _currentGoods.Clear(); + for (int i = 0; i < GoodsCount; i++) + { + if (!TryBuildRandomGoodsItem(i, out GoodsItemRawData goodsItem)) + { + Log.Warning("ShopFormUseCase.PrepareForOpen() failed to build goods item {0}.", i); + return false; + } + + _currentGoods.Add(goodsItem); + } + + return _currentGoods.Count == GoodsCount; + } + + public ShopFormRawData CreateInitialModel() + { + return new ShopFormRawData + { + PlayerGold = GameEntry.PlayerInventory != null ? GameEntry.PlayerInventory.Gold : 0, + GoodsItems = CloneGoodsItems(_currentGoods) + }; + } + + public bool TryPurchase(int goodsIndex, out ShopFormRawData updatedRawData) + { + updatedRawData = null; + if (goodsIndex < 0 || goodsIndex >= _currentGoods.Count) + { + Log.Warning("ShopFormUseCase.TryPurchase() goods index is invalid: {0}", goodsIndex); + return false; + } + + if (GameEntry.PlayerInventory == null) + { + Log.Warning("ShopFormUseCase.TryPurchase() player inventory is null."); + return false; + } + + GoodsItemRawData goodsItem = _currentGoods[goodsIndex]; + if (goodsItem == null || goodsItem.SourceItem == null) + { + return false; + } + + if (goodsItem.IsPurchased) + { + Log.Warning("ShopFormUseCase.TryPurchase() goods item {0} already purchased.", goodsIndex); + return false; + } + + if (!GameEntry.PlayerInventory.TryConsumeGold(goodsItem.Price)) + { + Log.Warning("ShopFormUseCase.TryPurchase() failed. Not enough gold for goods item {0}.", goodsIndex); + return false; + } + + BackpackInventoryData inventoryDelta = WrapSingleItem(goodsItem.SourceItem); + GameEntry.PlayerInventory.MergeInventory(inventoryDelta); + goodsItem.IsPurchased = true; + updatedRawData = CreateInitialModel(); + return true; + } + + private bool EnsureTables() + { + _shopPriceTable ??= GameEntry.DataTable.GetDataTable(); + _muzzleCompTable ??= GameEntry.DataTable.GetDataTable(); + _bearingCompTable ??= GameEntry.DataTable.GetDataTable(); + _baseCompTable ??= GameEntry.DataTable.GetDataTable(); + + if (_shopPriceTable == null || _muzzleCompTable == null || _bearingCompTable == null || _baseCompTable == null) + { + Log.Warning("ShopFormUseCase.EnsureTables() failed. Missing required data tables."); + return false; + } + + if (_shopPriceRows.Count <= 0) + { + DRShopPrice[] rows = _shopPriceTable.GetAllDataRows(); + if (rows == null || rows.Length <= 0) + { + Log.Warning("ShopFormUseCase.EnsureTables() failed. Shop price table is empty."); + return false; + } + + foreach (var price in rows) + { + if (price != null) + { + _shopPriceRows.Add(price); + } + } + } + + return _shopPriceRows.Count > 0 && + _muzzleCompTable.Count > 0 && + _bearingCompTable.Count > 0 && + _baseCompTable.Count > 0; + } + + private bool TryBuildRandomGoodsItem(int goodsIndex, out GoodsItemRawData goodsItem) + { + goodsItem = null; + TowerCompItemData sourceItem = BuildRandomComponentItem(); + if (sourceItem == null) + { + return false; + } + + goodsItem = new GoodsItemRawData + { + GoodsIndex = goodsIndex, + Title = sourceItem.Name, + TypeText = BuildTypeText(sourceItem.SlotType), + Description = BuildDescription(sourceItem), + Price = ResolveRandomPrice(sourceItem.Rarity), + Tags = sourceItem.Tags != null ? (TagType[])sourceItem.Tags.Clone() : Array.Empty(), + IconAreaContext = BuildIconAreaContext(sourceItem), + SourceItem = sourceItem, + IsPurchased = false + }; + return true; + } + + private TowerCompItemData BuildRandomComponentItem() + { + int slotRoll = UnityEngine.Random.Range(0, 3); + DRShopPrice priceRow = _shopPriceRows[UnityEngine.Random.Range(0, _shopPriceRows.Count)]; + RarityType rarity = priceRow != null ? priceRow.Rarity : RarityType.White; + + switch (slotRoll) + { + case 0: + return BuildRandomMuzzleItem(rarity); + case 1: + return BuildRandomBearingItem(rarity); + default: + return BuildRandomBaseItem(rarity); + } + } + + private MuzzleCompItemData BuildRandomMuzzleItem(RarityType rarity) + { + DRMuzzleComp[] rows = _muzzleCompTable.GetAllDataRows(); + DRMuzzleComp config = rows[UnityEngine.Random.Range(0, rows.Length)]; + return new MuzzleCompItemData + { + InstanceId = _nextTempInstanceId++, + ConfigId = config.Id, + Name = config.Name, + Rarity = rarity, + Endurance = 100f, + Constraint = config.Constraint, + Tags = config.PossibleTag != null ? (TagType[])config.PossibleTag.Clone() : Array.Empty(), + AttackDamage = config.AttackDamage != null ? (int[])config.AttackDamage.Clone() : Array.Empty(), + DamageRandomRate = config.DamageRandomRate, + AttackMethodType = config.AttackMethodType + }; + } + + private BearingCompItemData BuildRandomBearingItem(RarityType rarity) + { + DRBearingComp[] rows = _bearingCompTable.GetAllDataRows(); + DRBearingComp config = rows[UnityEngine.Random.Range(0, rows.Length)]; + return new BearingCompItemData + { + InstanceId = _nextTempInstanceId++, + ConfigId = config.Id, + Name = config.Name, + Rarity = rarity, + Endurance = 100f, + Constraint = config.Constraint, + Tags = config.PossibleTag != null ? (TagType[])config.PossibleTag.Clone() : Array.Empty(), + RotateSpeed = config.RotateSpeed != null ? (float[])config.RotateSpeed.Clone() : Array.Empty(), + AttackRange = config.AttackRange != null ? (float[])config.AttackRange.Clone() : Array.Empty() + }; + } + + private BaseCompItemData BuildRandomBaseItem(RarityType rarity) + { + DRBaseComp[] rows = _baseCompTable.GetAllDataRows(); + DRBaseComp config = rows[UnityEngine.Random.Range(0, rows.Length)]; + return new BaseCompItemData + { + InstanceId = _nextTempInstanceId++, + ConfigId = config.Id, + Name = config.Name, + Rarity = rarity, + Endurance = 100f, + Constraint = config.Constraint, + Tags = config.PossibleTag != null ? (TagType[])config.PossibleTag.Clone() : Array.Empty(), + AttackSpeed = config.AttackSpeed != null ? (float[])config.AttackSpeed.Clone() : Array.Empty(), + AttackPropertyType = config.AttackPropertyType + }; + } + + private int ResolveRandomPrice(RarityType rarity) + { + for (int i = 0; i < _shopPriceRows.Count; i++) + { + DRShopPrice row = _shopPriceRows[i]; + if (row != null && row.Rarity == rarity) + { + int min = Mathf.Max(0, row.MinPrice); + int max = Mathf.Max(min, row.MaxPrice); + return UnityEngine.Random.Range(min, max + 1); + } + } + + return 0; + } + + private static IconAreaContext BuildIconAreaContext(TowerCompItemData item) + { + return new IconAreaContext + { + Rarity = item.Rarity, + ComponentSlotType = item.SlotType, + Color = IconColorGenerator.GenerateForComponent(item) + }; + } + + private static string BuildTypeText(TowerCompSlotType slotType) + { + return slotType switch + { + TowerCompSlotType.Muzzle => "枪口组件", + TowerCompSlotType.Bearing => "轴承组件", + TowerCompSlotType.Base => "底座组件", + _ => "组件" + }; + } + + private static string BuildDescription(TowerCompItemData item) + { + if (item is MuzzleCompItemData muzzleComp) + { + return ItemDescUtility.BuildMuzzleDesc(muzzleComp); + } + + if (item is BearingCompItemData bearingComp) + { + return ItemDescUtility.BuildBearingDesc(bearingComp); + } + + if (item is BaseCompItemData baseComp) + { + return ItemDescUtility.BuildBaseDesc(baseComp); + } + + return string.Empty; + } + + private static BackpackInventoryData WrapSingleItem(TowerCompItemData item) + { + BackpackInventoryData inventory = new BackpackInventoryData(); + switch (item) + { + case MuzzleCompItemData muzzleComp: + inventory.MuzzleComponents.Add(InventoryCloneUtility.CloneMuzzleComp(muzzleComp)); + break; + case BearingCompItemData bearingComp: + inventory.BearingComponents.Add(InventoryCloneUtility.CloneBearingComp(bearingComp)); + break; + case BaseCompItemData baseComp: + inventory.BaseComponents.Add(InventoryCloneUtility.CloneBaseComp(baseComp)); + break; + } + + return inventory; + } + + private static List CloneGoodsItems(List source) + { + List result = new List(source?.Count ?? 0); + if (source == null) + { + return result; + } + + foreach (var item in source) + { + if (item == null) + { + continue; + } + + result.Add(new GoodsItemRawData + { + GoodsIndex = item.GoodsIndex, + Title = item.Title, + TypeText = item.TypeText, + Description = item.Description, + Price = item.Price, + Tags = item.Tags != null ? (TagType[])item.Tags.Clone() : Array.Empty(), + IconAreaContext = item.IconAreaContext == null + ? null + : new IconAreaContext + { + Rarity = item.IconAreaContext.Rarity, + ComponentSlotType = item.IconAreaContext.ComponentSlotType, + Color = item.IconAreaContext.Color, + Icon = item.IconAreaContext.Icon + }, + SourceItem = CloneSourceItem(item.SourceItem), + IsPurchased = item.IsPurchased + }); + } + + return result; + } + + private static TowerCompItemData CloneSourceItem(TowerCompItemData item) + { + switch (item) + { + case MuzzleCompItemData muzzleComp: + return InventoryCloneUtility.CloneMuzzleComp(muzzleComp); + case BearingCompItemData bearingComp: + return InventoryCloneUtility.CloneBearingComp(bearingComp); + case BaseCompItemData baseComp: + return InventoryCloneUtility.CloneBaseComp(baseComp); + default: + return null; + } + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs.meta b/Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs.meta new file mode 100644 index 0000000..c71ee1e --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/UseCase/ShopFormUseCase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7f8df16c6f56467aa56bbd520d6f784e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/View.meta b/Assets/GameMain/Scripts/UI/Shop/View.meta new file mode 100644 index 0000000..256b512 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/View.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1bb39e35f444d1d43bf281d289a39a3f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/View/GoodsItem.cs b/Assets/GameMain/Scripts/UI/Shop/View/GoodsItem.cs new file mode 100644 index 0000000..ff64284 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/View/GoodsItem.cs @@ -0,0 +1,136 @@ +using GeometryTD.CustomEvent; +using TMPro; +using UnityEngine; + +namespace GeometryTD.UI +{ + public class GoodsItem : MonoBehaviour + { + [SerializeField] private IconArea _iconArea; + + [SerializeField] private TMP_Text _titleText; + + [SerializeField] private TMP_Text _typeText; + + [SerializeField] private TMP_Text _descriptionText; + + [SerializeField] private Transform _tagsParent; + + [SerializeField] private TMP_Text _purchaseButtonText; + + [SerializeField] private GameObject _tagItemPrefab; + + [SerializeField] private int _index; + + private GoodsItemContext _context; + + public void OnInit(GoodsItemContext context) + { + _context = context; + _index = context?.GoodsIndex ?? -1; + + _iconArea?.OnInit(context?.IconAreaContext ?? new IconAreaContext()); + + if (_titleText != null) + { + _titleText.text = context?.Title ?? string.Empty; + } + + if (_typeText != null) + { + _typeText.text = context?.TypeText ?? string.Empty; + } + + if (_descriptionText != null) + { + _descriptionText.text = context?.Description ?? string.Empty; + } + + if (_purchaseButtonText != null) + { + _purchaseButtonText.text = context?.PurchaseButtonText ?? string.Empty; + } + + RefreshTags(context?.TagTexts); + } + + public void OnReset() + { + _context = null; + _index = -1; + _iconArea?.OnReset(); + + if (_titleText != null) + { + _titleText.text = string.Empty; + } + + if (_typeText != null) + { + _typeText.text = string.Empty; + } + + if (_descriptionText != null) + { + _descriptionText.text = string.Empty; + } + + if (_purchaseButtonText != null) + { + _purchaseButtonText.text = string.Empty; + } + + ClearTags(); + } + + public void OnPurchaseButtonClick() + { + if (_context == null || !_context.CanPurchase || _index < 0) + { + return; + } + + GameEntry.Event.Fire(this, ShopPurchaseRequestedEventArgs.Create(_index)); + } + + private void RefreshTags(string[] tagTexts) + { + ClearTags(); + if (_tagsParent == null || _tagItemPrefab == null || tagTexts == null) + { + return; + } + + for (int i = 0; i < tagTexts.Length; i++) + { + if (string.IsNullOrEmpty(tagTexts[i])) + { + continue; + } + + GameObject tagItemObject = Instantiate(_tagItemPrefab, _tagsParent); + TagItem tagItem = tagItemObject.GetComponent(); + if (tagItem != null) + { + tagItem.OnInit(new TagItemContext + { + TagName = tagTexts[i] + }); + } + } + } + + private void ClearTags() + { + if (_tagsParent == null) + { + return; + } + + for (int i = _tagsParent.childCount - 1; i >= 0; i--) + { + Destroy(_tagsParent.GetChild(i).gameObject); + } + } + } +} diff --git a/Assets/GameMain/Scripts/UI/Shop/View/GoodsItem.cs.meta b/Assets/GameMain/Scripts/UI/Shop/View/GoodsItem.cs.meta new file mode 100644 index 0000000..d98f170 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/View/GoodsItem.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f1bbd7ef0a6648a45b413b62d3fcea48 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/UI/Shop/View/ShopForm.cs b/Assets/GameMain/Scripts/UI/Shop/View/ShopForm.cs new file mode 100644 index 0000000..67a5bc1 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/View/ShopForm.cs @@ -0,0 +1,94 @@ +using GeometryTD.CustomEvent; +using TMPro; +using UnityEngine; +using UnityGameFramework.Runtime; + +namespace GeometryTD.UI +{ + public class ShopForm : UGuiForm + { + [SerializeField] private TMP_Text _goldText; + + [SerializeField] private GoodsItem[] _goldItems; + + private ShopFormContext _context; + + public void RefreshUI(ShopFormContext context) + { + _context = context; + if (_goldText != null) + { + _goldText.text = context?.GoldText ?? string.Empty; + } + + RefreshGoodsItems(context?.GoodsItems); + } + + public void OnInventoryButtonClick() + { + GameEntry.Event.Fire(this, ShopInventoryRequestedEventArgs.Create()); + } + + public void OnExitButtonClick() + { + GameEntry.Event.Fire(this, ShopExitRequestedEventArgs.Create()); + } + + protected override void OnOpen(object userData) + { + base.OnOpen(userData); + if (userData is ShopFormContext context) + { + RefreshUI(context); + return; + } + + Log.Warning("ShopForm requires ShopFormContext as userData."); + } + + protected override void OnClose(bool isShutdown, object userData) + { + _context = null; + if (_goldText != null) + { + _goldText.text = string.Empty; + } + + if (_goldItems != null) + { + foreach (var item in _goldItems) + { + item?.OnReset(); + } + } + + base.OnClose(isShutdown, userData); + } + + private void RefreshGoodsItems(GoodsItemContext[] goodsItems) + { + if (_goldItems == null) + { + return; + } + + for (int i = 0; i < _goldItems.Length; i++) + { + GoodsItem goodsItem = _goldItems[i]; + if (goodsItem == null) + { + continue; + } + + if (goodsItems != null && i < goodsItems.Length && goodsItems[i] != null) + { + goodsItem.OnInit(goodsItems[i]); + } + else + { + goodsItem.OnReset(); + } + } + } + } +} \ No newline at end of file diff --git a/Assets/GameMain/Scripts/UI/Shop/View/ShopForm.cs.meta b/Assets/GameMain/Scripts/UI/Shop/View/ShopForm.cs.meta new file mode 100644 index 0000000..9863ce6 --- /dev/null +++ b/Assets/GameMain/Scripts/UI/Shop/View/ShopForm.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6dd3b528f5963a4db79ed9f9ffea2ed +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/UI/UIForms/ShopForm.prefab b/Assets/GameMain/UI/UIForms/ShopForm.prefab new file mode 100644 index 0000000..49c0366 --- /dev/null +++ b/Assets/GameMain/UI/UIForms/ShopForm.prefab @@ -0,0 +1,1309 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2241808423083193139 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5415218784008833447} + m_Layer: 5 + m_Name: GoodsArea + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5415218784008833447 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2241808423083193139} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8151958057702917095} + - {fileID: 7688139928625067640} + - {fileID: 5680695134824055502} + - {fileID: 7356148158948538594} + m_Father: {fileID: 1205117627678350677} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: -200, y: -600} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!1 &3049846567690401185 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8825692828816405696} + - component: {fileID: 3849062704032250195} + - component: {fileID: 8869003100655360642} + m_Layer: 5 + m_Name: mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8825692828816405696 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3049846567690401185} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1205117627678350677} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3849062704032250195 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3049846567690401185} + m_CullTransparentMesh: 1 +--- !u!114 &8869003100655360642 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3049846567690401185} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.2, g: 0.2, b: 0.2, a: 0.101960786} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &3639229578933926034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5945925429161933100} + - component: {fileID: 8192625378894433324} + - component: {fileID: 6733122308210092107} + m_Layer: 5 + m_Name: GoldText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5945925429161933100 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3639229578933926034} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1205117627678350677} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 100, y: -150} + m_SizeDelta: {x: 1200, y: 150} + m_Pivot: {x: 0, y: 0.5} +--- !u!222 &8192625378894433324 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3639229578933926034} + m_CullTransparentMesh: 1 +--- !u!114 &6733122308210092107 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3639229578933926034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u91D1\u5E01\uFF1A100" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 99d811b0183246646a2ce8df996f4bca, type: 2} + m_sharedMaterial: {fileID: -1106088975554028259, guid: 99d811b0183246646a2ce8df996f4bca, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 80 + m_fontSizeBase: 80 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 200 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &6714310236668515261 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1205117627678350677} + - component: {fileID: 4898781408420543685} + m_Layer: 5 + m_Name: ShopForm + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1205117627678350677 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6714310236668515261} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 8825692828816405696} + - {fileID: 5415218784008833447} + - {fileID: 5945925429161933100} + - {fileID: 6945979018531986885} + - {fileID: 3681579519086586321} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &4898781408420543685 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6714310236668515261} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f6dd3b528f5963a4db79ed9f9ffea2ed, type: 3} + m_Name: + m_EditorClassIdentifier: + _goldText: {fileID: 6733122308210092107} + _goldItems: + - {fileID: 4011540134222967855} + - {fileID: 3187293301768225200} + - {fileID: 603388849832031494} + - {fileID: 2349754275062894378} +--- !u!1001 &955635360829419302 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1205117627678350677} + m_Modifications: + - target: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: InventoryButton + objectReference: {fileID: 0} + - target: {fileID: 1341699087252484061, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 9f847ec5e66e03e4ead1d3c5f7b510e8, + type: 3} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_text + value: "\u6253\u5F00\u80CC\u5305" + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontSize + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor.b + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor.g + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor.r + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontSizeBase + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor32.rgba + value: 4279900698 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnInventoryButtonClick + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: GeometryTD.UI.ShopForm, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.x + value: 560 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: -380 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -150 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!224 &3681579519086586321 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 955635360829419302} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &4746075394203509149 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5415218784008833447} + m_Modifications: + - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Name + value: GoodsItem 0 + objectReference: {fileID: 0} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 645 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 1013.25 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 322.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -506.625 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} +--- !u!114 &4011540134222967855 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 4746075394203509149} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &8151958057702917095 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 4746075394203509149} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6263004066066569880 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5415218784008833447} + m_Modifications: + - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Name + value: GoodsItem 3 + objectReference: {fileID: 0} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 645 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 1013.25 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 2347.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -506.625 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _index + value: 3 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} +--- !u!114 &2349754275062894378 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 6263004066066569880} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7356148158948538594 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 6263004066066569880} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6506894752150803458 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5415218784008833447} + m_Modifications: + - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Name + value: GoodsItem 1 + objectReference: {fileID: 0} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 645 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 1013.25 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 997.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -506.625 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _index + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} +--- !u!114 &3187293301768225200 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 6506894752150803458} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7688139928625067640 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 6506894752150803458} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &6787368018900032306 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1205117627678350677} + m_Modifications: + - target: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: ExitShopButton + objectReference: {fileID: 0} + - target: {fileID: 1341699087252484061, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 9f847ec5e66e03e4ead1d3c5f7b510e8, + type: 3} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_text + value: "\u79BB\u5F00\u5546\u5E97" + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontSize + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor.b + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor.g + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor.r + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontSizeBase + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor32.rgba + value: 4279900698 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnExitButtonClick + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: GeometryTD.UI.ShopForm, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.x + value: 560 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.y + value: 100 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 1020 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -659 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!224 &6945979018531986885 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 6787368018900032306} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &9090800509245628596 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 5415218784008833447} + m_Modifications: + - target: {fileID: 245224001821693249, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Name + value: GoodsItem 2 + objectReference: {fileID: 0} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 915593545797210867, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _onHover.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 4898781408420543685} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.x + value: 645 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_SizeDelta.y + value: 1013.25 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 1672.5 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -506.625 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + propertyPath: _index + value: 2 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 27e7c069820f8034e958e539232ac639, type: 3} +--- !u!114 &603388849832031494 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 8536194946006111666, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 9090800509245628596} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &5680695134824055502 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 3529943345771897466, guid: 27e7c069820f8034e958e539232ac639, + type: 3} + m_PrefabInstance: {fileID: 9090800509245628596} + m_PrefabAsset: {fileID: 0} diff --git a/Assets/GameMain/UI/UIForms/ShopForm.prefab.meta b/Assets/GameMain/UI/UIForms/ShopForm.prefab.meta new file mode 100644 index 0000000..2540818 --- /dev/null +++ b/Assets/GameMain/UI/UIForms/ShopForm.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f8c0de143b8b3b341af2a9c1c1f77b99 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/UI/UIItems/GoodsItem.prefab b/Assets/GameMain/UI/UIItems/GoodsItem.prefab new file mode 100644 index 0000000..ce2f433 --- /dev/null +++ b/Assets/GameMain/UI/UIItems/GoodsItem.prefab @@ -0,0 +1,994 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &245224001821693249 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3529943345771897466} + - component: {fileID: 8867138990649336979} + - component: {fileID: 6342835652204134691} + - component: {fileID: 8536194946006111666} + m_Layer: 5 + m_Name: GoodsItem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3529943345771897466 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 245224001821693249} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 669693094614527628} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 322.5, y: -506.625} + m_SizeDelta: {x: 645, y: 1013.25} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8867138990649336979 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 245224001821693249} + m_CullTransparentMesh: 1 +--- !u!114 &6342835652204134691 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 245224001821693249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.3, g: 0.3, b: 0.3, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9f847ec5e66e03e4ead1d3c5f7b510e8, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &8536194946006111666 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 245224001821693249} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f1bbd7ef0a6648a45b413b62d3fcea48, type: 3} + m_Name: + m_EditorClassIdentifier: + _iconArea: {fileID: 7793357346561342296} + _titleText: {fileID: 8198028867451079023} + _typeText: {fileID: 1859538258681759610} + _descriptionText: {fileID: 362507204555380267} + _tagsParent: {fileID: 2824363281443248115} + _purchaseButtonText: {fileID: 3342147861170219536} + _tagItemPrefab: {fileID: 2724990199440728093, guid: b8cf55567ed692c439cc016211a19ded, + type: 3} + _index: 0 +--- !u!1 &1392000379444676195 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4208371627915977171} + - component: {fileID: 4939688013048200127} + - component: {fileID: 362507204555380267} + m_Layer: 5 + m_Name: Info + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4208371627915977171 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392000379444676195} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 669693094614527628} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 2.5, y: -230} + m_SizeDelta: {x: 560, y: 500} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &4939688013048200127 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392000379444676195} + m_CullTransparentMesh: 1 +--- !u!114 &362507204555380267 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1392000379444676195} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u653B\u51FB\u4F24\u5BB3\uFF1A20" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 99d811b0183246646a2ce8df996f4bca, type: 2} + m_sharedMaterial: {fileID: -1106088975554028259, guid: 99d811b0183246646a2ce8df996f4bca, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294638330 + m_fontColor: {r: 0.98039216, g: 0.98039216, b: 0.98039216, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 40 + m_fontSizeBase: 40 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 15 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &5258765667942675750 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 669693094614527628} + - component: {fileID: 6520925650316096056} + - component: {fileID: 3574677206289491659} + - component: {fileID: 7357686304436301183} + m_Layer: 5 + m_Name: content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &669693094614527628 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5258765667942675750} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2732971145639930164} + - {fileID: 2007177356427953005} + - {fileID: 6823666478257055882} + - {fileID: 4208371627915977171} + - {fileID: 2824363281443248115} + - {fileID: 761798453953883578} + m_Father: {fileID: 3529943345771897466} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.000091552734} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6520925650316096056 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5258765667942675750} + m_CullTransparentMesh: 1 +--- !u!114 &3574677206289491659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5258765667942675750} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.078431375, g: 0.078431375, b: 0.078431375, a: 0.9019608} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 9f847ec5e66e03e4ead1d3c5f7b510e8, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!225 &7357686304436301183 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5258765667942675750} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 0 + m_BlocksRaycasts: 0 + m_IgnoreParentGroups: 0 +--- !u!1 &6254501099252671570 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2007177356427953005} + - component: {fileID: 7385157927473655528} + - component: {fileID: 8198028867451079023} + m_Layer: 5 + m_Name: Title + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2007177356427953005 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6254501099252671570} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 669693094614527628} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 225, y: -45} + m_SizeDelta: {x: 380, y: 80} + m_Pivot: {x: 0, y: 1} +--- !u!222 &7385157927473655528 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6254501099252671570} + m_CullTransparentMesh: 1 +--- !u!114 &8198028867451079023 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6254501099252671570} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u624B\u67AA" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 99d811b0183246646a2ce8df996f4bca, type: 2} + m_sharedMaterial: {fileID: -1106088975554028259, guid: 99d811b0183246646a2ce8df996f4bca, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294638330 + m_fontColor: {r: 0.98039216, g: 0.98039216, b: 0.98039216, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 60 + m_fontSizeBase: 60 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7658432108122921560 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2824363281443248115} + - component: {fileID: 1210461849002814200} + m_Layer: 5 + m_Name: TagArea + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2824363281443248115 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7658432108122921560} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 669693094614527628} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 2.5, y: 180} + m_SizeDelta: {x: 560, y: 50} + m_Pivot: {x: 0.5, y: 0} +--- !u!114 &1210461849002814200 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7658432108122921560} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 10 + m_ChildForceExpandWidth: 0 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &7669677334996259886 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6823666478257055882} + - component: {fileID: 6704896390909267029} + - component: {fileID: 1859538258681759610} + m_Layer: 5 + m_Name: Type + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6823666478257055882 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7669677334996259886} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 669693094614527628} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 225, y: -135} + m_SizeDelta: {x: 380, y: 60} + m_Pivot: {x: 0, y: 1} +--- !u!222 &6704896390909267029 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7669677334996259886} + m_CullTransparentMesh: 1 +--- !u!114 &1859538258681759610 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7669677334996259886} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u57FA\u5EA7" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 99d811b0183246646a2ce8df996f4bca, type: 2} + m_sharedMaterial: {fileID: -1106088975554028259, guid: 99d811b0183246646a2ce8df996f4bca, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4289001471 + m_fontColor: {r: 1, g: 0.9684256, b: 0.64465404, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 50 + m_fontSizeBase: 50 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1001 &3802995170578049869 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 669693094614527628} + m_Modifications: + - target: {fileID: 770565994539545022, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Name + value: PurchaseButton + objectReference: {fileID: 0} + - target: {fileID: 1341699087252484061, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 9f847ec5e66e03e4ead1d3c5f7b510e8, + type: 3} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_text + value: "\u8D2D\u4E70\uFF0820 G\uFF09" + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontStyle + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor.b + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor.g + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor.r + value: 0.1 + objectReference: {fileID: 0} + - target: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_fontColor32.rgba + value: 4279900698 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 8536194946006111666} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: OnPurchaseButtonClick + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: GeometryTD.UI.GoodsItem, Assembly-CSharp + objectReference: {fileID: 0} + - target: {fileID: 4067353614215461310, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: _onClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.x + value: 560 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_SizeDelta.y + value: 80 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 2.5 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -436.63 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2307f223279813546a43b221ddd496cc, type: 3} +--- !u!224 &761798453953883578 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 4491355866364659447, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 3802995170578049869} + m_PrefabAsset: {fileID: 0} +--- !u!114 &3342147861170219536 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1920576543566152029, guid: 2307f223279813546a43b221ddd496cc, + type: 3} + m_PrefabInstance: {fileID: 3802995170578049869} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!1001 &5176740072715540282 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 669693094614527628} + m_Modifications: + - target: {fileID: 6166913213017600555, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_Name + value: IconArea + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_SizeDelta.x + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 120 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -120 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: c8cee1d9c43b9b444bd818f31a52c383, type: 3} +--- !u!224 &2732971145639930164 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7077986728513895950, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + m_PrefabInstance: {fileID: 5176740072715540282} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7793357346561342296 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3166286295052151906, guid: c8cee1d9c43b9b444bd818f31a52c383, + type: 3} + m_PrefabInstance: {fileID: 5176740072715540282} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7ed74147813b96e4e95b5418f21999b7, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/GameMain/UI/UIItems/GoodsItem.prefab.meta b/Assets/GameMain/UI/UIItems/GoodsItem.prefab.meta new file mode 100644 index 0000000..18214ad --- /dev/null +++ b/Assets/GameMain/UI/UIItems/GoodsItem.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 27e7c069820f8034e958e539232ac639 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: