フッターボタン対応

This commit is contained in:
kimura 2021-12-02 13:59:57 +09:00
parent 7fd6fab1b3
commit fcabfdf942
4 changed files with 161 additions and 44 deletions

View File

@ -442,6 +442,7 @@ GameObject:
- component: {fileID: 3310671341034218319} - component: {fileID: 3310671341034218319}
- component: {fileID: 3310671341034218318} - component: {fileID: 3310671341034218318}
- component: {fileID: 5615842281030838038} - component: {fileID: 5615842281030838038}
- component: {fileID: 5274539976409466502}
m_Layer: 5 m_Layer: 5
m_Name: Button_Purchasing m_Name: Button_Purchasing
m_TagString: Untagged m_TagString: Untagged
@ -567,6 +568,22 @@ MonoBehaviour:
randomPlaySEFilenames: [] randomPlaySEFilenames: []
randomPlayVoiceFilenames: [] randomPlayVoiceFilenames: []
vibrationType: 0 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 --- !u!1 &3310671341133373343
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -917,11 +934,11 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 81bfae5c50ac45de9ed02294b4c64bda, type: 3} m_Script: {fileID: 11500000, guid: 81bfae5c50ac45de9ed02294b4c64bda, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
kitchenButton: {fileID: 3310671341787608547} kitchenButton: {fileID: 3441612917021780293}
fieldButton: {fileID: 3310671341662576995} fieldButton: {fileID: 415266614366797415}
stockButton: {fileID: 3310671341034218318} stockButton: {fileID: 5274539976409466502}
saleButton: {fileID: 3310671341763054133} saleButton: {fileID: 3508757909112374925}
productManagementButton: {fileID: 3908473096140235644} productManagementButton: {fileID: 4134779366559125937}
--- !u!1 &3310671341662576997 --- !u!1 &3310671341662576997
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -935,6 +952,7 @@ GameObject:
- component: {fileID: 3310671341662576992} - component: {fileID: 3310671341662576992}
- component: {fileID: 3310671341662576995} - component: {fileID: 3310671341662576995}
- component: {fileID: 226840924175146768} - component: {fileID: 226840924175146768}
- component: {fileID: 415266614366797415}
m_Layer: 5 m_Layer: 5
m_Name: Button_field m_Name: Button_field
m_TagString: Untagged m_TagString: Untagged
@ -1060,6 +1078,22 @@ MonoBehaviour:
randomPlaySEFilenames: [] randomPlaySEFilenames: []
randomPlayVoiceFilenames: [] randomPlayVoiceFilenames: []
vibrationType: 0 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 --- !u!1 &3310671341740920859
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1147,6 +1181,7 @@ GameObject:
- component: {fileID: 3310671341763054130} - component: {fileID: 3310671341763054130}
- component: {fileID: 3310671341763054133} - component: {fileID: 3310671341763054133}
- component: {fileID: 8391726069586212425} - component: {fileID: 8391726069586212425}
- component: {fileID: 3508757909112374925}
m_Layer: 5 m_Layer: 5
m_Name: Button_shop m_Name: Button_shop
m_TagString: Untagged m_TagString: Untagged
@ -1272,6 +1307,22 @@ MonoBehaviour:
randomPlaySEFilenames: [] randomPlaySEFilenames: []
randomPlayVoiceFilenames: [] randomPlayVoiceFilenames: []
vibrationType: 0 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 --- !u!1 &3310671341787608549
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1285,6 +1336,7 @@ GameObject:
- component: {fileID: 3310671341787608544} - component: {fileID: 3310671341787608544}
- component: {fileID: 3310671341787608547} - component: {fileID: 3310671341787608547}
- component: {fileID: 3650288098092561283} - component: {fileID: 3650288098092561283}
- component: {fileID: 3441612917021780293}
m_Layer: 5 m_Layer: 5
m_Name: Button_Main m_Name: Button_Main
m_TagString: Untagged m_TagString: Untagged
@ -1410,6 +1462,22 @@ MonoBehaviour:
randomPlaySEFilenames: [] randomPlaySEFilenames: []
randomPlayVoiceFilenames: [] randomPlayVoiceFilenames: []
vibrationType: 0 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 --- !u!1 &3653150424385182768
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -3023,6 +3091,7 @@ GameObject:
- component: {fileID: 3839574963423866813} - component: {fileID: 3839574963423866813}
- component: {fileID: 3908473096140235644} - component: {fileID: 3908473096140235644}
- component: {fileID: 6572005448138348688} - component: {fileID: 6572005448138348688}
- component: {fileID: 4134779366559125937}
m_Layer: 5 m_Layer: 5
m_Name: Button_ProductManagement m_Name: Button_ProductManagement
m_TagString: Untagged m_TagString: Untagged
@ -3148,6 +3217,22 @@ MonoBehaviour:
randomPlaySEFilenames: [] randomPlaySEFilenames: []
randomPlayVoiceFilenames: [] randomPlayVoiceFilenames: []
vibrationType: 0 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 --- !u!1 &7430888814095242979
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@ -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);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a0dc14a074a045e692da5b06f4ebf359
timeCreated: 1638352356

View File

@ -1,4 +1,5 @@
using System; using System;
using MyGame.Scripts;
using UniRx; using UniRx;
using UnityEngine; using UnityEngine;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
@ -6,49 +7,33 @@ using UnityEngine.UI;
public class FooterManager : MonoBehaviour public class FooterManager : MonoBehaviour
{ {
[SerializeField] private Button kitchenButton; [SerializeField] private FooterButton kitchenButton;
[SerializeField] private Button fieldButton; [SerializeField] private FooterButton fieldButton;
[SerializeField] private Button stockButton; [SerializeField] private FooterButton stockButton;
[SerializeField] private Button saleButton; [SerializeField] private FooterButton saleButton;
[SerializeField] private Button productManagementButton; [SerializeField] private FooterButton productManagementButton;
private void Start() private void Start()
{ {
var currentSceneName = SceneManager.GetActiveScene().name; if (!Enum.TryParse<GameScenes>(SceneManager.GetActiveScene().name, out var currentSceneName))
kitchenButton.interactable = currentSceneName != GameScenes.Main.ToString(); {
fieldButton.interactable = currentSceneName != GameScenes.CornField.ToString(); return;
stockButton.interactable = currentSceneName != GameScenes.shopping.ToString(); }
saleButton.interactable = currentSceneName != GameScenes.marketing.ToString(); kitchenButton.SetSelected(currentSceneName == GameScenes.Main);
productManagementButton.interactable = currentSceneName != GameScenes.ProductManagement.ToString(); fieldButton.SetSelected(currentSceneName == GameScenes.CornField);
kitchenButton.OnClickAsObservable() stockButton.SetSelected(currentSceneName == GameScenes.shopping);
.ThrottleFirst(TimeSpan.FromSeconds(.5f)) saleButton.SetSelected(currentSceneName == GameScenes.marketing);
.Subscribe(_ => 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); TransitionManager.Instance.LoadScene(x);
}).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);
}).AddTo(this); }).AddTo(this);
} }
} }