1 Star 2 Fork 1

SteveSimon999/Unity 数独,但是波函数坍缩算法

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
MenuScene.cs 10.18 KB
一键复制 编辑 原始数据 按行查看 历史
SteveSimon999 提交于 2023-04-19 18:22 +08:00 . V0.2.0
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
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/stevesimon999/unity-sudoku-of-wave-function-collapse.git
git@gitee.com:stevesimon999/unity-sudoku-of-wave-function-collapse.git
stevesimon999
unity-sudoku-of-wave-function-collapse
Unity 数独,但是波函数坍缩算法
master

搜索帮助