Интерфейс прокачан
This commit is contained in:
1 parent
ab9d444072
commit
0ac5ba1e1c
20 files changed
+2528
-89
No files matched your search
@@ -1,39 +1,54 @@
|
||||
using Code.App.StateMachine;
|
||||
using Code.Gameplay.Camera;
|
||||
using Code.Gameplay.Camera.CameraStates;
|
||||
using Code.Input;
|
||||
using Code.Scenes;
|
||||
using Code.Scenes.SceneEnvironments;
|
||||
using Code.StateMachine;
|
||||
using Code.UI;
|
||||
using Reflex.Extensions;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
namespace Code.App.AppStates
|
||||
{
|
||||
public class MainMenuState : BaseState<AppStateMachineContext>
|
||||
{
|
||||
public MainMenuState(AppStateMachineContext context) : base(context)
|
||||
{ }
|
||||
|
||||
{
|
||||
}
|
||||
|
||||
public override void EnterState()
|
||||
{
|
||||
Context.SceneLoaderService.LoadScene((int)SceneIds.MainMenu, SceneLoaded);
|
||||
Context.InputService.EnableMap(ActionMappings.MainMenu);
|
||||
|
||||
|
||||
Context.UIService.LoadingScreen.Show();
|
||||
Context.UIService.SwitchPanelTo(UIPanel.MainMenu);
|
||||
((MainMenuPanel)Context.UIService.CurrentPanel).startButton.onClick.AddListener(StartGame);
|
||||
((MainMenuPanel)Context.UIService.CurrentPanel).exitButton.onClick.AddListener(ExitGame);
|
||||
|
||||
|
||||
Context.CameraStateMachine.SwitchState(CameraMode.Static);
|
||||
}
|
||||
|
||||
|
||||
private void SceneLoaded()
|
||||
{
|
||||
{
|
||||
Context.UIService.LoadingScreen.Hide();
|
||||
|
||||
var hui = ((MainMenuEnvironment)SceneManager.GetActiveScene()
|
||||
.GetSceneContainer().Resolve<CurrentSceneEnvironment>());
|
||||
|
||||
((StaticState)Context.CameraStateMachine.CurrentBaseState).LookTarget =
|
||||
hui.cameraTarget;
|
||||
|
||||
((BaseCameraState)Context.CameraStateMachine.CurrentBaseState).SetFollowTransform(hui.cameraPosition);
|
||||
|
||||
base.EnterState();
|
||||
}
|
||||
|
||||
public override void Tick()
|
||||
{ }
|
||||
{
|
||||
}
|
||||
|
||||
private void StartGame()
|
||||
{
|
||||
@@ -46,11 +61,11 @@ namespace Code.App.AppStates
|
||||
{
|
||||
Application.Quit();
|
||||
}
|
||||
|
||||
|
||||
public override void ExitState()
|
||||
{
|
||||
Context.InputService.DisableMap(ActionMappings.MainMenu);
|
||||
|
||||
|
||||
base.ExitState();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7a271c6319540abb78d561f392e1396
|
||||
timeCreated: 1761743570
|
||||
@@ -0,0 +1,26 @@
|
||||
using Code.Scenes;
|
||||
using Code.Scenes.SceneEnvironments;
|
||||
using Reflex.Core;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Code.App.SceneInstallers
|
||||
{
|
||||
public class MainMenuSceneInstaller : MonoBehaviour, IInstaller
|
||||
{
|
||||
[SerializeField] private MainMenuEnvironment _mainMenuEnvironment;
|
||||
|
||||
public void InstallBindings(ContainerBuilder containerBuilder)
|
||||
{
|
||||
containerBuilder.AddScoped(typeof(MainMenuEnvironment), typeof(CurrentSceneEnvironment));
|
||||
|
||||
containerBuilder.OnContainerBuilt += Initialize;
|
||||
}
|
||||
|
||||
private void Initialize(Container container)
|
||||
{
|
||||
MainMenuEnvironment env = (MainMenuEnvironment)container.Resolve<CurrentSceneEnvironment>();
|
||||
|
||||
env.TransitVariables(_mainMenuEnvironment);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 04145a046c584b66818ca25745652e66
|
||||
timeCreated: 1761743587
|
||||
@@ -7,10 +7,4 @@ namespace Code.Configs
|
||||
{
|
||||
public GameObject infrastructureUnitPrefab;
|
||||
}
|
||||
[CreateAssetMenu(menuName = "Config/Player", fileName = "PlayerConfig")]
|
||||
public class PlayerConfig : ScriptableObject
|
||||
{
|
||||
public Player playerPrefab;
|
||||
public int maxHealth;
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -2,7 +2,7 @@ using UnityEngine;
|
||||
|
||||
namespace Code.Scenes
|
||||
{
|
||||
public abstract class SceneEnvironment : MonoBehaviour
|
||||
public abstract class CurrentSceneEnvironment
|
||||
{
|
||||
|
||||
}
|
||||
File renamed without changes.
@@ -1,9 +1,17 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace Code.Scenes.SceneEnvironments
|
||||
{
|
||||
public class MainMenuEnvironment : SceneEnvironment
|
||||
[System.Serializable]
|
||||
public class MainMenuEnvironment : CurrentSceneEnvironment
|
||||
{
|
||||
public Transform CameraTarget;
|
||||
public Transform cameraTarget;
|
||||
public Transform cameraPosition;
|
||||
|
||||
public void TransitVariables(MainMenuEnvironment env)
|
||||
{
|
||||
cameraTarget = env.cameraTarget;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,5 @@ namespace Code.StaticData
|
||||
CameraConfig CameraConfig { get; }
|
||||
CharacterConfig CharacterConfig { get; }
|
||||
UIConfig UIConfig { get; }
|
||||
CharacterCameraConfig CharacterCameraConfig { get; }
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,6 @@ namespace Code.StaticData
|
||||
public CameraConfig CameraConfig { get; private set; }
|
||||
public CharacterConfig CharacterConfig { get; private set; }
|
||||
public UIConfig UIConfig { get; private set; }
|
||||
public CharacterCameraConfig CharacterCameraConfig { get; private set; }
|
||||
|
||||
public void Load()
|
||||
{
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace Code.UI
|
||||
{
|
||||
public class LoadingPanel : UIElement
|
||||
{
|
||||
[SerializeField] private Image _background;
|
||||
public void Hide()
|
||||
{
|
||||
gameObject.SetActive(false);
|
||||
_background.enabled = false;
|
||||
}
|
||||
public void Show()
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
_background.enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@ namespace Code.UI
|
||||
|
||||
public void SwitchPanelTo(UIPanel uiPanel)
|
||||
{
|
||||
Object.Destroy(CurrentPanel);
|
||||
if(CurrentPanel) Object.Destroy(CurrentPanel.gameObject);
|
||||
|
||||
CurrentPanel = Object.Instantiate(_uiPanelsPrefabs[(int)uiPanel], _canvas.transform);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user