Merge branch 'develop' of bitbucket.org:usaya/popcorn into develop
This commit is contained in:
		
						commit
						e551edae50
					
				|  | @ -111,7 +111,7 @@ RectTransform: | |||
|   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_SizeDelta: {x: 0, y: 600} | ||||
|   m_Pivot: {x: 0.5, y: 0.5} | ||||
| --- !u!222 &4293843006989820483 | ||||
| CanvasRenderer: | ||||
|  |  | |||
|  | @ -14768,7 +14768,7 @@ PrefabInstance: | |||
|     - target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28, | ||||
|         type: 3} | ||||
|       propertyPath: m_SizeDelta.y | ||||
|       value: 0 | ||||
|       value: 600 | ||||
|       objectReference: {fileID: 0} | ||||
|     - target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28, | ||||
|         type: 3} | ||||
|  | @ -14848,7 +14848,7 @@ PrefabInstance: | |||
|     - target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28, | ||||
|         type: 3} | ||||
|       propertyPath: m_SizeDelta.y | ||||
|       value: 806.6114 | ||||
|       value: 826.3005 | ||||
|       objectReference: {fileID: 0} | ||||
|     - target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28, | ||||
|         type: 3} | ||||
|  | @ -14858,12 +14858,12 @@ PrefabInstance: | |||
|     - target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28, | ||||
|         type: 3} | ||||
|       propertyPath: m_AnchoredPosition.y | ||||
|       value: 173.4 | ||||
|       value: 183.2 | ||||
|       objectReference: {fileID: 0} | ||||
|     - target: {fileID: 7550014134400670843, guid: 1c993e9707f1a4fada56020be27dde28, | ||||
|         type: 3} | ||||
|       propertyPath: m_AnchoredPosition.y | ||||
|       value: -565 | ||||
|       value: 65 | ||||
|       objectReference: {fileID: 0} | ||||
|     m_RemovedComponents: [] | ||||
|   m_SourcePrefab: {fileID: 100100000, guid: 1c993e9707f1a4fada56020be27dde28, type: 3} | ||||
|  |  | |||
|  | @ -948,7 +948,7 @@ MonoBehaviour: | |||
|     m_SelectOnDown: {fileID: 0} | ||||
|     m_SelectOnLeft: {fileID: 0} | ||||
|     m_SelectOnRight: {fileID: 0} | ||||
|   m_Transition: 1 | ||||
|   m_Transition: 0 | ||||
|   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} | ||||
|  | @ -1750,7 +1750,7 @@ MonoBehaviour: | |||
|     m_SelectOnDown: {fileID: 0} | ||||
|     m_SelectOnLeft: {fileID: 0} | ||||
|     m_SelectOnRight: {fileID: 0} | ||||
|   m_Transition: 1 | ||||
|   m_Transition: 0 | ||||
|   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} | ||||
|  |  | |||
|  | @ -98,7 +98,7 @@ public class CornField : MonoBehaviour | |||
| 
 | ||||
|         SetCornField(); | ||||
| 
 | ||||
|         upgradeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         upgradeButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => | ||||
|         { | ||||
|             LocalCacheManager.Save(CornFieldReinforcement.CornFieldResetCallbackTag, new Action(() => SetCornField())); | ||||
|             TransitionManager.Instance.LoadSceneAdditive(GameScenes.Reinforcement); | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ public class CornFieldReinforcement : MonoBehaviour | |||
|     private void Start() | ||||
|     { | ||||
|         compositeDisposable.AddTo(this); | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             LocalCacheManager.Remove(CornFieldReinforcementDataTypeTag); | ||||
|             LocalCacheManager.Remove(CornFieldReinforcementDataTag); | ||||
|  | @ -53,7 +53,7 @@ public class CornFieldReinforcement : MonoBehaviour | |||
|                     view.SetButtonActive(price <= CoinManager.Instance.OwnCoin); | ||||
|                     view.SetReinforcement(lineData, price); | ||||
|                     // 購入ボタン | ||||
|                     view.ButtonClickObserve.Subscribe(_ => | ||||
|                     view.ButtonClickObserve.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => | ||||
|                     { | ||||
|                         LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, upgradeType); | ||||
|                         LocalCacheManager.Save(CornFieldReinforcementDataTag, (lineData, price, new Action(() => { | ||||
|  | @ -71,7 +71,7 @@ public class CornFieldReinforcement : MonoBehaviour | |||
|                 view.SetButtonActive(price <= CoinManager.Instance.OwnCoin); | ||||
|                 view.SetRelease(price); | ||||
|                 // 購入ボタン | ||||
|                 view.ButtonClickObserve.Subscribe(_ => | ||||
|                 view.ButtonClickObserve.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => | ||||
|                 { | ||||
|                     LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, upgradeType); | ||||
|                     LocalCacheManager.Save(CornFieldReinforcementDataTag, (lineData = null, price, new Action(() => { | ||||
|  | @ -97,7 +97,7 @@ public class CornFieldReinforcement : MonoBehaviour | |||
|             machineUpgradeView.SetButtonActive(price <= CoinManager.Instance.OwnCoin); | ||||
|             machineUpgradeView.SetData(gameData.MachineLevel, price); | ||||
|             // 購入ボタン | ||||
|             machineUpgradeView.ButtonClickObserve.Subscribe(_ => | ||||
|             machineUpgradeView.ButtonClickObserve.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => | ||||
|             { | ||||
|                 LocalCacheManager.Save(CornFieldReinforcementDataTypeTag, CornFieldUpgradeType.Machine); | ||||
|                 LocalCacheManager.Save(CornFieldReinforcementDataTag, (gameData.MachineLevel, price, new Action(() => { | ||||
|  |  | |||
|  | @ -55,7 +55,7 @@ public class CornFieldReinforcementDetailView : MonoBehaviour | |||
|             default: | ||||
|                 throw new ArgumentOutOfRangeException(); | ||||
|         } | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             transform.SetLocalScale(0); | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  | @ -66,8 +66,11 @@ public class CornFieldReinforcementDetailView : MonoBehaviour | |||
|         }).AddTo(this); | ||||
|         purchaseButton.OnClickAsObservable() | ||||
|             .Merge(releaseButton.OnClickAsObservable()) | ||||
|             .Subscribe(_ => | ||||
|             .Take(1) | ||||
|             .Subscribe(_ => { }, () => | ||||
|             { | ||||
|                 purchaseButton.interactable = false; | ||||
|                 releaseButton.interactable = false; | ||||
|                 // 購入処理 | ||||
|                 callback?.Invoke(); | ||||
|                 transform.SetLocalScale(0); | ||||
|  |  | |||
|  | @ -10,6 +10,7 @@ GameObject: | |||
|   m_Component: | ||||
|   - component: {fileID: 9117079084301130545} | ||||
|   - component: {fileID: 9117079084301130544} | ||||
|   - component: {fileID: 8528884583953186477} | ||||
|   m_Layer: 5 | ||||
|   m_Name: UICamera | ||||
|   m_TagString: Untagged | ||||
|  | @ -74,3 +75,15 @@ Camera: | |||
|   m_OcclusionCulling: 0 | ||||
|   m_StereoConvergence: 10 | ||||
|   m_StereoSeparation: 0.022 | ||||
| --- !u!114 &8528884583953186477 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 9117079084301130547} | ||||
|   m_Enabled: 1 | ||||
|   m_EditorHideFlags: 0 | ||||
|   m_Script: {fileID: 11500000, guid: c11194ed6fd84a1f812fa2cfae75f873, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|  |  | |||
|  | @ -35,7 +35,7 @@ public class BulkOrder : MonoBehaviour | |||
| 
 | ||||
|     private void Start() | ||||
|     { | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             transform.parent.SetLocalScale(0); | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  |  | |||
|  | @ -32,7 +32,7 @@ public class BulkOrderAchievedView : MonoBehaviour | |||
|             messageText.text = messageList.First(data => data.id == gameData.OrderTextId).thanksText; | ||||
|             orderCharacterImage.sprite = bulkOrderCharacter.GetThanksIcon(gameData.OrderIconIndex); | ||||
|         } | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             if (LocalCacheManager.Load<Action>(BulkOrder.AchievedCallbackTag, null) is Action callback) | ||||
|             { | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ public class BulkOrderCancelView : MonoBehaviour | |||
|             coinText.text = orderData.rewardCoin.ToString(); | ||||
|             heartText.text = orderData.rewardHeart.ToString(); | ||||
|         } | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             transform.parent.SetLocalScale(0); | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  | @ -30,7 +30,7 @@ public class BulkOrderCancelView : MonoBehaviour | |||
|                 TransitionManager.Instance.UnloadScene(GameScenes.BulkOrderCancel); | ||||
|             }); | ||||
|         }).AddTo(this); | ||||
|         cancelButton.OnClickAsObservable().Subscribe(_ => | ||||
|         cancelButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             if (LocalCacheManager.Load<Action>(BulkOrder.CancelCallbackTag, null) is Action callback) | ||||
|             { | ||||
|  |  | |||
|  | @ -64,7 +64,7 @@ public class BulkOrderNotifyView : MonoBehaviour | |||
|                 itemView3.SetActive(false); | ||||
|             } | ||||
|         } | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             transform.parent.SetLocalScale(0); | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  |  | |||
|  | @ -43,7 +43,7 @@ public class Information : MonoBehaviour | |||
| 
 | ||||
|     private void Start() | ||||
|     { | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             transform.SetLocalScale(0); | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  |  | |||
|  | @ -23,7 +23,8 @@ public class KitchenManager : MonoBehaviour | |||
|     void Start() | ||||
|     { | ||||
|          | ||||
|         SoundManager.Instance.PlayBGM("bgm_Main"); | ||||
|         // 実機でアプリ初回起動時にBGMならないの回避。1フレーム遅らせると鳴る | ||||
|         Observable.NextFrame().Subscribe(_ => SoundManager.Instance.PlayBGM("bgm_Main")); | ||||
|         var gameData = GameDataManager.GameData; | ||||
|          | ||||
|         // レシピの表示 | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ public class MissionCompleteView : MonoBehaviour | |||
|     { | ||||
|         var (missionData, callback) = LocalCacheManager.Load< (MissionData, Action)>(MissionManager.MissionDataTag); | ||||
|         LocalCacheManager.Remove(MissionManager.MissionDataTag); | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             callback?.Invoke(); | ||||
|             transform.SetLocalScale(0); | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ public class MissionManager : MonoBehaviour | |||
| 
 | ||||
|     private void Start() | ||||
|     { | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             LocalCacheManager.Remove(MissionDataTag); | ||||
|             transform.SetLocalScale(0); | ||||
|  | @ -76,7 +76,7 @@ public class MissionManager : MonoBehaviour | |||
|             { | ||||
|                 count = gameData.dailyMissionIdArray.Length, | ||||
|                 reward = dailyMissionCompleteRewardCoin, | ||||
|                 text = "デイリーミッションすべて完了で達成", | ||||
|                 text = "デイリーミッションを達成しよう", | ||||
|                 category = (int)MissionCategory.Daily, | ||||
|             }; | ||||
|             var progressValue = gameData.dailyMissionAchievedIdArray.Length; | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ namespace MyGame.Scenes.Settings.Scripts | |||
| 
 | ||||
|         private void Start() | ||||
|         { | ||||
|             closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|             closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|             { | ||||
|                 SoundManager.Instance.SaveVolumeBGM(); | ||||
|                 SoundManager.Instance.SaveVolumeSE(); | ||||
|  |  | |||
|  | @ -99,16 +99,17 @@ public class Market : SingletonMonoBehaviour<Market> | |||
|          | ||||
|         // 購入リクエスト | ||||
|         var maxOrder = orderPosisionObject.transform.childCount; | ||||
|         orderSubject.Do(_ => { Debug.Log($"aa orderSubject");}) | ||||
|             .Merge(waitCustomerList.ObserveAdd().AsUnitObservable().Do(_ => { Debug.Log($"aa waitCustomerListAdd");})) | ||||
|             .Merge(shopState.Where(x => x == ShopState.Open).AsUnitObservable().Do(_ => { Debug.Log($"aa shopStateOpen");})) | ||||
|         Observable.Merge( | ||||
|                 orderSubject /*.Do(_ => { Debug.Log($"aa orderSubject");})*/, | ||||
|                 waitCustomerList.ObserveAdd().AsUnitObservable() /*.Do(_ => { Debug.Log($"aa waitCustomerListAdd");})*/, | ||||
|                 shopState.Where(x => x == ShopState.Open).AsUnitObservable() /*.Do(_ => { Debug.Log($"aa shopStateOpen");})*/ | ||||
|             ) | ||||
|             .BatchFrame() | ||||
|             .Where(_ => waitCustomerList.Count > 0) | ||||
|             .SelectMany(_ => waitCustomerList.ToList().GetRange(0, Mathf.Min(maxOrder, waitCustomerList.Count))) | ||||
|             .Subscribe(customer => | ||||
|             { | ||||
|                 var count = customerList.Count(x => x.State.Value == CustomerState.Order); | ||||
|                 Debug.Log($"aa order:{count} Request {Time.time} {customer.GetHashCode()}"); | ||||
|                 if (count >= maxOrder) | ||||
|                 { | ||||
|                     // shopState.Value = ShopState.Busy; | ||||
|  | @ -171,8 +172,17 @@ public class Market : SingletonMonoBehaviour<Market> | |||
|                 } | ||||
|                 catch (Exception e) | ||||
|                 { | ||||
|                     Debug.LogError($"d:{displayFlavors.Count}, {string.Join("", tmpOrders)}"); | ||||
|                     throw; | ||||
|                     Debug.LogError($"d:{displayFlavors.Count}, {string.Join("", tmpOrders)}" + | ||||
|                                    $"\nshuffled:{shuffledOrder.Count}, maxNum:{shuffledOrder.Max()}"); | ||||
|                     /* | ||||
|                      * 例外握りつぶし | ||||
|                      * 存在しないorderを引いたのでそのまま処理せず逃がす | ||||
|                      */ | ||||
|                     controller.CallWaitForSeconds(1.5f, () => | ||||
|                     { | ||||
|                         controller.ChangeCustomerState(CustomerState.Leave); | ||||
|                     }); | ||||
|                     dontBuyCustomerList.Add(controller); | ||||
|                 } | ||||
|             } | ||||
|             foreach (var customerController in dontBuyCustomerList) | ||||
|  | @ -470,9 +480,26 @@ public class Market : SingletonMonoBehaviour<Market> | |||
|         } | ||||
|         // 補充候補リスト | ||||
|         var orders = Enumerable.Range(0, shopStock.Count).Except(shuffledOrder).ToList(); | ||||
|         var refillList = orders.OrderBy(_ => Random.value).ToList(); | ||||
|         var refillList = orders.GetRange(0, refillCount).OrderBy(_ => Random.value).ToList(); | ||||
|         shuffledOrder.AddRange(refillList); | ||||
|         displayFlavors = shopStock.ToList(); | ||||
|         try | ||||
|         { | ||||
|             if (displayFlavors.Count <= shopStock.Count) | ||||
|             { | ||||
|                 displayFlavors = shopStock.ToList(); | ||||
|             } | ||||
|             else | ||||
|             { | ||||
|                 for (int i = 0; i < refillList.Count; i++) | ||||
|                 { | ||||
|                     displayFlavors[refillList[i]] = shopStock[shopStock.Count - 1 - i]; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         catch (Exception e) | ||||
|         { | ||||
|             throw; | ||||
|         } | ||||
|         return refillList; | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -83,7 +83,23 @@ public class MarketManager : MonoBehaviour | |||
|          | ||||
|         productDataList = SpreadsheetDataManager.Instance.GetBaseDataList<ProductData>(Const.ProductDataSheet); | ||||
|         stockView.SetStock(gameData.StorageTanks); | ||||
|         var startStocks = market.ShuffledOrder.Select(x => (x, market.DisplayFlavors[x])).ToList(); | ||||
|         List<(int, ProductStockData)> startStocks; | ||||
|         try | ||||
|         { | ||||
|             startStocks = market.ShuffledOrder.Select(x => (x, market.DisplayFlavors[x])).ToList(); | ||||
|         } | ||||
|         catch (Exception e) | ||||
|         { | ||||
| #if UNITY_EDITOR | ||||
|             Debug.LogError($"{market.ShuffledOrder.Count}, {market.DisplayFlavors.Count}"); | ||||
| #endif | ||||
|             /* | ||||
|              * 例外握りつぶし | ||||
|              */ | ||||
|             startStocks = market.ShuffledOrder | ||||
|                 .Where(x => x < market.DisplayFlavors.Count) | ||||
|                 .Select(x => (x, market.DisplayFlavors[x])).ToList(); | ||||
|         } | ||||
|         cartView.Initialize(); | ||||
|         cartView.SetStock(startStocks, false); | ||||
|         BrotherPinkView.Instance.SetBrotherView(pinkTarget); | ||||
|  |  | |||
|  | @ -24,7 +24,7 @@ public class ShopLevelUp : MonoBehaviour | |||
|         var shopLevel = LocalCacheManager.Load<int>(DataTag); | ||||
|         var scriptList = SpreadsheetDataManager.Instance.GetBaseDataList<BrotherScriptData>(Const.ScriptDataSheet); | ||||
|         var targetScriptList = scriptList.Where(data => data.id == shopLevel).ToList(); | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             transform.SetLocalScale(0); | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  |  | |||
|  | @ -26,7 +26,7 @@ public class TankDetailView : MonoBehaviour | |||
|     private void Start() | ||||
|     { | ||||
|         var data = LocalCacheManager.Load<(int tankNum, int totalStock, StorageTank tankData, ProductData productData, List<(ProductRarity rarity, int price, int stock)> raritySummaryData)>(TankDetailDataTag); | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             transform.SetLocalScale(0); | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ public class TastingView : MonoBehaviour | |||
|             packageImageTarget.DestroyAllChildrens(); | ||||
|             Instantiate(x.productData.GetIconPrefab(), packageImageTarget); | ||||
|         }).AddTo(this); | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|             this.CallWaitForSeconds(.5f, () => | ||||
|  | @ -34,7 +34,7 @@ public class TastingView : MonoBehaviour | |||
|                 TransitionManager.Instance.UnloadScene(GameScenes.Tasting); | ||||
|             }); | ||||
|         }).AddTo(this); | ||||
|         tastingButton.OnClickAsObservable().Subscribe(_ => | ||||
|         tastingButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => | ||||
|         { | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|             this.CallWaitForSeconds(.5f, () => | ||||
|  |  | |||
|  | @ -1064,6 +1064,7 @@ GameObject: | |||
|   - component: {fileID: 658354829} | ||||
|   - component: {fileID: 658354828} | ||||
|   - component: {fileID: 658354831} | ||||
|   - component: {fileID: 658354832} | ||||
|   m_Layer: 0 | ||||
|   m_Name: Main Camera | ||||
|   m_TagString: MainCamera | ||||
|  | @ -1110,7 +1111,7 @@ Camera: | |||
|   m_Depth: -1 | ||||
|   m_CullingMask: | ||||
|     serializedVersion: 2 | ||||
|     m_Bits: 4294967295 | ||||
|     m_Bits: 23 | ||||
|   m_RenderingPath: -1 | ||||
|   m_TargetTexture: {fileID: 0} | ||||
|   m_TargetDisplay: 0 | ||||
|  | @ -1152,6 +1153,18 @@ MonoBehaviour: | |||
|     serializedVersion: 2 | ||||
|     m_Bits: 4294967295 | ||||
|   m_MaxRayIntersections: 0 | ||||
| --- !u!114 &658354832 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 658354827} | ||||
|   m_Enabled: 1 | ||||
|   m_EditorHideFlags: 0 | ||||
|   m_Script: {fileID: 11500000, guid: c11194ed6fd84a1f812fa2cfae75f873, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
| --- !u!1 &658817260 | ||||
| GameObject: | ||||
|   m_ObjectHideFlags: 0 | ||||
|  | @ -1636,7 +1649,7 @@ PrefabInstance: | |||
|     - target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28, | ||||
|         type: 3} | ||||
|       propertyPath: m_SizeDelta.y | ||||
|       value: 0 | ||||
|       value: 400 | ||||
|       objectReference: {fileID: 0} | ||||
|     - target: {fileID: 4293843006989820480, guid: 1c993e9707f1a4fada56020be27dde28, | ||||
|         type: 3} | ||||
|  | @ -1736,7 +1749,7 @@ PrefabInstance: | |||
|     - target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28, | ||||
|         type: 3} | ||||
|       propertyPath: m_SizeDelta.y | ||||
|       value: -653.7666 | ||||
|       value: -1063.2974 | ||||
|       objectReference: {fileID: 0} | ||||
|     - target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28, | ||||
|         type: 3} | ||||
|  | @ -1746,7 +1759,7 @@ PrefabInstance: | |||
|     - target: {fileID: 4293843007976718249, guid: 1c993e9707f1a4fada56020be27dde28, | ||||
|         type: 3} | ||||
|       propertyPath: m_AnchoredPosition.y | ||||
|       value: 58.699707 | ||||
|       value: 58.69995 | ||||
|       objectReference: {fileID: 0} | ||||
|     m_RemovedComponents: [] | ||||
|   m_SourcePrefab: {fileID: 100100000, guid: 1c993e9707f1a4fada56020be27dde28, type: 3} | ||||
|  |  | |||
|  | @ -65,7 +65,7 @@ public class RecipeDetailView : MonoBehaviour | |||
|             } | ||||
|         } | ||||
|          | ||||
|         cancelButton.OnClickAsObservable().Subscribe(_ => | ||||
|         cancelButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             transform.parent.SetLocalScale(0); | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  | @ -76,7 +76,7 @@ public class RecipeDetailView : MonoBehaviour | |||
|             }); | ||||
|         }).AddTo(this); | ||||
|          | ||||
|         nextButton.OnClickAsObservable().Subscribe(_ => | ||||
|         nextButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             LocalCacheManager.Save(PopcornGameManager.PanDataTag, panSelector.SelectedPanData.Value); | ||||
|             // 消費 | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ public class RecipeSelectDialog : MonoBehaviour | |||
|     void Start() | ||||
|     { | ||||
|         var gameData = GameDataManager.GameData; | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             transform.SetLocalScale(0); | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  | @ -56,7 +56,7 @@ public class RecipeSelectDialog : MonoBehaviour | |||
|             if (hasRecipe) | ||||
|             { | ||||
|                 view.SetLockPanel(false); | ||||
|                 view.RecipeClickObservable.Subscribe(_ => | ||||
|                 view.RecipeClickObservable.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => | ||||
|                 { | ||||
|                     LocalCacheManager.Save(PopcornGameManager.CookingDataTag, productData); | ||||
|                     RecipeDetailView.ShowDialog(() => | ||||
|  |  | |||
|  | @ -133,6 +133,16 @@ PrefabInstance: | |||
|       propertyPath: m_AnchoredPosition.y | ||||
|       value: 50 | ||||
|       objectReference: {fileID: 0} | ||||
|     - target: {fileID: 9133304335268316946, guid: 3ea48dc60c16147799619e2fb9fe1cd9, | ||||
|         type: 3} | ||||
|       propertyPath: m_Transition | ||||
|       value: 0 | ||||
|       objectReference: {fileID: 0} | ||||
|     - target: {fileID: 9133304335268316946, guid: 3ea48dc60c16147799619e2fb9fe1cd9, | ||||
|         type: 3} | ||||
|       propertyPath: m_Interactable | ||||
|       value: 1 | ||||
|       objectReference: {fileID: 0} | ||||
|     - target: {fileID: 9133304335334808081, guid: 3ea48dc60c16147799619e2fb9fe1cd9, | ||||
|         type: 3} | ||||
|       propertyPath: m_AnchoredPosition.x | ||||
|  |  | |||
|  | @ -19,7 +19,7 @@ public class ShopItemDetailView : MonoBehaviour | |||
|     { | ||||
|         var data = LocalCacheManager.Load<ShopData>(ItemDetailTag); | ||||
|         SetData(data); | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             transform.SetLocalScale(0); | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  |  | |||
|  | @ -43,7 +43,7 @@ public class ShopItemPurchaseView : MonoBehaviour | |||
|         var data = LocalCacheManager.Load<(ShopData shopData, int stockCount)>(ItemPurchaseTag); | ||||
|         LocalCacheManager.Remove(ItemPurchaseTag); | ||||
|         SetData(data.shopData, data.stockCount); | ||||
|         closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|         closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             LocalCacheManager.Load<Action>(CloseCallbackTag, null)?.Invoke(); | ||||
|             transform.SetLocalScale(0); | ||||
|  | @ -53,8 +53,9 @@ public class ShopItemPurchaseView : MonoBehaviour | |||
|                 TransitionManager.Instance.UnloadScene(GameScenes.Purchase); | ||||
|             }); | ||||
|         }).AddTo(this); | ||||
|         purchaseOnButton.OnClickAsObservable().Subscribe(_ => | ||||
|         purchaseOnButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|         { | ||||
|             purchaseOnButton.interactable = false; | ||||
|             LocalCacheManager.Load<Action<int>>(PurchaseCallbackTag, null)?.Invoke(currentCount.Value); | ||||
|             transform.SetLocalScale(0); | ||||
|             backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  |  | |||
|  | @ -57,6 +57,7 @@ public class Shopping : MonoBehaviour | |||
|             }).AddTo(itemView); | ||||
|             // アイテム購入クリック購読 | ||||
|             itemView.PurchaseButtonObservable | ||||
|                 .ThrottleFirst(TimeSpan.FromSeconds(.3f)) | ||||
|                 .Where(_ => shopData.price <= CoinManager.Instance.OwnCoin) | ||||
|                 .Subscribe(_ => | ||||
|                 { | ||||
|  | @ -77,7 +78,7 @@ public class Shopping : MonoBehaviour | |||
|                     }); | ||||
|                 }).AddTo(itemView); | ||||
|             // show detail view | ||||
|             itemView.DetailButtonObservable.Subscribe(_ => | ||||
|             itemView.DetailButtonObservable.ThrottleFirst(TimeSpan.FromSeconds(.3f)).Subscribe(_ => | ||||
|             { | ||||
|                 LocalCacheManager.Save(ShopItemDetailView.ItemDetailTag, shopData); | ||||
|                 TransitionManager.Instance.LoadSceneAdditive(GameScenes.ShoppingExplanation); | ||||
|  |  | |||
|  | @ -16,6 +16,7 @@ public sealed class ApplicationExitConfirmDialogManager : MonoBehaviour | |||
|     { | ||||
|         backButton.OnClickAsObservable() | ||||
|             .Merge(closeButton.OnClickAsObservable()) | ||||
|             .Take(1) | ||||
|             .Subscribe(_ => | ||||
|             { | ||||
|                 transform.parent.SetLocalScale(0); | ||||
|  |  | |||
|  | @ -33,6 +33,9 @@ namespace MyGame.Scripts | |||
|                 case GameScenes.Main: | ||||
|                     camera.orthographicSize = 14f; | ||||
|                     break; | ||||
|                 case GameScenes.marketing: | ||||
|                     camera.orthographicSize = 13.5f; | ||||
|                     break; | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  |  | |||
|  | @ -7,58 +7,143 @@ using UnityEngine; | |||
| public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver> | ||||
| { | ||||
|     [SerializeField] private FloatReactiveProperty checkInterval = new FloatReactiveProperty(.1f); | ||||
|     private IObservable<int> heartObserver; | ||||
|     public IObservable<int> Heart => heartObserver; | ||||
|     private readonly Subject<int> heartObserver = new Subject<int>(); | ||||
|     private readonly Subject<int> sceneCounter = new Subject<int>(); | ||||
|     private readonly Subject<int> shopLevelObserver = new Subject<int>(); | ||||
|     private readonly Subject<int> achievedMissionObserver = new Subject<int>(); | ||||
|     private readonly Subject<int> addCoinObserver = new Subject<int>(); | ||||
|     private readonly Subject<int> subCoinObserver = new Subject<int>(); | ||||
|     private readonly Subject<int> addCornObserver = new Subject<int>(); | ||||
|     private readonly Subject<int> addCustomerObserver = new Subject<int>(); | ||||
|     private readonly Subject<int> addSalesObserver = new Subject<int>(); | ||||
|     private readonly Subject<int> addRareSalesObserver = new Subject<int>(); | ||||
|     private readonly Subject<int> hasRecipeObserver = new Subject<int>(); | ||||
|     private readonly Subject<int> deliveredBulkOrderObserver = new Subject<int>(); | ||||
|     private readonly BoolReactiveProperty updateMissionAchieved = new BoolReactiveProperty(); | ||||
|     public IReadOnlyReactiveProperty<bool> UpdateMissionAchieved => updateMissionAchieved; | ||||
| 
 | ||||
|     private IObservable<int> sceneCounter; | ||||
|     public IObservable<int> SceneCounter => sceneCounter; | ||||
|      | ||||
|     public IObservable<bool> ShopLevelUpdate; | ||||
|     public IObservable<bool> ShopLevelUpdate { get; private set; } | ||||
| 
 | ||||
|     private void Start() | ||||
|     { | ||||
|         checkInterval.AddTo(this); | ||||
|         updateMissionAchieved.AddTo(this); | ||||
|         var levelList = SpreadsheetDataManager.Instance.GetBaseDataList<ShopLevelData>(Const.ShopLevelDataSheet); | ||||
|         heartObserver = checkInterval | ||||
|             .Select(x => | ||||
|                 Observable.Interval(TimeSpan.FromSeconds(x)) | ||||
|                     .Select(_ => GameDataManager.GameData.Heart) | ||||
|                     .DistinctUntilChanged()) | ||||
|             .Switch(); | ||||
|         checkInterval.Select(x => Observable.Interval(TimeSpan.FromSeconds(x))).Switch().Subscribe(_ => | ||||
|         { | ||||
|             var gameData = GameDataManager.GameData; | ||||
|             heartObserver.OnNext(gameData.Heart); | ||||
|             sceneCounter.OnNext(UnityEngine.SceneManagement.SceneManager.sceneCount); | ||||
|             shopLevelObserver.OnNext(gameData.ViewedShopLevel); | ||||
|             achievedMissionObserver.OnNext(gameData.AchievedMission.Count); | ||||
|             // addCoinObserver.OnNext(gameData.TotalAddCoin); | ||||
|             subCoinObserver.OnNext(gameData.TotalSubCoin); | ||||
|             addCornObserver.OnNext(gameData.TotalAddCornSeed); | ||||
|             addCustomerObserver.OnNext(gameData.TotalCustomerCount); | ||||
|             addSalesObserver.OnNext(gameData.TotalSales); | ||||
|             addRareSalesObserver.OnNext(gameData.RareTotalSales); | ||||
|             hasRecipeObserver.OnNext(gameData.MyRecipes.Length); | ||||
|             deliveredBulkOrderObserver.OnNext(gameData.BulkOrderDeliveredCount); | ||||
|         }).AddTo(this); | ||||
| 
 | ||||
|         var shopLevelObserver = checkInterval | ||||
|             .Select(x => | ||||
|                 Observable.Interval(TimeSpan.FromSeconds(x)) | ||||
|                     .Select(_ => GameDataManager.GameData.ViewedShopLevel) | ||||
|                     .DistinctUntilChanged()) | ||||
|             .Switch(); | ||||
| 
 | ||||
|         sceneCounter = checkInterval | ||||
|             .Select(x => | ||||
|                 Observable.Interval(TimeSpan.FromSeconds(x)) | ||||
|                     .Select(_ => UnityEngine.SceneManagement.SceneManager.sceneCount) | ||||
|                     .DistinctUntilChanged() | ||||
|                     .Delay(TimeSpan.FromSeconds(.4f)) | ||||
|                     // .Do(c => { Debug.Log($"sceneCount:{c}");}) | ||||
|                 ) | ||||
|             .Switch(); | ||||
|          | ||||
|         ShopLevelUpdate = Observable.CombineLatest(heartObserver, shopLevelObserver, sceneCounter, | ||||
|             (heart, level, sceneCount) => | ||||
|             { | ||||
|                 if (level == 0 && GameDataManager.GameData.isFirstPlay) | ||||
|         ShopLevelUpdate = Observable.CombineLatest( | ||||
|                 heartObserver.DistinctUntilChanged(), | ||||
|                 sceneCounter.DistinctUntilChanged().Delay(TimeSpan.FromSeconds(.4f)), | ||||
|                 (heart, sceneCount) => | ||||
|                 { | ||||
|                     return false; | ||||
|                 } | ||||
|                 var currentLevel = levelList.LastOrDefault(data => data.heart <= heart)?.shopLevel ?? 1; | ||||
|                 return currentLevel > level && sceneCount == 1; | ||||
|             }) | ||||
|                     var viewedLevel = GameDataManager.GameData.ViewedShopLevel; | ||||
|                     if (viewedLevel == 0 && GameDataManager.GameData.isFirstPlay) | ||||
|                     { | ||||
|                         return false; | ||||
|                     } | ||||
|                     var currentLevel = levelList.LastOrDefault(data => data.heart <= heart)?.shopLevel ?? 1; | ||||
|                     return currentLevel > viewedLevel && sceneCount == 1; | ||||
|                 }) | ||||
|             .DistinctUntilChanged() | ||||
|             .Publish(false) | ||||
|             .RefCount(); | ||||
| #if UNITY_EDITOR | ||||
|         // ShopLevelUpdate.Subscribe(x => { Debug.Log($"change:{x}"); }); | ||||
| #endif | ||||
|          | ||||
|         // ミッション達成チェッカー | ||||
|         var missionList = SpreadsheetDataManager.Instance.GetBaseDataList<MissionData>(Const.MissionDataSheet); | ||||
|         var normalMissionList = missionList.Where(data => data.Category == MissionCategory.Normal).ToList(); | ||||
|         var latestMissionList = GetLatestMissionList(); | ||||
|         // 各条件の最前の未達成のミッションのみにフィルタ | ||||
|         List<MissionData> GetLatestMissionList() => normalMissionList | ||||
|             .Where(data => data.shopLevel <= GameDataManager.GameData.ViewedShopLevel) | ||||
|             .Where(data => !GameDataManager.GameData.AchievedMission.Contains(data.id)) | ||||
|             .GroupBy(data => data.Condition, (_, list) => list.FirstOrDefault()).ToList(); | ||||
|         // 店舗レベルアップorミッション達成でリスト更新して達成チェック | ||||
|         Observable.Merge( | ||||
|             shopLevelObserver.DistinctUntilChanged(), | ||||
|             achievedMissionObserver.DistinctUntilChanged()) | ||||
|             .Subscribe(_ => | ||||
|             { | ||||
|                 latestMissionList = GetLatestMissionList(); | ||||
|                 // ここで達成を再確認 | ||||
|                 updateMissionAchieved.Value = latestMissionList | ||||
|                     .Any(data => data.count <= MissionManager.GetProgressValue(data)); | ||||
|                  | ||||
|                 // CheckDailyCompleteMission | ||||
|                 if (!GameDataManager.GameData.dailyMissionCompleted) | ||||
|                 { | ||||
|                     if (GameDataManager.GameData.dailyMissionIdArray.Length <= GameDataManager.GameData.dailyMissionAchievedIdArray.Length) | ||||
|                     { | ||||
|                         updateMissionAchieved.Value = true; | ||||
|                     } | ||||
|                 } | ||||
|             }); | ||||
|          | ||||
|         // 各種ポップコーン以外の達成を確認 | ||||
|         Observable.Merge( | ||||
|                 subCoinObserver.DistinctUntilChanged().Select(_ => MissionCondition.CoinConsumeCount), | ||||
|                 addCornObserver.DistinctUntilChanged().Select(_ => MissionCondition.CornCount), | ||||
|                 addCustomerObserver.DistinctUntilChanged().Select(_ => MissionCondition.CustomerCount), | ||||
|                 hasRecipeObserver.DistinctUntilChanged().Select(_ => MissionCondition.RecipeCount), | ||||
|                 deliveredBulkOrderObserver.DistinctUntilChanged().Select(_ => MissionCondition.BulkOrderDeliveredCount)) | ||||
|             .Subscribe(condition => | ||||
|             { | ||||
|                 if (latestMissionList | ||||
|                     .Where(data => data.Condition == condition) | ||||
|                     .Any(data => data.count <= MissionManager.GetProgressValue(data))) | ||||
|                 { | ||||
|                     updateMissionAchieved.Value = true; | ||||
|                 } | ||||
|                  | ||||
|                 // dailyMission | ||||
|                 var ids = GameDataManager.GameData.dailyMissionIdArray.Except(GameDataManager.GameData.dailyMissionAchievedIdArray); | ||||
|                 if (missionList | ||||
|                     .Where(data => ids.Contains(data.id)) | ||||
|                     .Any(missionData => missionData.count <= MissionManager.GetDailyProgressValue(missionData))) | ||||
|                 { | ||||
|                     updateMissionAchieved.Value = true; | ||||
|                 } | ||||
|             }); | ||||
| 
 | ||||
|         // ポップコーン達成確認 | ||||
|         Observable.Merge( | ||||
|                 addSalesObserver.DistinctUntilChanged(), | ||||
|                 addRareSalesObserver.DistinctUntilChanged()) | ||||
|             .Subscribe(_ => | ||||
|             { | ||||
|                 if (latestMissionList | ||||
|                     .Any(data => data.count <= MissionManager.GetProgressValue(data))) | ||||
|                 { | ||||
|                     updateMissionAchieved.Value = true; | ||||
|                 } | ||||
|                  | ||||
|                 // dailyMission | ||||
|                 var ids = GameDataManager.GameData.dailyMissionIdArray.Except(GameDataManager.GameData.dailyMissionAchievedIdArray); | ||||
|                 if (missionList | ||||
|                     .Where(data => ids.Contains(data.id)) | ||||
|                     .Any(missionData => missionData.count <= MissionManager.GetDailyProgressValue(missionData))) | ||||
|                 { | ||||
|                     updateMissionAchieved.Value = true; | ||||
|                 } | ||||
|             }); | ||||
| 
 | ||||
|         // デイリーミッション日付チェック | ||||
|         sceneCounter | ||||
|             .Where(x => x <= 1) | ||||
|  | @ -93,7 +178,6 @@ public class GameDataObserver : SingletonMonoBehaviour<GameDataObserver> | |||
|                 gameData.dailyMissionCompleted = false; | ||||
|                 gameData.ResetDailyTotalCount(); | ||||
|                 // 新ミッション登録 | ||||
|                 var missionList = SpreadsheetDataManager.Instance.GetBaseDataList<MissionData>(Const.MissionDataSheet); | ||||
|                 var targetList = missionList.Where(data => | ||||
|                     data.Category == MissionCategory.Daily && data.shopLevel <= gameData.ViewedShopLevel); | ||||
|                 gameData.dailyMissionIdArray = targetList.ToList().RandomChoose(3).Select(data => data.id).ToArray(); | ||||
|  |  | |||
|  | @ -21,43 +21,16 @@ public class HeaderManager : MonoBehaviour | |||
|         }); | ||||
|         missionButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => | ||||
|         { | ||||
|             MissionManager.ShowDialog(onAchieved:() => missionIndicator.SetActive(CheckMissionIndicate())); | ||||
|             MissionManager.ShowDialog(); | ||||
|         }); | ||||
|         informationButton.OnClickAsObservable().ThrottleFirst(TimeSpan.FromSeconds(1f)).Subscribe(_ => | ||||
|         { | ||||
|             TransitionManager.Instance.LoadSceneAdditive(GameScenes.Information); | ||||
|         }); | ||||
|         // mission報酬通知 | ||||
|         missionIndicator.SetActive(CheckMissionIndicate()); | ||||
|     } | ||||
| 
 | ||||
|     private bool CheckMissionIndicate() | ||||
|     { | ||||
|         // ミッション読み込み | ||||
|         var missionList = SpreadsheetDataManager.Instance.GetBaseDataList<MissionData>(Const.MissionDataSheet); | ||||
|         var gameData = GameDataManager.GameData; | ||||
|         // ミッション表示 | ||||
|         if (missionList | ||||
|             .Where(data => data.Category == MissionCategory.Normal && data.shopLevel <= gameData.ViewedShopLevel) | ||||
|             .Where(missionData => !GameDataManager.GameData.AchievedMission.Contains(missionData.id)) | ||||
|             .Any(missionData => missionData.count <= MissionManager.GetProgressValue(missionData))) | ||||
|         GameDataObserver.Instance.UpdateMissionAchieved.Subscribe(x => | ||||
|         { | ||||
|             return true; | ||||
|         } | ||||
| 
 | ||||
|         // dailyMission | ||||
|         // コンプリートミッション | ||||
|         if (!gameData.dailyMissionCompleted) | ||||
|         { | ||||
|             if (gameData.dailyMissionIdArray.Length <= gameData.dailyMissionAchievedIdArray.Length) | ||||
|             { | ||||
|                 return true; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         var ids = gameData.dailyMissionIdArray.Except(gameData.dailyMissionAchievedIdArray); | ||||
|         return missionList | ||||
|             .Where(data => ids.Contains(data.id)) | ||||
|             .Any(missionData => missionData.count <= MissionManager.GetDailyProgressValue(missionData)); | ||||
|             missionIndicator.SetActive(x); | ||||
|         }).AddTo(this); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ namespace MyGame.Scripts | |||
| 
 | ||||
|         private void Start() | ||||
|         { | ||||
|             closeButton.OnClickAsObservable().Subscribe(_ => | ||||
|             closeButton.OnClickAsObservable().Take(1).Subscribe(_ => | ||||
|             { | ||||
|                 transform.parent.SetLocalScale(0); | ||||
|                 backgroundAnimator.SetTrigger(CloseTrigger); | ||||
|  |  | |||
|  | @ -0,0 +1,13 @@ | |||
| { | ||||
|   "MonoBehaviour": { | ||||
|     "Version": 3, | ||||
|     "EnableBurstCompilation": true, | ||||
|     "EnableOptimisations": true, | ||||
|     "EnableSafetyChecks": false, | ||||
|     "EnableDebugInAllBuilds": false, | ||||
|     "CpuMinTargetX32": 0, | ||||
|     "CpuMaxTargetX32": 0, | ||||
|     "CpuMinTargetX64": 0, | ||||
|     "CpuMaxTargetX64": 0 | ||||
|   } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue