Теперь Addressables и UniTask в InstantiateAsync и прочих процессах
This commit is contained in:
1 parent
6b1f24b72e
commit
f940cbffe0
45 files changed
+811
-189
No files matched your search
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using Code.UI.Panels;
|
||||
|
||||
namespace Code.UI
|
||||
{
|
||||
@@ -6,6 +7,7 @@ namespace Code.UI
|
||||
{
|
||||
void SwitchPanelTo(UIPanel uiPanel, Action callback = null);
|
||||
UIElement CurrentPanel { get; }
|
||||
LoadingPanel LoadingScreen { get; }
|
||||
LoadingScreen LoadingScreen { get; }
|
||||
void Initialize(LoadingScreen loadingScreen);
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Code.UI
|
||||
{
|
||||
public class LoadingPanel : UIElement
|
||||
{
|
||||
[SerializeField] private Image _background;
|
||||
public override void Hide()
|
||||
{
|
||||
_background.enabled = false;
|
||||
}
|
||||
public override void Show()
|
||||
{
|
||||
_background.enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Code.UI.Panels
|
||||
{
|
||||
public class LoadingScreen : UIElement
|
||||
{
|
||||
[SerializeField] private Image background;
|
||||
[SerializeField] private TMP_Text loadingTitle;
|
||||
public override void Hide()
|
||||
{
|
||||
background.enabled = false;
|
||||
loadingTitle.enabled = false;
|
||||
}
|
||||
public override void Show()
|
||||
{
|
||||
background.enabled = true;
|
||||
loadingTitle.enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
File renamed without changes.
@@ -1,4 +1,6 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using Code.UI.Panels;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using Object = UnityEngine.Object;
|
||||
@@ -11,24 +13,24 @@ namespace Code.UI
|
||||
private IUIFactory _factory;
|
||||
|
||||
public UIElement CurrentPanel { get; private set; }
|
||||
public LoadingPanel LoadingScreen { get; private set; }
|
||||
public LoadingScreen LoadingScreen { get; private set; }
|
||||
|
||||
public UIService(IUIFactory factory)
|
||||
{
|
||||
_factory = factory;
|
||||
Initialize();
|
||||
}
|
||||
|
||||
private async void Initialize()
|
||||
public async void Initialize(LoadingScreen loadingScreen)
|
||||
{
|
||||
_canvas = await _factory.CreateCanvas();
|
||||
LoadingScreen = loadingScreen;
|
||||
LoadingScreen.Show();
|
||||
|
||||
LoadingScreen = (LoadingPanel) await _factory.CreatePanel(_canvas,UIPanel.Loading);
|
||||
_canvas = await _factory.CreateCanvas();
|
||||
}
|
||||
|
||||
public async void SwitchPanelTo(UIPanel uiPanel, Action callback = null)
|
||||
{
|
||||
if (!_canvas) await UniTask.WaitUntilValueChanged(_canvas, _ => !_canvas);
|
||||
if (!_canvas) await UniTask.WaitUntil(() => _canvas );
|
||||
|
||||
if(CurrentPanel) Object.Destroy(CurrentPanel.gameObject);
|
||||
|
||||
|
||||
Reference in new issue
Block a user