Observation显示UI修正对应新的Rotation 修正targetState长度错误,优化TargetController的Play模式 修改TargetPosition坐标从TargetBlock坐标为Firebases坐标 修改45s超时动作从加载train scene为退出游戏
109 lines
3.7 KiB
C#
109 lines
3.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
|
|
public class StartUIManager : MonoBehaviour
|
|
{
|
|
[SerializeField] private int waitTimeLimit = 45;
|
|
[SerializeField] private GameObject sceneLoaderObj;
|
|
[SerializeField] private GameObject targetLevelProbabilityPanelOBJ;
|
|
[SerializeField] private TextMeshProUGUI messageTextObj;
|
|
[SerializeField] private TextMeshProUGUI waitTimeTextObj;
|
|
|
|
private SceneLoader sceneLoader;
|
|
private ButtonActivateColorChanger buttonActivateColorChanger;
|
|
private LevelProbabilityPanel startMenuProbabilityPanel;
|
|
private CommonParameterContainer commonParameterContainer;
|
|
private float startTime;
|
|
private float nowTime;
|
|
// Start is called before the first frame update
|
|
void Start()
|
|
{
|
|
sceneLoader = sceneLoaderObj.GetComponent<SceneLoader>();
|
|
buttonActivateColorChanger = GetComponent<ButtonActivateColorChanger>();
|
|
startMenuProbabilityPanel = targetLevelProbabilityPanelOBJ.GetComponent<LevelProbabilityPanel>();
|
|
commonParameterContainer = CommonParameterContainer.Instance;
|
|
messageTextObj.text = "";
|
|
buttonActivateColorChanger.InitializeAllButtonColor();
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
// update time limit left;
|
|
float leftTime = waitTimeLimit - Time.realtimeSinceStartup;
|
|
waitTimeTextObj.text = ((int)Math.Round(leftTime)).ToString();
|
|
if (leftTime <= 1)
|
|
{
|
|
// if time limit is over, end game
|
|
# if UNITY_EDITOR
|
|
UnityEditor.EditorApplication.isPlaying = false;
|
|
#else
|
|
StopGame();
|
|
#endif
|
|
}
|
|
}
|
|
|
|
// while StartButton-Play Pressed
|
|
public void OnPlayButtonPressed()
|
|
{
|
|
commonParameterContainer.gameMode = 1;
|
|
sceneLoader.LoadGameScene(SceneLoader.SceneType.Play);
|
|
messageTextObj.text = "Loading Play Scene...";
|
|
}
|
|
|
|
public void OnAttackTrainButtonPressed()
|
|
{
|
|
// while Train-Attack-Button Pressed
|
|
commonParameterContainer.attackProb = 1f;
|
|
ApplicateProbabilityToData();
|
|
LoadTrainScene();
|
|
}
|
|
public void OnGotoTrainButtonPressed()
|
|
{
|
|
// while Train-Goto-Button Pressed
|
|
commonParameterContainer.gotoProb = 1f;
|
|
ApplicateProbabilityToData();
|
|
LoadTrainScene();
|
|
}
|
|
public void OnFreeTrainButtonPressed()
|
|
{
|
|
// while Train-Free-Button Pressed
|
|
commonParameterContainer.attackProb = 0f;
|
|
commonParameterContainer.gotoProb = 0f;
|
|
commonParameterContainer.defenceProb = 0f;
|
|
LoadTrainScene();
|
|
}
|
|
public void OnMixTrainButtonPressed()
|
|
{
|
|
// while Train-Mix-Button Pressed
|
|
commonParameterContainer.attackProb = 0.333f;
|
|
commonParameterContainer.gotoProb = 0.333f;
|
|
LoadTrainScene();
|
|
}
|
|
private void LoadTrainScene()
|
|
{
|
|
// load Train Scene
|
|
sceneLoader.LoadGameScene(SceneLoader.SceneType.Train);
|
|
messageTextObj.text = "Loading Train Scene...";
|
|
}
|
|
|
|
private void ApplicateProbabilityToData()
|
|
{
|
|
for(int targetIndex = 0;targetIndex < commonParameterContainer.scenePrefabSet.targetLevels.Length; targetIndex++)
|
|
{
|
|
Targets nowTarget = commonParameterContainer.scenePrefabSet.targets[targetIndex];
|
|
for(int levelIndex = 0; levelIndex < commonParameterContainer.scenePrefabSet.targetLevels[targetIndex].levelSize; levelIndex++)
|
|
{
|
|
commonParameterContainer.levelProbs[nowTarget] = startMenuProbabilityPanel.targetLevelProbabilityPanel[targetIndex].GetTargetProb();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void StopGame()
|
|
{
|
|
// stop game,end program
|
|
Debug.Log("Game End");
|
|
Application.Quit();
|
|
}
|
|
} |