フッターボタン対応

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: 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

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