代码拉取完成,页面将自动刷新
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using UnityEngine.SceneManagement;
using System.Linq;
using System;
public class MenuScene : MonoBehaviour
{
private PlayerData playerDara;
private PlayerData.SetingData setingData;
private GameObject RoundUi;
private GameObject DigitalSelection;
private GameObject RandomSeed;
private GameObject RandomWaveFuncSeed;
private GameObject RandomWaveFuncSeedWaitImage;
private GameObject RandomWaveFuncSeedTextObj;
private TextMeshProUGUI mainVolume;
private TextMeshProUGUI musicVolume;
private TextMeshProUGUI audioVolume;
// 输入框
private TextMeshProUGUI RandomSeedText;
private TextMeshProUGUI RandomWaveFuncSeedText;
// 按键Trans
private Transform ExitButtonTrans;
private Transform SetingButtonTrans;
private Transform RandomButtonTrans;
private Transform RandomWaveFunctionButtonTrans;
private Transform EmptyButtonTrans;
private Transform RandomButtonOKButtonTrans;
private Transform RandomWaveFunctionButtonOKButtonTrans;
private SoundManage soundManage;
private UIAnim uiAnim;
void Start()
{
// UI动画
uiAnim = new UIAnim(this);
// 加“?”是为了在当前场景测试
playerDara = GameObject.Find("_PlayerData")?.GetComponent<PlayerData>();
setingData = playerDara?.setingData ?? new PlayerData.SetingData();
// 音频
soundManage = GameObject.Find("SoundManager").GetComponent<SoundManage>();
soundManage.SetVolume(setingData.mainVolume,
setingData.musicVolume,
setingData.audioVolume);
soundManage.PlayMenuMusic();
#region 需要控制激活状态的组件
RoundUi = transform.Find("RoundUi").gameObject;
DigitalSelection = transform.Find("DigitalSelection").gameObject;
#endregion
#region 主界面
// 主界面按键
ExitButtonTrans = transform.Find("ExitButton");
ExitButtonTrans.GetComponent<Button>().onClick.AddListener(
() => { uiAnim.ButtonAnim(ExitButtonTrans); soundManage.PlayButton(); // 动画、声音
SceneManager.LoadScene(0); }
);
SetingButtonTrans = transform.Find("SetingButton");
SetingButtonTrans.GetComponent<Button>().onClick.AddListener(
() => { uiAnim.ButtonAnim(SetingButtonTrans); soundManage.PlayButton(); // 动画、声音
uiAnim.OpenWindow(DigitalSelection); RoundUi.SetActive(false); }
);
RandomButtonTrans = transform.Find("RandomButton");
RandomButtonTrans.GetComponent<Button>().onClick.AddListener(
() => { uiAnim.ButtonAnim(RandomButtonTrans); soundManage.PlayButton(); // 动画、声音
uiAnim.OpenWindow(RandomSeed); }
);
RandomWaveFunctionButtonTrans = transform.Find("RandomWaveFunctionButton");
RandomWaveFunctionButtonTrans.GetComponent<Button>().onClick.AddListener(
() => { uiAnim.ButtonAnim(RandomWaveFunctionButtonTrans); soundManage.PlayButton(); // 动画、声音
uiAnim.OpenWindow(RandomWaveFuncSeed); }
);
EmptyButtonTrans = transform.Find("EmptyButton");
EmptyButtonTrans.GetComponent<Button>().onClick.AddListener(
() => { uiAnim.ButtonAnim(EmptyButtonTrans); soundManage.PlayButton(); // 动画、声音
SudokuCreate.SetZeroSudoku(); SudokuCreate.printSudoku(); SceneManager.LoadScene(2); }
);
// 两个随机按键处理
RandomSeed = transform.Find("RandomButton").Find("RondamSeed").gameObject;
RandomWaveFuncSeed = transform.Find("RandomWaveFunctionButton").Find("RondamSeed").gameObject;
RandomWaveFuncSeedWaitImage = transform.Find("RandomWaveFunctionButton").Find("RondamSeed").Find("Input").Find("Image").gameObject;
RandomWaveFuncSeedTextObj = transform.Find("RandomWaveFunctionButton").Find("RondamSeed").Find("Input").Find("InputField (TMP)").gameObject;
RandomSeedText = transform.Find("RandomButton").Find("RondamSeed").Find("Input").
Find("InputField (TMP)").Find("Text Area").Find("Text").GetComponent<TextMeshProUGUI>();
RandomWaveFuncSeedText = transform.Find("RandomWaveFunctionButton").Find("RondamSeed").Find("Input").
Find("InputField (TMP)").Find("Text Area").Find("Text").GetComponent<TextMeshProUGUI>();
RandomButtonOKButtonTrans = transform.Find("RandomButton").Find("RondamSeed").Find("Input").Find("OKButton");
RandomButtonOKButtonTrans.GetComponent<Button>().onClick.AddListener(
() =>
{
uiAnim.ButtonAnim(RandomButtonOKButtonTrans);
soundManage.PlayButton();
int seed;
string text = RandomSeedText.text[0] == '-' ? "-" : "";
// Linq筛选数字,文本框输入带有一些额外的字符
foreach (string item in from c in RandomSeedText.text where Char.IsDigit(c) select c.ToString())
text += item;
SudokuCreate.TemplateRandomSudoku(int.TryParse(text, out seed) ? seed : -1);
print(text + "," + seed.ToString());
SudokuCreate.printSudoku();
SceneManager.LoadScene(2);
}
);
RandomWaveFunctionButtonOKButtonTrans = transform.Find("RandomWaveFunctionButton").Find("RondamSeed").Find("Input").Find("OKButton");
RandomWaveFunctionButtonOKButtonTrans.GetComponent<Button>().onClick.AddListener(
() =>
{
uiAnim.ButtonAnim(RandomWaveFunctionButtonOKButtonTrans);
soundManage.PlayButton();
int seed;
string text = RandomSeedText.text[0] == '-' ? "-" : "";
// Linq筛选数字,文本框输入带有一些额外的字符
foreach (string item in from c in RandomWaveFuncSeedText.text where Char.IsDigit(c) select c.ToString())
text += item;
SudokuCreate.WaveFunctionRandomSudoku(int.TryParse(text, out seed) ? seed : -1);
SudokuCreate.printSudoku();
SceneManager.LoadScene(2);
}
);
transform.Find("RandomButton").Find("RondamSeed").Find("BackButton").GetComponent<Button>().onClick.AddListener(
() => { soundManage.PlayButton(); uiAnim.CloseWindow(RandomSeed); }
);
transform.Find("RandomWaveFunctionButton").Find("RondamSeed").Find("BackButton").GetComponent<Button>().onClick.AddListener(
() => { soundManage.PlayButton(); uiAnim.CloseWindow(RandomWaveFuncSeed); }
);
#endregion
#region 关卡选项按键初始化
int i = 0;
foreach (Transform button in transform.Find("RoundUi").Find("Element"))
{
if (playerDara != null)
{
// 添加音效
button.GetComponent<Button>().onClick.AddListener(() => { soundManage.PlayButton(); });
// 添加玩家记录
if (playerDara.saveData.passCount[i] > 0)
{
button.GetComponent<Image>().color = new Color(255, 245, 180);
button.Find("Time").GetComponent<TextMeshProUGUI>().text =
Tool.TimeFormat(playerDara.saveData.passTime[i]);
}
}
i++;
}
#endregion
#region 设置面板
mainVolume = transform.Find("DigitalSelection").Find("Seting").Find("MainVolume").Find("Value").GetComponent<TextMeshProUGUI>();
musicVolume = transform.Find("DigitalSelection").Find("Seting").Find("MusicVolume").Find("Value").GetComponent<TextMeshProUGUI>();
audioVolume = transform.Find("DigitalSelection").Find("Seting").Find("AudioVolume").Find("Value").GetComponent<TextMeshProUGUI>();
// 设置界面按键
transform.Find("DigitalSelection").Find("BackButton").GetComponent<Button>().onClick.AddListener(
() => {
soundManage.PlayButton();
uiAnim.CloseWindow(DigitalSelection, 0.05f);
RoundUi.SetActive(true);
playerDara?.SaveSeting();
}
);
transform.Find("DigitalSelection").Find("Seting").Find("QuitButton").GetComponent<Button>().onClick.AddListener(
() => {
soundManage.PlayButton();
playerDara?.SaveSeting();
#if UNITY_EDITOR // 编辑器中退出游戏
UnityEditor.EditorApplication.isPlaying = false;
#else // 应用程序中退出游戏
UnityEngine.Application.Quit();
#endif
}
);
// 滑块初始化
var MainVolume = transform.Find("DigitalSelection").Find("Seting").Find("MainVolume").GetComponent<Slider>();
var MusicVolume = transform.Find("DigitalSelection").Find("Seting").Find("MusicVolume").GetComponent<Slider>();
var AudioVolume = transform.Find("DigitalSelection").Find("Seting").Find("AudioVolume").GetComponent<Slider>();
MainVolume.value = setingData.mainVolume;
MusicVolume.value = setingData.musicVolume;
AudioVolume.value = setingData.audioVolume;
mainVolume.text = ((int)(setingData.mainVolume * 100)).ToString();
musicVolume.text = ((int)(setingData.musicVolume * 100)).ToString();
audioVolume.text = ((int)(setingData.audioVolume * 100)).ToString();
// 滑块响应
MainVolume.onValueChanged.AddListener(
p => { mainVolume.text = ((int)(p * 100)).ToString(); setingData.mainVolume = p; }
);
MusicVolume.onValueChanged.AddListener(
p => { musicVolume.text = ((int)(p * 100)).ToString(); setingData.musicVolume = p; }
);
AudioVolume.onValueChanged.AddListener(
p => { audioVolume.text = ((int)(p * 100)).ToString(); setingData.audioVolume = p; }
);
#endregion
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。