Рефакторинг сцены главного меню.
1) Реогранизована иерархия 2) Удалены неиспользуемые элементы 3) Список уровней формируется в GameManagment списком элементов LevelModel
This commit is contained in:
parent
f18e8ffe51
commit
144aeada89
8
Assets/Scenes/Levels.meta
Normal file
8
Assets/Scenes/Levels.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ac12c3e8b1ced1d43829c4a9be9d1200
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
17
Assets/Scenes/Levels/Level 1.asset
Normal file
17
Assets/Scenes/Levels/Level 1.asset
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9391feb4ca90a65468a8a388294bc5b1, type: 3}
|
||||||
|
m_Name: Level 1
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
SceneName: Level_1
|
||||||
|
Name: MATS
|
||||||
|
MenuSprite: {fileID: 21300000, guid: 426478b073313244bbe84d3ec1cafa64, type: 3}
|
8
Assets/Scenes/Levels/Level 1.asset.meta
Normal file
8
Assets/Scenes/Levels/Level 1.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d2b1e56b926cd5c47bf02a7b708b6290
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
17
Assets/Scenes/Levels/Level 2.asset
Normal file
17
Assets/Scenes/Levels/Level 2.asset
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9391feb4ca90a65468a8a388294bc5b1, type: 3}
|
||||||
|
m_Name: Level 2
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
SceneName: Level_2
|
||||||
|
Name: EMIR
|
||||||
|
MenuSprite: {fileID: 21300000, guid: 29916103981328e438052adcf04f2737, type: 3}
|
8
Assets/Scenes/Levels/Level 2.asset.meta
Normal file
8
Assets/Scenes/Levels/Level 2.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6cef405d05be36f489f8d16e3df67868
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
9
Assets/Scenes/Levels/LevelModel.cs
Normal file
9
Assets/Scenes/Levels/LevelModel.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[CreateAssetMenu(fileName = "New Level", menuName = "Levels/New Level")]
|
||||||
|
public class LevelModel : ScriptableObject
|
||||||
|
{
|
||||||
|
public string SceneName;
|
||||||
|
public string Name;
|
||||||
|
public Sprite MenuSprite;
|
||||||
|
}
|
11
Assets/Scenes/Levels/LevelModel.cs.meta
Normal file
11
Assets/Scenes/Levels/LevelModel.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9391feb4ca90a65468a8a388294bc5b1
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
17
Assets/Scenes/Levels/TestLevel.asset
Normal file
17
Assets/Scenes/Levels/TestLevel.asset
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 9391feb4ca90a65468a8a388294bc5b1, type: 3}
|
||||||
|
m_Name: TestLevel
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
SceneName: TestLevel
|
||||||
|
Name: TEST
|
||||||
|
MenuSprite: {fileID: 21300000, guid: 65b81d2bb7d94e646a4a3ea517c9aea2, type: 3}
|
8
Assets/Scenes/Levels/TestLevel.asset.meta
Normal file
8
Assets/Scenes/Levels/TestLevel.asset.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 245ed2714d05f1e4c95aedea30762644
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
File diff suppressed because it is too large
Load Diff
@ -1,61 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
using TMPro;
|
|
||||||
|
|
||||||
public class ChooseLevelButtonsTasks : MonoBehaviour
|
|
||||||
{
|
|
||||||
[SerializeField] private Image menuLevelImg;
|
|
||||||
[SerializeField] private List<Sprite> menuSprites;
|
|
||||||
[SerializeField] private TextMeshProUGUI gameText;
|
|
||||||
|
|
||||||
[SerializeField] private GameObject btnNext, btnPrev;
|
|
||||||
|
|
||||||
private List<string> menuText = new List<string> { "MATS", "EMIR" };
|
|
||||||
|
|
||||||
private int levelsAmount = 2;
|
|
||||||
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
btnNext.SetActive(true);
|
|
||||||
btnPrev.SetActive(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnPrevBtnClick()
|
|
||||||
{
|
|
||||||
GameData.currentChosenLevel--;
|
|
||||||
if (GameData.currentChosenLevel < 1)
|
|
||||||
{
|
|
||||||
GameData.currentChosenLevel = levelsAmount;
|
|
||||||
}
|
|
||||||
|
|
||||||
menuLevelImg.sprite = menuSprites[GameData.currentChosenLevel - 1];
|
|
||||||
gameText.text = menuText[GameData.currentChosenLevel - 1];
|
|
||||||
|
|
||||||
btnNext.SetActive(true);
|
|
||||||
btnPrev.SetActive(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnNextBtnClick()
|
|
||||||
{
|
|
||||||
GameData.currentChosenLevel++;
|
|
||||||
if (GameData.currentChosenLevel > levelsAmount)
|
|
||||||
{
|
|
||||||
GameData.currentChosenLevel = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
menuLevelImg.sprite = menuSprites[GameData.currentChosenLevel - 1];
|
|
||||||
gameText.text = menuText[GameData.currentChosenLevel - 1];
|
|
||||||
|
|
||||||
btnNext.SetActive(false);
|
|
||||||
btnPrev.SetActive(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnTestBtnClick()
|
|
||||||
{
|
|
||||||
SceneLoader.LoadScene(3);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
64
Assets/Scripts/LevelChooser.cs
Normal file
64
Assets/Scripts/LevelChooser.cs
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using TMPro;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
public class LevelChooser : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private List<LevelModel> _levels;
|
||||||
|
[SerializeField] private Image _levelImage;
|
||||||
|
[SerializeField] private TextMeshProUGUI _levelNameText;
|
||||||
|
|
||||||
|
[SerializeField] private GameObject _nextButton;
|
||||||
|
[SerializeField] private GameObject _prevButton;
|
||||||
|
|
||||||
|
public LevelModel CurrentLevel => _levels[_currentLevelIndex];
|
||||||
|
|
||||||
|
private int _currentLevelIndex;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
_currentLevelIndex = 0;
|
||||||
|
UpdateUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowPreviousLevel()
|
||||||
|
{
|
||||||
|
_currentLevelIndex--;
|
||||||
|
if (_currentLevelIndex < 0)
|
||||||
|
{
|
||||||
|
_currentLevelIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowNextLevel()
|
||||||
|
{
|
||||||
|
_currentLevelIndex++;
|
||||||
|
if (_currentLevelIndex > _levels.Count - 1)
|
||||||
|
{
|
||||||
|
_currentLevelIndex = _levels.Count - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateUI();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateUI()
|
||||||
|
{
|
||||||
|
_levelImage.sprite = CurrentLevel.MenuSprite;
|
||||||
|
_levelNameText.text = CurrentLevel.Name;
|
||||||
|
|
||||||
|
UpdateButtonsVisibility();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateButtonsVisibility()
|
||||||
|
{
|
||||||
|
bool isFirstLevel = _currentLevelIndex == 0;
|
||||||
|
bool isLastLevel = _currentLevelIndex == _levels.Count - 1;
|
||||||
|
bool hasMultipleLevels = _levels.Count > 1;
|
||||||
|
|
||||||
|
_prevButton.SetActive(hasMultipleLevels && !isFirstLevel);
|
||||||
|
_nextButton.SetActive(hasMultipleLevels && !isLastLevel);
|
||||||
|
}
|
||||||
|
}
|
17
Assets/Scripts/LevelLauncher.cs
Normal file
17
Assets/Scripts/LevelLauncher.cs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
[RequireComponent(typeof(LevelChooser))]
|
||||||
|
public class LevelLauncher : MonoBehaviour
|
||||||
|
{
|
||||||
|
private LevelChooser _levelChooser;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
_levelChooser = GetComponent<LevelChooser>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LaunchLevel()
|
||||||
|
{
|
||||||
|
SceneLoader.LoadScene(_levelChooser.CurrentLevel.SceneName);
|
||||||
|
}
|
||||||
|
}
|
@ -1,23 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
|
|
||||||
public class PlayBtnClick : MonoBehaviour
|
|
||||||
{
|
|
||||||
private Button btn;
|
|
||||||
|
|
||||||
private void Start()
|
|
||||||
{
|
|
||||||
btn = GetComponent<Button>();
|
|
||||||
|
|
||||||
btn.onClick.AddListener(BtnTask);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void BtnTask()
|
|
||||||
{
|
|
||||||
//SceneLoader.LoadNextScene();
|
|
||||||
SceneLoader.LoadScene(GameData.currentChosenLevel);
|
|
||||||
}
|
|
||||||
}
|
|
@ -19,4 +19,8 @@ public class SceneLoader : MonoBehaviour
|
|||||||
{
|
{
|
||||||
SceneManager.LoadScene(sceneIndex);
|
SceneManager.LoadScene(sceneIndex);
|
||||||
}
|
}
|
||||||
|
public static void LoadScene(string sceneName)
|
||||||
|
{
|
||||||
|
SceneManager.LoadScene(sceneName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user