Merge branch 'develop' of bitbucket.org:usaya/popcorn into develop
This commit is contained in:
commit
219913a3f6
|
|
@ -1,5 +1,154 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2895484395707725730
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1272573749203266507}
|
||||
- component: {fileID: 4707019036817275407}
|
||||
- component: {fileID: 5887917383623105892}
|
||||
m_Layer: 5
|
||||
m_Name: Image_text
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1272573749203266507
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2895484395707725730}
|
||||
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_Children: []
|
||||
m_Father: {fileID: 7070062469376303877}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 2.9, y: 4}
|
||||
m_SizeDelta: {x: 66, y: 40}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &4707019036817275407
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2895484395707725730}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!114 &5887917383623105892
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2895484395707725730}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 1ed7a6eade5a3af4c962706dec098104, type: 3}
|
||||
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 &7845949066005219734
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7070062469376303877}
|
||||
- component: {fileID: 1561612110923996906}
|
||||
- component: {fileID: 7043889385648676325}
|
||||
m_Layer: 5
|
||||
m_Name: Button_Purchase_Off
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 0
|
||||
--- !u!224 &7070062469376303877
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7845949066005219734}
|
||||
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_Children:
|
||||
- {fileID: 1272573749203266507}
|
||||
m_Father: {fileID: 9133304336500199661}
|
||||
m_RootOrder: 2
|
||||
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: 140, y: 125.10004}
|
||||
m_SizeDelta: {x: 240, y: 98}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1561612110923996906
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7845949066005219734}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!114 &7043889385648676325
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7845949066005219734}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 8539f0168ede4654dbdbe738754bdb2f, 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!1 &9133304335139982201
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -134,7 +283,8 @@ MonoBehaviour:
|
|||
subCountButton: {fileID: 5919954079663981596}
|
||||
addCountButton: {fileID: 5919954079471528431}
|
||||
closeButton: {fileID: 9133304335940276437}
|
||||
purchaseButton: {fileID: 9133304335268316946}
|
||||
purchaseOnButton: {fileID: 9133304335268316946}
|
||||
purchaseOffButton: {fileID: 7845949066005219734}
|
||||
--- !u!1 &9133304335268316944
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -148,7 +298,7 @@ GameObject:
|
|||
- component: {fileID: 9133304335268316949}
|
||||
- component: {fileID: 9133304335268316946}
|
||||
m_Layer: 5
|
||||
m_Name: Button_Purchase
|
||||
m_Name: Button_Purchase_On
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
|
|
@ -569,7 +719,7 @@ RectTransform:
|
|||
- {fileID: 9133304336181127573}
|
||||
- {fileID: 9133304337054428178}
|
||||
m_Father: {fileID: 9133304336500199661}
|
||||
m_RootOrder: 4
|
||||
m_RootOrder: 5
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
|
|
@ -1597,6 +1747,7 @@ RectTransform:
|
|||
m_Children:
|
||||
- {fileID: 9133304335940276434}
|
||||
- {fileID: 9133304335268316947}
|
||||
- {fileID: 7070062469376303877}
|
||||
- {fileID: 9133304337032816943}
|
||||
- {fileID: 9133304336675516546}
|
||||
- {fileID: 9133304335380453066}
|
||||
|
|
@ -1899,7 +2050,7 @@ RectTransform:
|
|||
- {fileID: 9133304335893567655}
|
||||
- {fileID: 9133304335334808081}
|
||||
m_Father: {fileID: 9133304336500199661}
|
||||
m_RootOrder: 3
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 1}
|
||||
m_AnchorMax: {x: 0.5, y: 1}
|
||||
|
|
@ -2166,7 +2317,7 @@ RectTransform:
|
|||
- {fileID: 9133304336883555446}
|
||||
- {fileID: 9133304336944246770}
|
||||
m_Father: {fileID: 9133304336500199661}
|
||||
m_RootOrder: 2
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 1}
|
||||
m_AnchorMax: {x: 0.5, y: 1}
|
||||
|
|
|
|||
|
|
@ -21,16 +21,17 @@ public class ShopItemPurchaseView : MonoBehaviour
|
|||
[SerializeField] private Button subCountButton;
|
||||
[SerializeField] private Button addCountButton;
|
||||
[SerializeField] private Button closeButton;
|
||||
[SerializeField] private Button purchaseButton;
|
||||
|
||||
public IObservable<Unit> PurchaseButtonObservable => purchaseButton.OnClickAsObservable().TakeUntilDestroy(this);
|
||||
[SerializeField] private Button purchaseOnButton;
|
||||
[SerializeField] private GameObject purchaseOffButton;
|
||||
|
||||
private Color defaultColor;
|
||||
private readonly IntReactiveProperty currentCount = new IntReactiveProperty();
|
||||
private void Start()
|
||||
{
|
||||
currentCount.AddTo(this);
|
||||
|
||||
var data = LocalCacheManager.Load<(ShopData shopData, int stockCount)>(ItemPurchaseTag);
|
||||
defaultColor = totalPrice.color;
|
||||
var data = LocalCacheManager.Load<(ShopData shopData, int stockCount, Action<int> callback)>(ItemPurchaseTag);
|
||||
LocalCacheManager.Remove(ItemPurchaseTag);
|
||||
SetData(data.shopData, data.stockCount);
|
||||
closeButton.OnClickAsObservable().Subscribe(_ =>
|
||||
{
|
||||
|
|
@ -41,8 +42,9 @@ public class ShopItemPurchaseView : MonoBehaviour
|
|||
TransitionManager.Instance.UnloadScene(GameScenes.Purchase);
|
||||
});
|
||||
}).AddTo(this);
|
||||
purchaseButton.OnClickAsObservable().Subscribe(_ =>
|
||||
purchaseOnButton.OnClickAsObservable().Subscribe(_ =>
|
||||
{
|
||||
data.callback.Invoke(currentCount.Value);
|
||||
transform.SetLocalScale(0);
|
||||
backgroundAnimator.SetTrigger(CloseTrigger);
|
||||
this.CallWaitForSeconds(.25f, () =>
|
||||
|
|
@ -54,16 +56,25 @@ public class ShopItemPurchaseView : MonoBehaviour
|
|||
currentCount.Value = MinPurchaseCount;
|
||||
currentCount.Subscribe(x =>
|
||||
{
|
||||
var total = data.shopData.price * x;
|
||||
SetButtonActive(total <= CoinManager.Instance.OwnCoin);
|
||||
totalPrice.color = total <= CoinManager.Instance.OwnCoin ? defaultColor : Color.red;
|
||||
totalPrice.text = $"{total}";
|
||||
purchaseCount.text = $"{x}";
|
||||
totalPrice.text = $"{data.shopData.price * x}";
|
||||
}).AddTo(this);
|
||||
addCountButton.OnClickAsObservable().Select(_ => 1)
|
||||
.Merge(subCountButton.OnClickAsObservable().Select(_ => -1))
|
||||
.Subscribe(x =>
|
||||
{
|
||||
currentCount.Value = Mathf.Clamp(currentCount.Value + x, MinPurchaseCount, MaxPurchaseCount);
|
||||
|
||||
}).AddTo(this);
|
||||
if (data.shopData.ConsumeType == ShopItemType.Consumable)
|
||||
{
|
||||
addCountButton.OnClickAsObservable().Select(_ => 1)
|
||||
.Merge(subCountButton.OnClickAsObservable().Select(_ => -1))
|
||||
.Subscribe(x =>
|
||||
{
|
||||
currentCount.Value = Mathf.Clamp(currentCount.Value + x, MinPurchaseCount, MaxPurchaseCount);
|
||||
}).AddTo(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
currentCount.Value = 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void SetData(ShopData shopData, int count)
|
||||
|
|
@ -72,4 +83,10 @@ public class ShopItemPurchaseView : MonoBehaviour
|
|||
price.text = $"{shopData.price}";
|
||||
stockCount.text = $"所持数 :{count}";
|
||||
}
|
||||
|
||||
private void SetButtonActive(bool active)
|
||||
{
|
||||
purchaseOnButton.gameObject.SetActive(active);
|
||||
purchaseOffButton.SetActive(!active);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,19 +27,26 @@ public class Shopping : MonoBehaviour
|
|||
{
|
||||
itemView.SetItemActive(shopData.price <= ownCoin);
|
||||
}).AddTo(this);
|
||||
var purchaseSubject = new Subject<int>();
|
||||
purchaseSubject.AddTo(itemView);
|
||||
purchaseSubject.Subscribe(amount =>
|
||||
{
|
||||
// アイテムを増やす
|
||||
AddItem(shopData, amount);
|
||||
itemView.SetStockCount(GetItemAmount(shopData));
|
||||
CoinManager.Instance.SubCoin(shopData.price * amount);
|
||||
gameData.coin = CoinManager.Instance.OwnCoin;
|
||||
changeCoinSubject.OnNext(gameData.coin);
|
||||
GameDataManager.SaveGameData();
|
||||
}).AddTo(itemView);
|
||||
// アイテム購入クリック購読
|
||||
itemView.PurchaseButtonObservable
|
||||
.Where(_ => shopData.price <= CoinManager.Instance.OwnCoin)
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
// アイテムを増やす
|
||||
AddItem(shopData);
|
||||
itemView.SetStockCount(GetItemAmount(shopData));
|
||||
CoinManager.Instance.SubCoin(shopData.price);
|
||||
gameData.coin = CoinManager.Instance.OwnCoin;
|
||||
changeCoinSubject.OnNext(gameData.coin);
|
||||
GameDataManager.SaveGameData();
|
||||
}).AddTo(itemView);
|
||||
LocalCacheManager.Save(ShopItemPurchaseView.ItemPurchaseTag, (shopData, GetItemAmount(shopData), new Action<int>(x => purchaseSubject.OnNext(x))));
|
||||
TransitionManager.Instance.LoadSceneAdditive(GameScenes.Purchase);
|
||||
}).AddTo(itemView);
|
||||
}
|
||||
changeCoinSubject.OnNext(CoinManager.Instance.OwnCoin);
|
||||
}
|
||||
|
|
@ -60,7 +67,7 @@ public class Shopping : MonoBehaviour
|
|||
}
|
||||
}
|
||||
|
||||
private void AddItem(ShopData shopData)
|
||||
private void AddItem(ShopData shopData, int amount)
|
||||
{
|
||||
var gameData = GameDataManager.GameData;
|
||||
switch (shopData.Category)
|
||||
|
|
@ -69,16 +76,14 @@ public class Shopping : MonoBehaviour
|
|||
var index = gameData.Material.FindIndex(x => x.Id == shopData.itemId);
|
||||
if (index == -1)
|
||||
{
|
||||
index = gameData.Material.Count;
|
||||
gameData.Material.Add(new MaterialData
|
||||
{
|
||||
Id = shopData.itemId,
|
||||
Amount = 1
|
||||
Amount = 0
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
gameData.Material[index].Amount++;
|
||||
}
|
||||
gameData.Material[index].Amount += amount;
|
||||
break;
|
||||
case ItemCategory.Recipe:
|
||||
if (!gameData.MyRecipes.Contains(shopData.itemId))
|
||||
|
|
|
|||
Loading…
Reference in New Issue