Skip to content

GameUI · 其他 ​

ColorBrush 仅客户端 ​

命名空间 GameUI.Brush

csharp
public abstract class ColorBrush

表示颜色画刷的基类。

构造函数 ​

ColorBrush 仅客户端 ​

csharp
protected ColorBrush()

方法 ​

ToRgbaHex 仅客户端 ​

csharp
public abstract string ToRgbaHex()

转换为 RGBA 十六进制字符串。

返回: RGBA 格式的颜色字符串。

implicit operator 仅客户端 ​

csharp
public static ColorBrush implicit operator(Color color)

隐式转换 Color 为 ColorBrush(SolidColorBrush)。

  • color — 颜色值。

GradientBrush 仅客户端 ​

命名空间 GameUI.Brush

csharp
public class GradientBrush : ColorBrush

表示渐变色画刷。

构造函数 ​

GradientBrush 仅客户端 ​

csharp
public GradientBrush()

属性 ​

TopLeft 仅客户端 ​

csharp
public Color TopLeft { get; set; }

获取或设置左上角颜色。

TopRight 仅客户端 ​

csharp
public Color TopRight { get; set; }

获取或设置右上角颜色。

BottomLeft 仅客户端 ​

csharp
public Color BottomLeft { get; set; }

获取或设置左下角颜色。

BottomRight 仅客户端 ​

csharp
public Color BottomRight { get; set; }

获取或设置右下角颜色。

方法 ​

ToRgbaHex 仅客户端 ​

csharp
public override string ToRgbaHex()

SolidColorBrush 仅客户端 ​

命名空间 GameUI.Brush

csharp
public class SolidColorBrush : ColorBrush

表示单色画刷。

构造函数 ​

SolidColorBrush 仅客户端 ​

csharp
public SolidColorBrush(Color color)

表示单色画刷。

属性 ​

Color 仅客户端 ​

csharp
public Color Color { get; set; }

获取或设置画刷的颜色。

方法 ​

implicit operator 仅客户端 ​

csharp
public static SolidColorBrush implicit operator(Color color)

隐式转换 Color 为 SolidColorBrush。

  • color — 颜色值。

implicit operator 仅客户端 ​

csharp
public static Color implicit operator(SolidColorBrush brush)

ToRgbaHex 仅客户端 ​

csharp
public override string ToRgbaHex()

ToString 仅客户端 ​

csharp
public override string? ToString()

GameDataGameUI 仅客户端 ​

命名空间 GameUI.Data

csharp
public class GameDataGameUI : GameDataCategory<GameDataGameUI>, IGameDataGameUI, IGameData<IGameDataGameUI>, IGameData, IGameDataCategory<GameDataGameUI>, IGameData<GameDataGameUI>

构造函数 ​

GameDataGameUI 仅客户端 ​

csharp
public GameDataGameUI(GameLink<GameDataGameUI, GameDataGameUI> link)

GameDataGameUI 仅客户端 ​

csharp
public GameDataGameUI(IGameLink<GameDataGameUI> link)

属性 ​

UseTopLeftContentAlignmentDefaults 仅客户端 ​

csharp
public bool UseTopLeftContentAlignmentDefaults { get; set; }

是否让新创建的控件默认使用左上内容对齐。

备注

关闭时保留历史行为:HorizontalContentAlignment 与 VerticalContentAlignment 默认为 Center。开启后,新创建控件的对应默认值 改为 Left 与 Top,更接近常见 UI 布局的起始位置。 此设置不会修改已创建控件,不会覆盖控件或模板中的显式对齐值,也不会改变 PositionType;需要相对偏移或绝对定位时仍应明确选择对应定位方式。 旧项目缺少此字段时保持关闭,以避免现有界面整体移位。

ShowDefaultLoading 仅客户端 ​

csharp
public bool ShowDefaultLoading { get; set; }

是否在游戏启动时显示框架默认 Loading 界面。

备注

关闭后框架不会自动创建启动 Loading,项目仍可自行显示其他加载界面。

DefaultLoadingUI 仅客户端 ​

csharp
public IGameLink<GameDataLoadingUI>? DefaultLoadingUI { get; set; }

游戏启动时使用的默认 Loading 界面配置。

备注

未配置时使用 GameDataLoadingUI 的兼容默认值,以保持旧项目行为。

DesignResolutionWidth 仅客户端 ​

csharp
public int DesignResolutionWidth { get; set; }

设计分辨率宽度(横屏时的宽)。与 DesignResolutionHeight 一起决定 UI 坐标系的基准尺寸。

DesignResolutionHeight 仅客户端 ​

csharp
public int DesignResolutionHeight { get; set; }

设计分辨率高度(横屏时的高)。与 DesignResolutionWidth 一起决定 UI 坐标系的基准尺寸。

ScaleMode 仅客户端 ​

csharp
public ScaleMode ScaleMode { get; set; }

UI 缩放策略。决定设计分辨率如何映射到物理屏幕。 默认 Contain:保证设计区域完整可见。

DefaultUI 仅客户端 ​

csharp
public List<IGameLink<GameDataControl>>? DefaultUI { get; set; }

Default UI that will be created when the current game mode is initiated.

StandardUIRenderingOrder 仅客户端 ​

csharp
public List<StandardUIType> StandardUIRenderingOrder { get; set; }

标准UI类型的渲染层级顺序配置 按照从底层到顶层的顺序排列,数组中靠前的元素渲染层级越低(越靠后),靠后的元素渲染层级越高(越靠前)

备注

此配置定义了各种标准UI类型的相对渲染顺序。配合 StandardUIBaseZIndex 和 StandardUIZIndexStep 可以计算出每个UI类型的具体ZIndex值。 计算公式:ZIndex = BaseZIndex + (在数组中的索引 * ZIndexStep)

StandardUIBaseZIndex 仅客户端 ​

csharp
public int StandardUIBaseZIndex { get; set; }

标准UI类型的起始ZIndex值(基础优先级)

备注

这是 StandardUIRenderingOrder 中第一个UI类型的ZIndex值。 其他UI类型的ZIndex将基于此值和步长进行递增计算。 建议设置为较大的值(如1000),为非标准UI预留足够的层级空间。

StandardUIZIndexStep 仅客户端 ​

csharp
public int StandardUIZIndexStep { get; set; }

标准UI类型之间的ZIndex步长(优先级间隔)

备注

定义了 StandardUIRenderingOrder 中相邻两个UI类型之间的ZIndex差值。 较大的步长值可以为同类型UI的细分层级预留更多空间。 例如:步长为100时,同一UI类型内的不同面板可以使用1-99的相对偏移。

方法 ​

GetStandardUIZIndex 仅客户端 ​

csharp
public int? GetStandardUIZIndex(StandardUIType uiType)

根据标准UI类型计算其ZIndex值

  • uiType — 标准UI类型

返回: 计算得出的ZIndex值,如果UI类型不在渲染顺序中则返回null

备注

计算公式:ZIndex = StandardUIBaseZIndex + (在 StandardUIRenderingOrder 中的索引 * StandardUIZIndexStep)

CreateDefaultUI 仅客户端 ​

csharp
public List<GameUI.Control.Control>? CreateDefaultUI()

GameDataLoadingUI 仅客户端 ​

命名空间 GameUI.Data

csharp
public class GameDataLoadingUI : GameDataCategory<GameDataLoadingUI>, IGameDataCategory<GameDataLoadingUI>, IGameData<GameDataLoadingUI>, IGameData

Loading 界面的数据配置。

备注

默认值保持与历史内置 Loading 界面一致。项目可以在 GameData 中继承并覆盖任意样式字段, 再通过 DefaultLoadingUI 选择启动时使用的配置。

构造函数 ​

GameDataLoadingUI 仅客户端 ​

csharp
public GameDataLoadingUI(GameLink<GameDataLoadingUI, GameDataLoadingUI> link)

GameDataLoadingUI 仅客户端 ​

csharp
public GameDataLoadingUI(IGameLink<GameDataLoadingUI> link)

属性 ​

DefaultLoadingMessage 仅客户端 ​

csharp
public string DefaultLoadingMessage { get; set; }

默认加载提示文本。

BackgroundColor 仅客户端 ​

csharp
public Color BackgroundColor { get; set; }

全屏背景颜色。

BackgroundCornerRadius 仅客户端 ​

csharp
public float BackgroundCornerRadius { get; set; }

全屏背景圆角。

BackgroundLayout 仅客户端 ​

csharp
public Layout BackgroundLayout { get; set; }

全屏背景布局。

BrandWordmarkImage 仅客户端 ​

csharp
public string? BrandWordmarkImage { get; set; }

品牌字标图片。设置为空时不创建字标。

BrandWordmarkSourceWidth 仅客户端 ​

csharp
public int BrandWordmarkSourceWidth { get; set; }

品牌字标源图片单帧宽度。

BrandWordmarkSourceHeight 仅客户端 ​

csharp
public int BrandWordmarkSourceHeight { get; set; }

品牌字标源图片单帧高度。

BrandWordmarkLayout 仅客户端 ​

csharp
public Layout BrandWordmarkLayout { get; set; }

品牌字标布局。

BrandSubtitle 仅客户端 ​

csharp
public string? BrandSubtitle { get; set; }

底部品牌说明。设置为空时不创建说明文本。

BrandSubtitleFontSize 仅客户端 ​

csharp
public float BrandSubtitleFontSize { get; set; }

底部品牌说明字号。

BrandSubtitleTextColor 仅客户端 ​

csharp
public Color BrandSubtitleTextColor { get; set; }

底部品牌说明颜色。

BrandSubtitleLayout 仅客户端 ​

csharp
public Layout BrandSubtitleLayout { get; set; }

底部品牌说明布局。

LoadingTextFontSize 仅客户端 ​

csharp
public float LoadingTextFontSize { get; set; }

加载提示字号。

LoadingTextColor 仅客户端 ​

csharp
public Color LoadingTextColor { get; set; }

加载提示颜色。

LoadingTextLayout 仅客户端 ​

csharp
public Layout LoadingTextLayout { get; set; }

加载提示布局。

ProgressBarColor 仅客户端 ​

csharp
public Color ProgressBarColor { get; set; }

进度条颜色。

ProgressBarCornerRadius 仅客户端 ​

csharp
public float ProgressBarCornerRadius { get; set; }

进度条圆角。

ProgressBarLayout 仅客户端 ​

csharp
public Layout ProgressBarLayout { get; set; }

进度条布局。

ProgressTextFontSize 仅客户端 ​

csharp
public float ProgressTextFontSize { get; set; }

进度文本字号。

ProgressTextColor 仅客户端 ​

csharp
public Color ProgressTextColor { get; set; }

进度文本颜色。

ProgressTextLayout 仅客户端 ​

csharp
public Layout ProgressTextLayout { get; set; }

进度文本布局。

CancelButtonText 仅客户端 ​

csharp
public string? CancelButtonText { get; set; }

取消按钮文本。设置为空时不创建取消按钮。

CancelButtonColor 仅客户端 ​

csharp
public Color CancelButtonColor { get; set; }

取消按钮背景颜色。

CancelButtonCornerRadius 仅客户端 ​

csharp
public float CancelButtonCornerRadius { get; set; }

取消按钮圆角。

CancelButtonLayout 仅客户端 ​

csharp
public Layout CancelButtonLayout { get; set; }

取消按钮布局。

FailedTextColor 仅客户端 ​

csharp
public Color FailedTextColor { get; set; }

加载失败时的文本颜色。

CompleteAutoHideDelay 仅客户端 ​

csharp
public TimeSpan CompleteAutoHideDelay { get; set; }

加载完成后自动隐藏的延迟。

FailedAutoHideDelay 仅客户端 ​

csharp
public TimeSpan FailedAutoHideDelay { get; set; }

加载失败后自动隐藏的延迟。

DrawPathExample 仅客户端 ​

命名空间 GameUI.Examples

csharp
public class DrawPathExample

DrawPath 方法使用示例

构造函数 ​

DrawPathExample 仅客户端 ​

csharp
public DrawPathExample(Canvas canvas)

DrawPath 方法使用示例

方法 ​

DrawBasicShapes 仅客户端 ​

csharp
public void DrawBasicShapes()

绘制基本形状示例

DrawComplexPath 仅客户端 ​

csharp
public void DrawComplexPath()

绘制复杂路径示例

DrawBezierCurves 仅客户端 ​

csharp
public void DrawBezierCurves()

绘制贝塞尔曲线示例

DrawCompositePath 仅客户端 ​

csharp
public void DrawCompositePath()

绘制组合路径示例(多个子路径)

DrawPathWithArcs 仅客户端 ​

csharp
public void DrawPathWithArcs()

绘制带圆弧的路径示例

DrawTransformedPath 仅客户端 ​

csharp
public void DrawTransformedPath()

使用路径变换示例

JoystickExamples 仅客户端 ​

命名空间 GameUI.Examples

csharp
public static class JoystickExamples

摇杆控件使用示例

方法 ​

CreateNormalJoystick 仅客户端 ​

csharp
public static JoystickNormal CreateNormalJoystick()

创建普通摇杆示例

CreateFloatJoystick 仅客户端 ​

csharp
public static JoystickFloat CreateFloatJoystick()

创建浮动摇杆示例

CreateDynamicJoystick 仅客户端 ​

csharp
public static JoystickDynamic CreateDynamicJoystick()

创建动态摇杆示例

CreateCustomImageJoystick 仅客户端 ​

csharp
public static JoystickNormal CreateCustomImageJoystick()

创建带有自定义图像的摇杆

DemonstrateRuntimeConfiguration 仅客户端 ​

csharp
public static void DemonstrateRuntimeConfiguration()

演示如何在运行时调整摇杆属性

ColorExtensions 仅客户端 ​

命名空间 GameUI.Extensions

csharp
public static class ColorExtensions

方法 ​

ToHex 仅客户端 ​

csharp
public static string ToHex(this Color color)

ToHex 仅客户端 ​

csharp
public static string ToHex(this Color color, byte alpha)

ToRgbaHex 仅客户端 ​

csharp
public static string ToRgbaHex(this Color color)

FromHex 仅客户端 ​

csharp
public static Color FromHex(string hex)

FromRgbaHex 仅客户端 ​

csharp
public static Color FromRgbaHex(string hex)

FromHex 仅客户端 ​

csharp
public static Color FromHex(string hex, byte alpha)

FloatingTextExtensions 仅客户端 ​

命名空间 GameUI.Extensions

csharp
public static class FloatingTextExtensions

方法 ​

SetUIPosition 仅客户端 ​

csharp
public static void SetUIPosition(this FloatingText floatingText, UIPosition uIPosition)

Set the position of the floating text in UI space.

  • floatingText — The floating text to set the position of.
  • uIPosition — The position of the floating text in UI space.

CreateFloatingText 仅客户端 ​

csharp
public static FloatingText? CreateFloatingText(this GameDataFloatingText gameDataFloatingText, UIPosition uIPosition, UTF8String text)

Create a floating text in UI space.

  • gameDataFloatingText — The game data floating text.
  • uIPosition — The position of the floating text in UI space.
  • text — The text of the floating text.

返回: The floating text.

PointFExtension 仅客户端 ​

命名空间 GameUI.Extensions

csharp
public static class PointFExtension

方法 ​

Equals 仅客户端 ​

csharp
public static bool Equals(this PointF pointF, object o, float epsilon)

Offset 仅客户端 ​

csharp
public static PointF Offset(this PointF pointF, float dx, float dy)

Scale 仅客户端 ​

csharp
public static PointF Scale(this PointF pointF, float scale)

Scale 仅客户端 ​

csharp
public static PointF Scale(this PointF pointF, float scaleX, float scaleY)

INode 仅客户端 ​

命名空间 GameUI.Interface

csharp
public interface INode

Represents a node in a hierarchical structure that can contain child nodes and an associated data context.

备注

INode provides methods for managing child nodes, including adding, removing, and searching for children. It also supports determining ancestor relationships and accessing a data context associated with the node. Implementations should ensure thread safety if nodes are accessed concurrently.

属性 ​

DataContext 仅客户端 ​

csharp
public object? DataContext { get; set; }

Children 仅客户端 ​

csharp
public IReadOnlyList<INodeChild>? Children { get; }

方法 ​

AddChild 仅客户端 ​

csharp
INodeChild AddChild(INodeChild child)

RemoveChild 仅客户端 ​

csharp
bool RemoveChild(INodeChild child)

RemoveChild 仅客户端 ​

csharp
bool RemoveChild(int index)

IsAncestorOf 仅客户端 ​

csharp
bool IsAncestorOf(INodeChild child)

FindChild 仅客户端 ​

csharp
INodeChild? FindChild(Func<INodeChild, bool> condition)

INodeChild 仅客户端 ​

命名空间 GameUI.Interface

csharp
public interface INodeChild : INode

Defines a node that can be associated with a parent node, providing methods to manage its parent-child relationship within a node hierarchy.

备注

Implementations of this interface allow nodes to be added to or removed from a parent node. The parent-child relationship is managed independently of any collection membership, enabling flexible tree or graph structures. The interface does not specify how parent assignment affects the node's state beyond the exposed methods.

属性 ​

Parent 仅客户端 ​

csharp
public INode? Parent { get; }

方法 ​

AddToParent 仅客户端 ​

csharp
INodeChild AddToParent(INode parent)

AddToParent 仅客户端 ​

csharp
INodeChild AddToParent(INode parent, int index)

RemoveFromParent 仅客户端 ​

csharp
bool RemoveFromParent()

Only remove from parent, not from collection

返回:

SkillTestEntry 仅客户端 ​

命名空间 GameUI.SkillTestSystem

csharp
public sealed class SkillTestEntry : IGameClass

Debug games expose an explicit skill-test panel without reserving project UI space.

构造函数 ​

SkillTestEntry 仅客户端 ​

csharp
public SkillTestEntry()

方法 ​

OnRegisterGameClass 仅客户端 ​

csharp
public static void OnRegisterGameClass()

OpenPanel 仅客户端 ​

csharp
public static bool OpenPanel()

Opens the debug-only panel from an explicit editor/debug-bar command.

TogglePanel 仅客户端 ​

csharp
public static bool TogglePanel()

Toggles the debug-only panel without occupying project UI space.

SkillTestPanel 仅客户端 ​

命名空间 GameUI.SkillTestSystem

csharp
public sealed class SkillTestPanel : IDisposable

Server-backed tuning UI. Snapshots remain the authority for arrangement and revision.

构造函数 ​

SkillTestPanel 仅客户端 ​

csharp
public SkillTestPanel(Action close)

属性 ​

SequenceTimelineRenderer 仅客户端 ​

csharp
public static Action<PanelScrollable, SkillTestState?>? SequenceTimelineRenderer { get; set; }

CustomFieldEditor 仅客户端 ​

csharp
public static Func<SkillTestField, JsonElement, Action<JsonElement>, GameUI.Control.Control?>? CustomFieldEditor { get; set; }

Root 仅客户端 ​

csharp
public PanelScrollable Root { get; }

TimelineHost 仅客户端 ​

csharp
public PanelScrollable TimelineHost { get; }

方法 ​

Dispose 仅客户端 ​

csharp
public void Dispose()

SkillTestSequenceView 仅客户端 ​

命名空间 GameUI.SkillTestSystem

csharp
public sealed class SkillTestSequenceView : IDisposable

Three definition-time tracks; pointer gestures preview locally and commit once on release.

构造函数 ​

SkillTestSequenceView 仅客户端 ​

csharp
public SkillTestSequenceView(SkillTestSnapshot snapshot, SkillTestAnimationDefinition source, Func<bool> editable, Action<SkillTestAnimationDefinition> commit, Func<IDisposable>? captureGesture = null, Action<GameUI.Control.Control, bool>? focus = null)

属性 ​

Root 仅客户端 ​

csharp
public SpacingPanel Root { get; }

方法 ​

Dispose 仅客户端 ​

csharp
public void Dispose()

Thickness 双端 ​

命名空间 GameUI.Struct

csharp
public struct Thickness : IEquatable<Thickness>

构造函数 ​

Thickness 双端 ​

csharp
public Thickness(float uniformLength)

Thickness 双端 ​

csharp
public Thickness(float left, float top, float right, float bottom)

属性 ​

Left 双端 ​

csharp
public float Left { get; set; }

Top 双端 ​

csharp
public float Top { get; set; }
csharp
public float Right { get; set; }

Bottom 双端 ​

csharp
public float Bottom { get; set; }

方法 ​

Equals 双端 ​

csharp
public override readonly bool Equals(object? obj)

Equals 双端 ​

csharp
public readonly bool Equals(Thickness other)

GetHashCode 双端 ​

csharp
public override readonly int GetHashCode()

operator == 双端 ​

csharp
public static bool operator ==(Thickness left, Thickness right)

operator != 双端 ​

csharp
public static bool operator !=(Thickness left, Thickness right)

UIPosition 仅客户端 ​

命名空间 GameUI.Struct

csharp
public struct UIPosition : IEquatable<UIPosition>

表示UI坐标位置的结构体

备注

此结构体用于表示UI元素在屏幕上的位置。 提供了两套命名方式: Left/Top - CSS/HTML风格命名 X/Y - 数学坐标风格命名(别名)

构造函数 ​

UIPosition 仅客户端 ​

csharp
public UIPosition(float Left, float Top)

创建一个 UI 坐标位置。

属性 ​

Left 仅客户端 ​

csharp
public float Left { get; set; }

距离左边缘的距离(等同于X坐标)

Top 仅客户端 ​

csharp
public float Top { get; set; }

距离顶边缘的距离(等同于Y坐标)

X 仅客户端 ​

csharp
public float X { get; }

X坐标(Left 的别名)

备注

与 Left 属性完全相同,提供更符合数学坐标系习惯的命名方式。

Y 仅客户端 ​

csharp
public float Y { get; }

Y坐标(Top 的别名)

备注

与 Top 属性完全相同,提供更符合数学坐标系习惯的命名方式。

方法 ​

Deconstruct 仅客户端 ​

csharp
public void Deconstruct(out float x, out float y)

解构为 (x, y) 元组

  • x — X坐标
  • y — Y坐标

ToString 仅客户端 ​

csharp
public override string ToString()

operator != 仅客户端 ​

csharp
public static bool operator !=(UIPosition left, UIPosition right)

operator == 仅客户端 ​

csharp
public static bool operator ==(UIPosition left, UIPosition right)

GetHashCode 仅客户端 ​

csharp
public override readonly int GetHashCode()

Equals 仅客户端 ​

csharp
public override readonly bool Equals(object obj)

Equals 仅客户端 ​

csharp
public readonly bool Equals(UIPosition other)