Интерфейс прокачан

This commit is contained in:
ThomasCharester committed 2025-10-29 20:06:37 +03:00
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;
}
}
@@ -2,7 +2,7 @@ using UnityEngine;
namespace Code.Scenes
{
public abstract class SceneEnvironment : MonoBehaviour
public abstract class CurrentSceneEnvironment
{
}
@@ -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;
}
}
}
+1 -1
View File
@@ -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);
}