vip宣伝ボタン表示処理をManagerに追加
This commit is contained in:
parent
48dce0fcfc
commit
e6ffd80e7a
|
|
@ -12,17 +12,36 @@ namespace MyGame.Scenes.marketing.Scripts
|
|||
[SerializeField] private GameObject DisableObject;
|
||||
[SerializeField] private Text remainTimeText;
|
||||
public IObservable<Unit> RewardButton => rewardButton.OnClickAsObservable().TakeUntilDestroy(this);
|
||||
private IDisposable timerDisposable;
|
||||
|
||||
public void SetButtonActive(bool active)
|
||||
private void SetButtonActive(bool active)
|
||||
{
|
||||
rewardButton.gameObject.SetActive(active);
|
||||
DisableObject.SetActive(!active);
|
||||
}
|
||||
|
||||
public void SetTime(int seconds)
|
||||
private void SetTime(int seconds)
|
||||
{
|
||||
seconds = Mathf.Max(0, seconds);
|
||||
remainTimeText.text = string.Format(remainTimeFormat, seconds / 60, seconds % 60);
|
||||
}
|
||||
|
||||
public void ResetTimer(int time)
|
||||
{
|
||||
// タイマーの更新処理
|
||||
timerDisposable?.Dispose();
|
||||
SetButtonActive(time <= 0);
|
||||
SetTime(time);
|
||||
timerDisposable = Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f))
|
||||
.Select(x => (int)(time - x))
|
||||
.TakeWhile(x => x > 0)
|
||||
.Subscribe(x =>
|
||||
{
|
||||
SetTime(x);
|
||||
}, () =>
|
||||
{
|
||||
SetButtonActive(true);
|
||||
}).AddTo(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -26,13 +26,15 @@ public class MarketManager : MonoBehaviour
|
|||
private Market market;
|
||||
List<ProductData> productDataList;
|
||||
|
||||
private readonly Subject<Unit> resetRefreshTimer = new Subject<Unit>();
|
||||
private readonly Subject<Unit> customerRewardTimerUpdateSubject = new Subject<Unit>();
|
||||
private readonly Subject<Unit> vipTimerUpdateSubject = new Subject<Unit>();
|
||||
private readonly CompositeDisposable ShopClosedCompositeDisposable = new CompositeDisposable();
|
||||
|
||||
private void Start()
|
||||
{
|
||||
ShopClosedCompositeDisposable.AddTo(this);
|
||||
resetRefreshTimer.AddTo(this);
|
||||
customerRewardTimerUpdateSubject.AddTo(this);
|
||||
vipTimerUpdateSubject.AddTo(this);
|
||||
market = Market.Instance;
|
||||
|
||||
SoundManager.Instance.PlayBGM("bgm_marketing");
|
||||
|
|
@ -69,7 +71,7 @@ public class MarketManager : MonoBehaviour
|
|||
gameData.FinishTutorial();
|
||||
GameDataManager.SaveGameData();
|
||||
walkerMask.gameObject.SetActive(false);
|
||||
resetRefreshTimer.OnNext(Unit.Default);
|
||||
customerRewardTimerUpdateSubject.OnNext(Unit.Default);
|
||||
rewardButtonView.gameObject.SetActive(true);
|
||||
}).AddTo(controller).AddTo(this);
|
||||
});
|
||||
|
|
@ -121,49 +123,54 @@ public class MarketManager : MonoBehaviour
|
|||
gameData.increaseCustomerTime = DateTime.UtcNow.AddSeconds(10).ToBinary();
|
||||
#endif
|
||||
GameDataManager.SaveGameData();
|
||||
resetRefreshTimer.OnNext(Unit.Default);
|
||||
customerRewardTimerUpdateSubject.OnNext(Unit.Default);
|
||||
});
|
||||
}).AddTo(this);
|
||||
|
||||
vipCustomerButtonView.ShowButton();
|
||||
|
||||
// VIP宣伝ボタン
|
||||
vipCustomerButtonView.VipButton.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ =>
|
||||
{
|
||||
GetRewardDialog.ShowVipCustomerDialog(() =>
|
||||
{
|
||||
|
||||
market.VipAction();
|
||||
}, () =>
|
||||
{
|
||||
// 現在時刻に設定して期限切れにする
|
||||
gameData.vipCustomerLimitTime = DateTime.UtcNow.ToBinary();
|
||||
vipTimerUpdateSubject.OnNext(Unit.Default);
|
||||
});
|
||||
}).AddTo(this);
|
||||
|
||||
|
||||
// onNextをトリガーに実行
|
||||
IDisposable timerDisposable = null;
|
||||
resetRefreshTimer
|
||||
customerRewardTimerUpdateSubject
|
||||
.Select(_ => (int) DateTime.FromBinary(gameData.increaseCustomerTime).Subtract(DateTime.UtcNow).TotalSeconds)
|
||||
.Subscribe(time =>
|
||||
{
|
||||
// タイマーの更新処理
|
||||
timerDisposable?.Dispose();
|
||||
rewardButtonView.SetButtonActive(time <= 0);
|
||||
rewardButtonView.SetTime(time);
|
||||
timerDisposable = Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f))
|
||||
.Select(x => (int)(time - x))
|
||||
.TakeWhile(x => x > 0)
|
||||
.Subscribe(x =>
|
||||
{
|
||||
rewardButtonView.SetTime(x);
|
||||
}, () =>
|
||||
{
|
||||
rewardButtonView.SetButtonActive(true);
|
||||
}).AddTo(this);
|
||||
rewardButtonView.ResetTimer(time);
|
||||
}).AddTo(this);
|
||||
|
||||
resetRefreshTimer.OnNext(Unit.Default);
|
||||
if (DateTime.FromBinary(gameData.vipCustomerLimitTime) >= DateTime.UtcNow)
|
||||
{
|
||||
vipCustomerButtonView.ShowButton(gameData.vipCustomerFirstOpen);
|
||||
gameData.vipCustomerFirstOpen = false;
|
||||
vipTimerUpdateSubject
|
||||
.Select(_ => (int) DateTime.FromBinary(gameData.vipCustomerLimitTime).Subtract(DateTime.UtcNow).TotalSeconds)
|
||||
.Subscribe(time =>
|
||||
{
|
||||
vipCustomerButtonView.ResetTimer(time);
|
||||
}).AddTo(this);
|
||||
}
|
||||
|
||||
customerRewardTimerUpdateSubject.OnNext(Unit.Default);
|
||||
vipTimerUpdateSubject.OnNext(Unit.Default);
|
||||
|
||||
// アプリ復帰時に残り時間更新
|
||||
Observable.EveryApplicationPause()
|
||||
.Where(pause => !pause)
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
resetRefreshTimer.OnNext(Unit.Default);
|
||||
customerRewardTimerUpdateSubject.OnNext(Unit.Default);
|
||||
vipTimerUpdateSubject.OnNext(Unit.Default);
|
||||
}).AddTo(this);
|
||||
|
||||
market.IsPromotion.Subscribe(active =>
|
||||
|
|
|
|||
|
|
@ -702,6 +702,36 @@ SpriteRenderer:
|
|||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!1 &172087639
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 172087640}
|
||||
m_Layer: 0
|
||||
m_Name: StayPos
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &172087640
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 172087639}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -3.71, y: -2.1827226, z: 0}
|
||||
m_LocalScale: {x: 0.9, y: 0.9, z: 0.9}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2017358937}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &183110189
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -2908,6 +2938,8 @@ MonoBehaviour:
|
|||
walkerInterval: 10
|
||||
adWalkerDuration: 60
|
||||
adWalkerCount: 20
|
||||
vipCustomerCount: 6
|
||||
vipCustomerInterval: 5
|
||||
tastingCustomerInterval: 5
|
||||
--- !u!114 &658817262
|
||||
MonoBehaviour:
|
||||
|
|
@ -2994,7 +3026,7 @@ Transform:
|
|||
m_Children:
|
||||
- {fileID: 1717315656}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 7
|
||||
m_RootOrder: 8
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &668553842
|
||||
GameObject:
|
||||
|
|
@ -3717,8 +3749,33 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: m_Sprite
|
||||
value:
|
||||
objectReference: {fileID: 21300000, guid: e644184ee7cac4454a2ebc1fc479ecb4,
|
||||
objectReference: {fileID: 21300000, guid: 88b678672e5bca548bedbae7386e4346,
|
||||
type: 3}
|
||||
- target: {fileID: 512143980313251866, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
propertyPath: vipMoveSpeed
|
||||
value: 1.5
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 512143980313251866, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
propertyPath: customerDirection
|
||||
value:
|
||||
objectReference: {fileID: 985747657}
|
||||
- target: {fileID: 512143980313251866, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
propertyPath: vipCustomerAnimator
|
||||
value:
|
||||
objectReference: {fileID: 985747656}
|
||||
- target: {fileID: 512143980313251866, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
propertyPath: vipStayPosTransform
|
||||
value:
|
||||
objectReference: {fileID: 172087640}
|
||||
- target: {fileID: 512143980313251866, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
propertyPath: vipSpeechBubbleObject
|
||||
value:
|
||||
objectReference: {fileID: 985747654}
|
||||
- target: {fileID: 1174152333972670060, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
propertyPath: m_fontColor.a
|
||||
|
|
@ -3817,12 +3874,12 @@ PrefabInstance:
|
|||
- target: {fileID: 1408184404978035950, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 8
|
||||
value: 7
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1909038109161790577, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 7
|
||||
value: 8
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1913713732571476837, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
|
|
@ -3853,13 +3910,13 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: m_Sprite
|
||||
value:
|
||||
objectReference: {fileID: 21300000, guid: 3e8106fd24f7946e2a20ebd081ebb0b9,
|
||||
objectReference: {fileID: 21300000, guid: 401e6b14583a46443be3b7124b78ac09,
|
||||
type: 3}
|
||||
- target: {fileID: 3664916832434116137, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
propertyPath: m_Sprite
|
||||
value:
|
||||
objectReference: {fileID: 21300000, guid: dab0cd6adf1694bd6b96c224ad8c38e6,
|
||||
objectReference: {fileID: 21300000, guid: e8fb21ace44c3e748959b969f895dd23,
|
||||
type: 3}
|
||||
- target: {fileID: 3664916832512110618, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
|
|
@ -4010,7 +4067,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: m_Sprite
|
||||
value:
|
||||
objectReference: {fileID: 21300000, guid: 0469694e83769479fa737c3a3b9f6b06,
|
||||
objectReference: {fileID: 21300000, guid: 0a13c07b1bd21434d801188fb9b7546d,
|
||||
type: 3}
|
||||
- target: {fileID: 3664916832825273575, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
|
|
@ -4051,7 +4108,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: m_Sprite
|
||||
value:
|
||||
objectReference: {fileID: 21300000, guid: afb06cd566c9b4c0eba30dd082477478,
|
||||
objectReference: {fileID: 21300000, guid: 7597f863b51829447a8afd00534fe6e4,
|
||||
type: 3}
|
||||
- target: {fileID: 3664916834267713207, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
|
|
@ -4117,7 +4174,7 @@ PrefabInstance:
|
|||
type: 3}
|
||||
propertyPath: m_Sprite
|
||||
value:
|
||||
objectReference: {fileID: 21300000, guid: b128a700ffcf24ec29e2a2ce7af50858,
|
||||
objectReference: {fileID: 21300000, guid: 3be9a3bcc8d7c864a97b5be41e33418f,
|
||||
type: 3}
|
||||
- target: {fileID: 8591874021033984247, guid: caaa748dbeed576499e8cae74d33f689,
|
||||
type: 3}
|
||||
|
|
@ -4878,7 +4935,7 @@ Transform:
|
|||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 5
|
||||
m_RootOrder: 6
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &876376901
|
||||
GameObject:
|
||||
|
|
@ -5403,6 +5460,110 @@ SortingGroup:
|
|||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 3
|
||||
--- !u!1001 &985747653
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
m_TransformParent: {fileID: 2017358937}
|
||||
m_Modifications:
|
||||
- target: {fileID: 5353524989891006842, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_Enabled
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: -10.0789995
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: -2.1827226
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: -35.82837
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8476357288433061819, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
propertyPath: m_Name
|
||||
value: customer_Luxury_Gray
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: cd3da4efffd34614794276964fca59c7, type: 3}
|
||||
--- !u!1 &985747654 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 6877570175858391367, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 985747653}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &985747655 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 8476357288433061812, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 985747653}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!95 &985747656 stripped
|
||||
Animator:
|
||||
m_CorrespondingSourceObject: {fileID: 8476357288433061813, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 985747653}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &985747657 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 9067878707261228985, guid: cd3da4efffd34614794276964fca59c7,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 985747653}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0eb44b30c9454383898faae0c3666b94, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &990563154
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -5727,7 +5888,7 @@ Transform:
|
|||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 6
|
||||
m_RootOrder: 7
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1025201118
|
||||
MonoBehaviour:
|
||||
|
|
@ -19798,6 +19959,38 @@ Transform:
|
|||
type: 3}
|
||||
m_PrefabInstance: {fileID: 2011193247}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &2017358936
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2017358937}
|
||||
m_Layer: 0
|
||||
m_Name: VipReward
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2017358937
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2017358936}
|
||||
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: 172087640}
|
||||
- {fileID: 985747655}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 5
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &2031857953
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -25109,7 +25302,7 @@ PrefabInstance:
|
|||
- target: {fileID: 3667080857874733261, guid: b875e6e94a97840ca8490ce0718fca6e,
|
||||
type: 3}
|
||||
propertyPath: m_RootOrder
|
||||
value: 8
|
||||
value: 9
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3667080857874733261, guid: b875e6e94a97840ca8490ce0718fca6e,
|
||||
type: 3}
|
||||
|
|
|
|||
Loading…
Reference in New Issue