タンク購入不可時の表示対応
This commit is contained in:
parent
da06a21ca8
commit
c85a448129
|
|
@ -754,8 +754,6 @@ GameObject:
|
||||||
- component: {fileID: 4519309666120766310}
|
- component: {fileID: 4519309666120766310}
|
||||||
- component: {fileID: 1012908116377367962}
|
- component: {fileID: 1012908116377367962}
|
||||||
- component: {fileID: 3674398196704257451}
|
- component: {fileID: 3674398196704257451}
|
||||||
- component: {fileID: 6306209999279485786}
|
|
||||||
- component: {fileID: 7205822850874278242}
|
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: Button_purchase_off
|
m_Name: Button_purchase_off
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
|
|
@ -820,65 +818,6 @@ MonoBehaviour:
|
||||||
m_FillOrigin: 0
|
m_FillOrigin: 0
|
||||||
m_UseSpriteMesh: 0
|
m_UseSpriteMesh: 0
|
||||||
m_PixelsPerUnitMultiplier: 1
|
m_PixelsPerUnitMultiplier: 1
|
||||||
--- !u!114 &6306209999279485786
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 3466150383814718663}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Navigation:
|
|
||||||
m_Mode: 3
|
|
||||||
m_SelectOnUp: {fileID: 0}
|
|
||||||
m_SelectOnDown: {fileID: 0}
|
|
||||||
m_SelectOnLeft: {fileID: 0}
|
|
||||||
m_SelectOnRight: {fileID: 0}
|
|
||||||
m_Transition: 1
|
|
||||||
m_Colors:
|
|
||||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
||||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
|
||||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
||||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
|
||||||
m_ColorMultiplier: 1
|
|
||||||
m_FadeDuration: 0
|
|
||||||
m_SpriteState:
|
|
||||||
m_HighlightedSprite: {fileID: 0}
|
|
||||||
m_PressedSprite: {fileID: 0}
|
|
||||||
m_SelectedSprite: {fileID: 0}
|
|
||||||
m_DisabledSprite: {fileID: 0}
|
|
||||||
m_AnimationTriggers:
|
|
||||||
m_NormalTrigger: Normal
|
|
||||||
m_HighlightedTrigger: Highlighted
|
|
||||||
m_PressedTrigger: Pressed
|
|
||||||
m_SelectedTrigger: Selected
|
|
||||||
m_DisabledTrigger: Disabled
|
|
||||||
m_Interactable: 1
|
|
||||||
m_TargetGraphic: {fileID: 3674398196704257451}
|
|
||||||
m_OnClick:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
--- !u!114 &7205822850874278242
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 3466150383814718663}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 5e732834936f04d48be0ff3fa358563d, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
onClickPlaySEFilename: se_ButtonTap
|
|
||||||
randomPlaySEFilenames: []
|
|
||||||
randomPlayVoiceFilenames: []
|
|
||||||
vibrationType: 0
|
|
||||||
--- !u!1 &4441046490384227346
|
--- !u!1 &4441046490384227346
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -1649,7 +1588,7 @@ MonoBehaviour:
|
||||||
lockedTankNumber: {fileID: 8175998083386752690}
|
lockedTankNumber: {fileID: 8175998083386752690}
|
||||||
price: {fileID: 8175998083146003101}
|
price: {fileID: 8175998083146003101}
|
||||||
purchaseButton: {fileID: 8175998083657673474}
|
purchaseButton: {fileID: 8175998083657673474}
|
||||||
buttonSubImage: {fileID: 8175998082971778653}
|
purchaseButtonDisabledObject: {fileID: 3466150383814718663}
|
||||||
--- !u!1 &8175998082772346535
|
--- !u!1 &8175998082772346535
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -2468,7 +2407,7 @@ MonoBehaviour:
|
||||||
m_PressedTrigger: Pressed
|
m_PressedTrigger: Pressed
|
||||||
m_SelectedTrigger: Selected
|
m_SelectedTrigger: Selected
|
||||||
m_DisabledTrigger: Disabled
|
m_DisabledTrigger: Disabled
|
||||||
m_Interactable: 1
|
m_Interactable: 0
|
||||||
m_TargetGraphic: {fileID: 8175998083657673473}
|
m_TargetGraphic: {fileID: 8175998083657673473}
|
||||||
m_OnClick:
|
m_OnClick:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,9 @@ public class ProductManagement : MonoBehaviour
|
||||||
consumeType = 2,
|
consumeType = 2,
|
||||||
prefabName = "tank"
|
prefabName = "tank"
|
||||||
};
|
};
|
||||||
|
// 購入可否
|
||||||
|
tankView.SetCanBuy(shopData.price <= CoinManager.Instance.OwnCoin);
|
||||||
|
|
||||||
tankView.PurchaseButtonObservable
|
tankView.PurchaseButtonObservable
|
||||||
.Where(_ => shopData.price <= CoinManager.Instance.OwnCoin)
|
.Where(_ => shopData.price <= CoinManager.Instance.OwnCoin)
|
||||||
.TakeWhile(_ => tankView.State.Value == TankState.Lock || tankView.State.Value == TankState.Unavailable)
|
.TakeWhile(_ => tankView.State.Value == TankState.Lock || tankView.State.Value == TankState.Unavailable)
|
||||||
|
|
@ -121,6 +124,7 @@ public class ProductManagement : MonoBehaviour
|
||||||
if (tankView.TankNumber + 1 <= tankList.Count)
|
if (tankView.TankNumber + 1 <= tankList.Count)
|
||||||
{
|
{
|
||||||
tankList[tankView.TankNumber].SetState(TankState.Lock);
|
tankList[tankView.TankNumber].SetState(TankState.Lock);
|
||||||
|
tankList[tankView.TankNumber].SetCanBuy(PriceList[tankView.TankNumber] <= CoinManager.Instance.OwnCoin);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
ShopItemPurchaseView.ShowDialog((shopData, 0), purchaseAction);
|
ShopItemPurchaseView.ShowDialog((shopData, 0), purchaseAction);
|
||||||
|
|
|
||||||
|
|
@ -26,12 +26,16 @@ public class ProductManagementTankView : MonoBehaviour
|
||||||
[SerializeField] private TankRarityView rarityView;
|
[SerializeField] private TankRarityView rarityView;
|
||||||
[SerializeField] private Button detailButton;
|
[SerializeField] private Button detailButton;
|
||||||
[SerializeField] private GameObject arrow;
|
[SerializeField] private GameObject arrow;
|
||||||
|
|
||||||
// 未購入
|
// 未購入
|
||||||
[SerializeField] private GameObject lockedTankObject;
|
[SerializeField] private GameObject lockedTankObject;
|
||||||
[SerializeField] private Text lockedTankNumber;
|
[SerializeField] private Text lockedTankNumber;
|
||||||
[SerializeField] private Text price;
|
[SerializeField] private Text price;
|
||||||
[SerializeField] private Button purchaseButton;
|
[SerializeField] private Button purchaseButton;
|
||||||
[SerializeField] private Image buttonSubImage;
|
[SerializeField] private GameObject purchaseButtonDisabledObject;
|
||||||
|
private Color redColor;
|
||||||
|
private Color defaultColor;
|
||||||
|
private bool canBuy;
|
||||||
private List<ProductData> productList;
|
private List<ProductData> productList;
|
||||||
private int tankNumberInt;
|
private int tankNumberInt;
|
||||||
private readonly BoolReactiveProperty isEmply = new BoolReactiveProperty();
|
private readonly BoolReactiveProperty isEmply = new BoolReactiveProperty();
|
||||||
|
|
@ -49,6 +53,8 @@ public class ProductManagementTankView : MonoBehaviour
|
||||||
{
|
{
|
||||||
var eventTrigger = gameObject.AddComponent<ObservableEventTrigger>();
|
var eventTrigger = gameObject.AddComponent<ObservableEventTrigger>();
|
||||||
TankClickObservable = eventTrigger.OnPointerClickAsObservable().TakeUntilDestroy(this).AsUnitObservable();
|
TankClickObservable = eventTrigger.OnPointerClickAsObservable().TakeUntilDestroy(this).AsUnitObservable();
|
||||||
|
defaultColor = price.color;
|
||||||
|
ColorUtility.TryParseHtmlString(Const.RedColorString, out redColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
|
|
@ -57,7 +63,7 @@ public class ProductManagementTankView : MonoBehaviour
|
||||||
detailButtonActive.AddTo(this);
|
detailButtonActive.AddTo(this);
|
||||||
state.Subscribe(x =>
|
state.Subscribe(x =>
|
||||||
{
|
{
|
||||||
tankObject.SetActive(x != TankState.Lock && x != TankState.Unavailable);
|
tankObject.SetActive(!(x == TankState.Lock || x == TankState.Unavailable));
|
||||||
lockedTankObject.SetActive(x == TankState.Lock || x == TankState.Unavailable);
|
lockedTankObject.SetActive(x == TankState.Lock || x == TankState.Unavailable);
|
||||||
purchaseButton.gameObject.SetActive(x == TankState.Lock);
|
purchaseButton.gameObject.SetActive(x == TankState.Lock);
|
||||||
selectedIndicateObject.SetActive(x == TankState.Selected);
|
selectedIndicateObject.SetActive(x == TankState.Selected);
|
||||||
|
|
@ -115,6 +121,13 @@ public class ProductManagementTankView : MonoBehaviour
|
||||||
public void SetPurchaseButtonActive(bool active)
|
public void SetPurchaseButtonActive(bool active)
|
||||||
{
|
{
|
||||||
purchaseButton.interactable = active;
|
purchaseButton.interactable = active;
|
||||||
buttonSubImage.color = active ? Color.white : purchaseButton.colors.disabledColor;
|
purchaseButtonDisabledObject.SetActive(state.Value == TankState.Lock && (!active || !canBuy));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetCanBuy(bool active)
|
||||||
|
{
|
||||||
|
canBuy = active;
|
||||||
|
price.color = active ? defaultColor : Color.red;
|
||||||
|
SetPurchaseButtonActive(active);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue