创建开始菜单面板和设置面板

- 添加 MenuForm 与 SettingForm
- 为带左右按钮的水平选择界面添加HorizonSelectGroup预制件。
- 添加游戏核心可配置项
This commit is contained in:
SepComet
2026-02-10 15:10:31 +08:00
parent 7ac832f74b
commit 13583354f9
111 changed files with 11247 additions and 755 deletions
@@ -0,0 +1,27 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace UI
{
/// <summary>
/// Open data for MVC-based GameplayA form.
/// </summary>
public sealed class CombineFormContext : UIContext
{
/// <summary>
/// Slot definitions. Position and order are provided externally.
/// </summary>
public List<CombineSlotContext> Slots;
/// <summary>
/// Optional part definitions. When null/empty, parts are derived from slots.
/// </summary>
public List<CombinePartContext> Parts;
/// <summary>
/// Auto start puzzle after runtime nodes are generated.
/// </summary>
public bool AutoStart = true;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6d8c5c616c000704fb2d7d94a8d22c84
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,21 @@
using System;
using Definition.Enum;
using UnityEngine;
namespace UI
{
/// <summary>
/// Runtime part data passed from external system.
/// </summary>
[Serializable]
public sealed class CombinePartContext
{
public CombinePartType PartType = CombinePartType.Dou;
public string PartDisplayName = "Dou";
public string MechanicsExplanation = string.Empty;
public bool LockAfterPlaced = true;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 82f303529f5b4b040845223f97a66cfa
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,28 @@
using System;
using Definition.Enum;
using UnityEngine;
namespace UI
{
/// <summary>
/// Runtime slot data passed from external system.
/// </summary>
[Serializable]
public sealed class CombineSlotContext
{
public CombinePartType RequiredPartType = CombinePartType.Dou;
public int BuildOrder = 0;
public bool RequireStrictOrder = true;
public Vector2 AnchoredPosition = Vector2.zero;
public Vector2 SizeDelta = new Vector2(120f, 120f);
public string MechanicsExplanation = string.Empty;
public string MismatchHint = string.Empty;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 03894567063ea7d42a417545043e32c6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,26 @@
using Definition.Enum;
namespace UI
{
public class DialogFormContext : UIContext
{
public float PlayingSpeed = 1f;
public int ChapterId = 0;
public int DialogId = 0;
public string DialogTitle = string.Empty;
public DialogFormMode DialogUIMode = DialogFormMode.None;
public int CurrentLineId = 0;
public string SpeakerId = string.Empty;
public string SpeakerName = string.Empty;
public ExpressionType Expression = ExpressionType.None;
public int Direction = 0;
public string Text = string.Empty;
public EmphasisType Emphasis = EmphasisType.None;
public int LineIndex = -1;
public int TotalLines = 0;
public bool IsLastLine = false;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 38341401b5804de47bb0a9a1c79d20d8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,7 @@
namespace UI
{
public class MenuFormContext : UIContext
{
public bool HasGameData = false;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d8cdd22c948028246b9d1d7afd80f08c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,13 @@
using System.Collections;
using System.Collections.Generic;
using Definition.DataStruct;
using UnityEngine;
namespace UI
{
public class SettingFormContext : UIContext
{
public SettingFormController Controller;
public GameSetting Setting;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c2754dbcd65873f4b9d3f579c12cef58
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,6 @@
namespace UI
{
public class UIContext
{
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 960a1d4c81cf9824682c47b744bba74c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: