フッターボタン対応
This commit is contained in:
		
							parent
							
								
									7fd6fab1b3
								
							
						
					
					
						commit
						fcabfdf942
					
				|  | @ -442,6 +442,7 @@ GameObject: | |||
|   - component: {fileID: 3310671341034218319} | ||||
|   - component: {fileID: 3310671341034218318} | ||||
|   - component: {fileID: 5615842281030838038} | ||||
|   - component: {fileID: 5274539976409466502} | ||||
|   m_Layer: 5 | ||||
|   m_Name: Button_Purchasing | ||||
|   m_TagString: Untagged | ||||
|  | @ -567,6 +568,22 @@ MonoBehaviour: | |||
|   randomPlaySEFilenames: [] | ||||
|   randomPlayVoiceFilenames: [] | ||||
|   vibrationType: 0 | ||||
| --- !u!114 &5274539976409466502 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 3310671341034218320} | ||||
|   m_Enabled: 1 | ||||
|   m_EditorHideFlags: 0 | ||||
|   m_Script: {fileID: 11500000, guid: a0dc14a074a045e692da5b06f4ebf359, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   onSprite: {fileID: 21300000, guid: d3e596bc03ab54cb89bf61b9ebb26053, type: 3} | ||||
|   offSprite: {fileID: 21300000, guid: 1a7dcb2763dc8d44897ac8b797f1bd3a, type: 3} | ||||
|   onObject: {fileID: 4604508287391511616} | ||||
|   offObject: {fileID: 5397224606299006486} | ||||
| --- !u!1 &3310671341133373343 | ||||
| GameObject: | ||||
|   m_ObjectHideFlags: 0 | ||||
|  | @ -917,11 +934,11 @@ MonoBehaviour: | |||
|   m_Script: {fileID: 11500000, guid: 81bfae5c50ac45de9ed02294b4c64bda, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   kitchenButton: {fileID: 3310671341787608547} | ||||
|   fieldButton: {fileID: 3310671341662576995} | ||||
|   stockButton: {fileID: 3310671341034218318} | ||||
|   saleButton: {fileID: 3310671341763054133} | ||||
|   productManagementButton: {fileID: 3908473096140235644} | ||||
|   kitchenButton: {fileID: 3441612917021780293} | ||||
|   fieldButton: {fileID: 415266614366797415} | ||||
|   stockButton: {fileID: 5274539976409466502} | ||||
|   saleButton: {fileID: 3508757909112374925} | ||||
|   productManagementButton: {fileID: 4134779366559125937} | ||||
| --- !u!1 &3310671341662576997 | ||||
| GameObject: | ||||
|   m_ObjectHideFlags: 0 | ||||
|  | @ -935,6 +952,7 @@ GameObject: | |||
|   - component: {fileID: 3310671341662576992} | ||||
|   - component: {fileID: 3310671341662576995} | ||||
|   - component: {fileID: 226840924175146768} | ||||
|   - component: {fileID: 415266614366797415} | ||||
|   m_Layer: 5 | ||||
|   m_Name: Button_field | ||||
|   m_TagString: Untagged | ||||
|  | @ -1060,6 +1078,22 @@ MonoBehaviour: | |||
|   randomPlaySEFilenames: [] | ||||
|   randomPlayVoiceFilenames: [] | ||||
|   vibrationType: 0 | ||||
| --- !u!114 &415266614366797415 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 3310671341662576997} | ||||
|   m_Enabled: 1 | ||||
|   m_EditorHideFlags: 0 | ||||
|   m_Script: {fileID: 11500000, guid: a0dc14a074a045e692da5b06f4ebf359, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   onSprite: {fileID: 21300000, guid: d3e596bc03ab54cb89bf61b9ebb26053, type: 3} | ||||
|   offSprite: {fileID: 21300000, guid: 1a7dcb2763dc8d44897ac8b797f1bd3a, type: 3} | ||||
|   onObject: {fileID: 4207961455349558885} | ||||
|   offObject: {fileID: 6803842389791368715} | ||||
| --- !u!1 &3310671341740920859 | ||||
| GameObject: | ||||
|   m_ObjectHideFlags: 0 | ||||
|  | @ -1147,6 +1181,7 @@ GameObject: | |||
|   - component: {fileID: 3310671341763054130} | ||||
|   - component: {fileID: 3310671341763054133} | ||||
|   - component: {fileID: 8391726069586212425} | ||||
|   - component: {fileID: 3508757909112374925} | ||||
|   m_Layer: 5 | ||||
|   m_Name: Button_shop | ||||
|   m_TagString: Untagged | ||||
|  | @ -1272,6 +1307,22 @@ MonoBehaviour: | |||
|   randomPlaySEFilenames: [] | ||||
|   randomPlayVoiceFilenames: [] | ||||
|   vibrationType: 0 | ||||
| --- !u!114 &3508757909112374925 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 3310671341763054135} | ||||
|   m_Enabled: 1 | ||||
|   m_EditorHideFlags: 0 | ||||
|   m_Script: {fileID: 11500000, guid: a0dc14a074a045e692da5b06f4ebf359, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   onSprite: {fileID: 21300000, guid: d3e596bc03ab54cb89bf61b9ebb26053, type: 3} | ||||
|   offSprite: {fileID: 21300000, guid: 1a7dcb2763dc8d44897ac8b797f1bd3a, type: 3} | ||||
|   onObject: {fileID: 1397606787759984249} | ||||
|   offObject: {fileID: 6506264669292749216} | ||||
| --- !u!1 &3310671341787608549 | ||||
| GameObject: | ||||
|   m_ObjectHideFlags: 0 | ||||
|  | @ -1285,6 +1336,7 @@ GameObject: | |||
|   - component: {fileID: 3310671341787608544} | ||||
|   - component: {fileID: 3310671341787608547} | ||||
|   - component: {fileID: 3650288098092561283} | ||||
|   - component: {fileID: 3441612917021780293} | ||||
|   m_Layer: 5 | ||||
|   m_Name: Button_Main | ||||
|   m_TagString: Untagged | ||||
|  | @ -1410,6 +1462,22 @@ MonoBehaviour: | |||
|   randomPlaySEFilenames: [] | ||||
|   randomPlayVoiceFilenames: [] | ||||
|   vibrationType: 0 | ||||
| --- !u!114 &3441612917021780293 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 3310671341787608549} | ||||
|   m_Enabled: 1 | ||||
|   m_EditorHideFlags: 0 | ||||
|   m_Script: {fileID: 11500000, guid: a0dc14a074a045e692da5b06f4ebf359, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   onSprite: {fileID: 21300000, guid: da7d0891d65e44ffca043abc8256e3a8, type: 3} | ||||
|   offSprite: {fileID: 21300000, guid: 01a6ddb05d59146478a033251ec40dce, type: 3} | ||||
|   onObject: {fileID: 5788652954579550797} | ||||
|   offObject: {fileID: 3760014368482622429} | ||||
| --- !u!1 &3653150424385182768 | ||||
| GameObject: | ||||
|   m_ObjectHideFlags: 0 | ||||
|  | @ -3023,6 +3091,7 @@ GameObject: | |||
|   - component: {fileID: 3839574963423866813} | ||||
|   - component: {fileID: 3908473096140235644} | ||||
|   - component: {fileID: 6572005448138348688} | ||||
|   - component: {fileID: 4134779366559125937} | ||||
|   m_Layer: 5 | ||||
|   m_Name: Button_ProductManagement | ||||
|   m_TagString: Untagged | ||||
|  | @ -3148,6 +3217,22 @@ MonoBehaviour: | |||
|   randomPlaySEFilenames: [] | ||||
|   randomPlayVoiceFilenames: [] | ||||
|   vibrationType: 0 | ||||
| --- !u!114 &4134779366559125937 | ||||
| MonoBehaviour: | ||||
|   m_ObjectHideFlags: 0 | ||||
|   m_CorrespondingSourceObject: {fileID: 0} | ||||
|   m_PrefabInstance: {fileID: 0} | ||||
|   m_PrefabAsset: {fileID: 0} | ||||
|   m_GameObject: {fileID: 7178078486938443981} | ||||
|   m_Enabled: 1 | ||||
|   m_EditorHideFlags: 0 | ||||
|   m_Script: {fileID: 11500000, guid: a0dc14a074a045e692da5b06f4ebf359, type: 3} | ||||
|   m_Name:  | ||||
|   m_EditorClassIdentifier:  | ||||
|   onSprite: {fileID: 21300000, guid: d3e596bc03ab54cb89bf61b9ebb26053, type: 3} | ||||
|   offSprite: {fileID: 21300000, guid: 1a7dcb2763dc8d44897ac8b797f1bd3a, type: 3} | ||||
|   onObject: {fileID: 6568569349235814729} | ||||
|   offObject: {fileID: 4988977873717047542} | ||||
| --- !u!1 &7430888814095242979 | ||||
| GameObject: | ||||
|   m_ObjectHideFlags: 0 | ||||
|  |  | |||
|  | @ -0,0 +1,44 @@ | |||
| using System; | ||||
| using UniRx; | ||||
| using UnityEngine; | ||||
| using UnityEngine.UI; | ||||
| 
 | ||||
| namespace MyGame.Scripts | ||||
| { | ||||
|     [RequireComponent(typeof(Button))] | ||||
|     public class FooterButton : MonoBehaviour | ||||
|     { | ||||
|         [SerializeField] private Sprite onSprite; | ||||
|         [SerializeField] private Sprite offSprite; | ||||
|         [SerializeField] private GameObject onObject; | ||||
|         [SerializeField] private GameObject offObject; | ||||
|         private static readonly int DelayCount = 2; | ||||
|         private Button button; | ||||
|         public IObservable<Unit> ClickObservable => button.OnClickAsObservable().TakeUntilDestroy(this); | ||||
| 
 | ||||
|         private void Awake() | ||||
|         { | ||||
|             button = GetComponent<Button>(); | ||||
|         } | ||||
| 
 | ||||
|         private void Start() | ||||
|         { | ||||
|             button.OnClickAsObservable().Subscribe(_ => | ||||
|             { | ||||
|                  | ||||
|             }).AddTo(this); | ||||
|         } | ||||
| 
 | ||||
|         public void SetSelected(bool selected) | ||||
|         { | ||||
|             button.interactable = !selected; | ||||
|             button.image.sprite = selected ? onSprite : offSprite; | ||||
|             Observable.TimerFrame(DelayCount) | ||||
|                 .Subscribe(_ => | ||||
|                 { | ||||
|                     onObject.SetActive(selected); | ||||
|                     offObject.SetActive(!selected); | ||||
|                 }).AddTo(this); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,3 @@ | |||
| fileFormatVersion: 2 | ||||
| guid: a0dc14a074a045e692da5b06f4ebf359 | ||||
| timeCreated: 1638352356 | ||||
|  | @ -1,4 +1,5 @@ | |||
| using System; | ||||
| using MyGame.Scripts; | ||||
| using UniRx; | ||||
| using UnityEngine; | ||||
| using UnityEngine.SceneManagement; | ||||
|  | @ -6,49 +7,33 @@ using UnityEngine.UI; | |||
| 
 | ||||
| public class FooterManager : MonoBehaviour | ||||
| { | ||||
|     [SerializeField] private Button kitchenButton; | ||||
|     [SerializeField] private Button fieldButton; | ||||
|     [SerializeField] private Button stockButton; | ||||
|     [SerializeField] private Button saleButton; | ||||
|     [SerializeField] private Button productManagementButton; | ||||
|     [SerializeField] private FooterButton kitchenButton; | ||||
|     [SerializeField] private FooterButton fieldButton; | ||||
|     [SerializeField] private FooterButton stockButton; | ||||
|     [SerializeField] private FooterButton saleButton; | ||||
|     [SerializeField] private FooterButton productManagementButton; | ||||
| 
 | ||||
|     private void Start() | ||||
|     { | ||||
|         var currentSceneName = SceneManager.GetActiveScene().name; | ||||
|         kitchenButton.interactable = currentSceneName != GameScenes.Main.ToString(); | ||||
|         fieldButton.interactable = currentSceneName != GameScenes.CornField.ToString(); | ||||
|         stockButton.interactable = currentSceneName != GameScenes.shopping.ToString(); | ||||
|         saleButton.interactable = currentSceneName != GameScenes.marketing.ToString(); | ||||
|         productManagementButton.interactable = currentSceneName != GameScenes.ProductManagement.ToString(); | ||||
|         kitchenButton.OnClickAsObservable() | ||||
|             .ThrottleFirst(TimeSpan.FromSeconds(.5f)) | ||||
|             .Subscribe(_ => | ||||
|         if (!Enum.TryParse<GameScenes>(SceneManager.GetActiveScene().name, out var currentSceneName)) | ||||
|         { | ||||
|             return; | ||||
|         } | ||||
|         kitchenButton.SetSelected(currentSceneName == GameScenes.Main); | ||||
|         fieldButton.SetSelected(currentSceneName == GameScenes.CornField); | ||||
|         stockButton.SetSelected(currentSceneName == GameScenes.shopping); | ||||
|         saleButton.SetSelected(currentSceneName == GameScenes.marketing); | ||||
|         productManagementButton.SetSelected(currentSceneName == GameScenes.ProductManagement); | ||||
|         Observable.Merge( | ||||
|                 kitchenButton.ClickObservable.Select(_ => GameScenes.Main), | ||||
|                 fieldButton.ClickObservable.Select(_ => GameScenes.CornField), | ||||
|                 stockButton.ClickObservable.Select(_ => GameScenes.shopping), | ||||
|                 saleButton.ClickObservable.Select(_ => GameScenes.marketing), | ||||
|                 productManagementButton.ClickObservable.Select(_ => GameScenes.ProductManagement)) | ||||
|             .Take(1) | ||||
|             .Subscribe(x => | ||||
|             { | ||||
|                 TransitionManager.Instance.LoadScene(GameScenes.Main); | ||||
|             }).AddTo(this); | ||||
|         fieldButton.OnClickAsObservable() | ||||
|             .ThrottleFirst(TimeSpan.FromSeconds(.5f)) | ||||
|             .Subscribe(_ => | ||||
|             { | ||||
|                 TransitionManager.Instance.LoadScene(GameScenes.CornField); | ||||
|             }).AddTo(this); | ||||
|         stockButton.OnClickAsObservable() | ||||
|             .ThrottleFirst(TimeSpan.FromSeconds(.5f)) | ||||
|             .Subscribe(_ => | ||||
|             { | ||||
|                 TransitionManager.Instance.LoadScene(GameScenes.shopping); | ||||
|             }).AddTo(this); | ||||
|         saleButton.OnClickAsObservable() | ||||
|             .ThrottleFirst(TimeSpan.FromSeconds(.5f)) | ||||
|             .Subscribe(_ => | ||||
|             { | ||||
|                 TransitionManager.Instance.LoadScene(GameScenes.marketing); | ||||
|             }).AddTo(this); | ||||
|         productManagementButton.OnClickAsObservable() | ||||
|             .ThrottleFirst(TimeSpan.FromSeconds(.5f)) | ||||
|             .Subscribe(_ => | ||||
|             { | ||||
|                 TransitionManager.Instance.LoadScene(GameScenes.ProductManagement); | ||||
|                 TransitionManager.Instance.LoadScene(x); | ||||
|             }).AddTo(this); | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue