取消使用StartSceneData来跨Scene传输数据,改用CommonParameterContainer Singleton来统一保存所需数据。

This commit is contained in:
2023-11-16 01:03:54 +09:00
parent 726ce450ab
commit c2eaa8cbfc
15 changed files with 179 additions and 210 deletions
+1 -18
View File
@@ -1,4 +1,3 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
@@ -12,23 +11,7 @@ public class LevelProbabilityPanel : MonoBehaviour
private void Start()
{
if (startSceneData == null)
{
try
{
// try get start scene data
scenePrefabSet = GameObject.Find("StartSceneDataTransfer").GetComponent<StartSeneData>().scenePrefabSet;
}
catch
{
// if not found, find dummy StartSeneData
scenePrefabSet = GameObject.Find("StartSceneDataTransferDummy").GetComponent<StartSeneData>().scenePrefabSet;
}
}
else
{
scenePrefabSet = startSceneData.GetComponent<StartSeneData>().scenePrefabSet;
}
scenePrefabSet = CommonParameterContainer.Instance.scenePrefabSet;
for (int i = 0; i < scenePrefabSet.targetLevels.Length; i++)
{
Targets nowTarget = scenePrefabSet.targets[i];
@@ -11,7 +11,7 @@ public class StartMenuProbabilityPanel : MonoBehaviour
private void Start()
{
scenePrefabSet = startSceneData.GetComponent<StartSeneData>().scenePrefabSet;
scenePrefabSet = CommonParameterContainer.Instance.scenePrefabSet;
for (int i = 0; i < scenePrefabSet.targetLevels.Length; i++)
{
Targets nowTarget = scenePrefabSet.targets[i];
+14 -15
View File
@@ -7,24 +7,23 @@ public class StartUIManager : MonoBehaviour
{
[SerializeField] private int waitTimeLimit = 45;
[SerializeField] private GameObject sceneLoaderObj;
[SerializeField] private GameObject startSceneDataObj;
[SerializeField] private GameObject targetLevelProbabilityPanelOBJ;
[SerializeField] private TextMeshProUGUI messageTextObj;
[SerializeField] private TextMeshProUGUI waitTimeTextObj;
private SceneLoader sceneLoader;
private StartSeneData startSceneData;
private ButtonActivateColorChanger buttonActivateColorChanger;
private StartMenuProbabilityPanel startMenuProbabilityPanel;
private CommonParameterContainer commonParameterContainer;
private float startTime;
private float nowTime;
// Start is called before the first frame update
void Start()
{
sceneLoader = sceneLoaderObj.GetComponent<SceneLoader>();
startSceneData = startSceneDataObj.GetComponent<StartSeneData>();
buttonActivateColorChanger = GetComponent<ButtonActivateColorChanger>();
startMenuProbabilityPanel = targetLevelProbabilityPanelOBJ.GetComponent<StartMenuProbabilityPanel>();
commonParameterContainer = CommonParameterContainer.Instance;
messageTextObj.text = "";
buttonActivateColorChanger.InitializeAllButtonColor();
}
@@ -44,7 +43,7 @@ public class StartUIManager : MonoBehaviour
// while StartButton-Play Pressed
public void OnPlayButtonPressed()
{
startSceneData.gameMode = 1;
commonParameterContainer.gameMode = 1;
sceneLoader.LoadGameScene(SceneLoader.SceneType.Play);
messageTextObj.text = "Loading Play Scene...";
}
@@ -52,30 +51,30 @@ public class StartUIManager : MonoBehaviour
public void OnAttackTrainButtonPressed()
{
// while Train-Attack-Button Pressed
startSceneData.attackProb = 1f;
commonParameterContainer.attackProb = 1f;
ApplicateProbabilityToData();
LoadTrainScene();
}
public void OnGotoTrainButtonPressed()
{
// while Train-Goto-Button Pressed
startSceneData.gotoProb = 1f;
commonParameterContainer.gotoProb = 1f;
ApplicateProbabilityToData();
LoadTrainScene();
}
public void OnFreeTrainButtonPressed()
{
// while Train-Free-Button Pressed
startSceneData.attackProb = 0f;
startSceneData.gotoProb = 0f;
startSceneData.defenceProb = 0f;
commonParameterContainer.attackProb = 0f;
commonParameterContainer.gotoProb = 0f;
commonParameterContainer.defenceProb = 0f;
LoadTrainScene();
}
public void OnMixTrainButtonPressed()
{
// while Train-Mix-Button Pressed
startSceneData.attackProb = 0.333f;
startSceneData.gotoProb = 0.333f;
commonParameterContainer.attackProb = 0.333f;
commonParameterContainer.gotoProb = 0.333f;
LoadTrainScene();
}
private void LoadTrainScene()
@@ -87,13 +86,13 @@ public class StartUIManager : MonoBehaviour
private void ApplicateProbabilityToData()
{
for (int i = 0; i < startSceneData.scenePrefabSet.targetLevels[0].levelSize; i++)
for (int i = 0; i < commonParameterContainer.scenePrefabSet.targetLevels[0].levelSize; i++)
{
startSceneData.gotoLevelProbs.Add(startMenuProbabilityPanel.targetLevelProbabilityPanel[0].singleLevelPanels[i].ProbabilityValue);
commonParameterContainer.gotoLevelProbs.Add(startMenuProbabilityPanel.targetLevelProbabilityPanel[0].singleLevelPanels[i].ProbabilityValue);
}
for(int i = 0; i < startSceneData.scenePrefabSet.targetLevels[1].levelSize; i++)
for(int i = 0; i < commonParameterContainer.scenePrefabSet.targetLevels[1].levelSize; i++)
{
startSceneData.attackLevelProbs.Add(startMenuProbabilityPanel.targetLevelProbabilityPanel[1].singleLevelPanels[i].ProbabilityValue);
commonParameterContainer.attackLevelProbs.Add(startMenuProbabilityPanel.targetLevelProbabilityPanel[1].singleLevelPanels[i].ProbabilityValue);
}
}
}