フッターで今いるシーンへの遷移ボタンを押せないようにした

This commit is contained in:
kimura 2021-10-15 15:57:32 +09:00
parent aa005b6e42
commit 12e2bfa740
2 changed files with 42 additions and 31 deletions

View File

@ -392,7 +392,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}
@ -884,7 +884,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}
@ -1095,7 +1095,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}
@ -1232,7 +1232,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}
@ -1517,7 +1517,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}

View File

@ -1,6 +1,7 @@
using System;
using UniRx;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class FooterManager : MonoBehaviour
@ -10,34 +11,44 @@ public class FooterManager : MonoBehaviour
[SerializeField] private Button stockButton;
[SerializeField] private Button saleButton;
[SerializeField] private Button productManagementButton;
private BoolReactiveProperty shareGate = new BoolReactiveProperty(true);
private void Start()
{
kitchenButton.BindToOnClick(shareGate, _ =>
{
TransitionManager.Instance.LoadScene(GameScenes.Main);
return Observable.Timer(TimeSpan.FromSeconds(.5f)).AsUnitObservable();
}).AddTo(this);
fieldButton.BindToOnClick(shareGate, _ =>
{
TransitionManager.Instance.LoadScene(GameScenes.CornField);
return Observable.Timer(TimeSpan.FromSeconds(.5f)).AsUnitObservable();
}).AddTo(this);
stockButton.BindToOnClick(shareGate, _ =>
{
TransitionManager.Instance.LoadScene(GameScenes.shopping);
return Observable.Timer(TimeSpan.FromSeconds(.5f)).AsUnitObservable();
}).AddTo(this);
saleButton.BindToOnClick(shareGate, _ =>
{
TransitionManager.Instance.LoadScene(GameScenes.marketing);
return Observable.Timer(TimeSpan.FromSeconds(.5f)).AsUnitObservable();
}).AddTo(this);
productManagementButton.BindToOnClick(shareGate, _ =>
{
TransitionManager.Instance.LoadScene(GameScenes.ProductManagement);
return Observable.Timer(TimeSpan.FromSeconds(.5f)).AsUnitObservable();
}).AddTo(this);
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(_ =>
{
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);
}).AddTo(this);
}
}