Skip to content

GameSystemUI.CardSystemUI ​

ScopeData 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI

csharp
public class ScopeData : IGameClass

卡牌系统 GameData 注册

构造函数 ​

ScopeData 仅客户端 ​

csharp
public ScopeData()

方法 ​

OnRegisterGameClass 仅客户端 ​

csharp
public static void OnRegisterGameClass()

注册 GameClass,订阅 GameData 初始化事件

CardContainer 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public class CardContainer : CardContainerBase

默认卡牌容器 - 水平布局的 CardUI 实现

构造函数 ​

CardContainer 仅客户端 ​

csharp
public CardContainer()

属性 ​

CardUIs 仅客户端 ​

csharp
public IReadOnlyList<ICardUI> CardUIs { get; }

所有卡牌UI(接口类型)

方法 ​

UpdateLayout 仅客户端 ​

csharp
public override void UpdateLayout()

OnCardAdded_Internal 仅客户端 ​

csharp
protected override void OnCardAdded_Internal(ICard card)

OnCardRemoved_Internal 仅客户端 ​

csharp
protected override void OnCardRemoved_Internal(int index, ICard card)

Refresh 仅客户端 ​

csharp
public override void Refresh()

SetAllCardsDraggable 仅客户端 ​

csharp
public override void SetAllCardsDraggable(bool draggable)

SelectCard 仅客户端 ​

csharp
public override void SelectCard(ICard card)

DeselectAll 仅客户端 ​

csharp
public override void DeselectAll()

GetCardUI 仅客户端 ​

csharp
public ICardUI? GetCardUI(ICard card)

获取卡牌UI

CardContainerBase 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public abstract class CardContainerBase : CardDropTargetBase

卡牌容器抽象基类 - 管理卡牌数据和核心逻辑 继承 CardDropTargetBase 以复用放置目标的基础功能 子类负责实现具体的 UI 布局

构造函数 ​

CardContainerBase 仅客户端 ​

csharp
protected CardContainerBase()

属性 ​

GameDataCardConfig 仅客户端 ​

csharp
public GameDataCardConfig GameDataCardConfig { get; }

卡牌配置(统一从 CardManager 获取)

Spacing 仅客户端 ​

csharp
public float Spacing { get; set; }

卡牌间距

CardCount 仅客户端 ​

csharp
public int CardCount { get; }

卡牌数量

Cards 仅客户端 ​

csharp
public IReadOnlyList<ICard> Cards { get; }

所有卡牌数据

IsCancelZone 仅客户端 ​

csharp
public bool IsCancelZone { get; set; }

是否作为取消区域(拖回此容器取消释放)

AcceptExternalCards 仅客户端 ​

csharp
public bool AcceptExternalCards { get; set; }

是否接受外部卡牌(从其他地方拖入的卡牌)

TargetId 仅客户端 ​

csharp
public override string TargetId { get; }

TargetName 仅客户端 ​

csharp
public override string TargetName { get; }

方法 ​

SetTargetName 仅客户端 ​

csharp
public void SetTargetName(string name)

设置目标名称

ValidateDrop 仅客户端 ​

csharp
public override CardDropValidation ValidateDrop(ICard card)

HandleDrop 仅客户端 ​

csharp
protected override CardDropResult HandleDrop(ICard card)

UpdateHighlightVisual 仅客户端 ​

csharp
protected override void UpdateHighlightVisual(bool highlighted, bool isValid)

重写高亮效果 - 使用背景色变化而非 Canvas 绘制

RaiseCardClicked 仅客户端 ​

csharp
protected void RaiseCardClicked(ICard card)

RaiseCardDragStart 仅客户端 ​

csharp
protected void RaiseCardDragStart(CardDragEventArgs args)

AddCard 仅客户端 ​

csharp
public void AddCard(ICard card)

添加卡牌

AddCards 仅客户端 ​

csharp
public void AddCards(IEnumerable<ICard> cards)

批量添加卡牌

RemoveCard 仅客户端 ​

csharp
public bool RemoveCard(ICard card)

移除卡牌

RemoveCardAt 仅客户端 ​

csharp
public bool RemoveCardAt(int index)

按索引移除卡牌

ClearCards 仅客户端 ​

csharp
public void ClearCards()

清空所有卡牌

GetCardIndex 仅客户端 ​

csharp
public int GetCardIndex(ICard card)

获取卡牌索引

UpdateLayout 仅客户端 ​

csharp
public abstract void UpdateLayout()

更新布局

OnCardAdded_Internal 仅客户端 ​

csharp
protected abstract void OnCardAdded_Internal(ICard card)

添加卡牌时创建UI

OnCardRemoved_Internal 仅客户端 ​

csharp
protected abstract void OnCardRemoved_Internal(int index, ICard card)

移除卡牌时销毁UI

Refresh 仅客户端 ​

csharp
public abstract void Refresh()

刷新所有卡牌显示

SetAllCardsDraggable 仅客户端 ​

csharp
public abstract void SetAllCardsDraggable(bool draggable)

设置所有卡牌的可拖拽状态

SelectCard 仅客户端 ​

csharp
public abstract void SelectCard(ICard card)

选择卡牌

DeselectAll 仅客户端 ​

csharp
public abstract void DeselectAll()

取消选择

DisposeManaged 仅客户端 ​

csharp
protected override void DisposeManaged()

事件 ​

OnCardClicked 仅客户端 ​

csharp
public event EventHandler<ICard>? OnCardClicked

OnCardDragStart 仅客户端 ​

csharp
public event EventHandler<CardDragEventArgs>? OnCardDragStart

OnCardRemoved 仅客户端 ​

csharp
public event EventHandler<ICard>? OnCardRemoved

OnCardAdded 仅客户端 ​

csharp
public event EventHandler<ICard>? OnCardAdded

字段 ​

_cards 仅客户端 ​

csharp
protected readonly List<ICard> _cards

_isCancelZone 仅客户端 ​

csharp
protected bool _isCancelZone

_acceptExternalCards 仅客户端 ​

csharp
protected bool _acceptExternalCards

_spacing 仅客户端 ​

csharp
protected float _spacing

CardDropTargetBase 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public abstract class CardDropTargetBase : Panel, ICardDropTarget

卡牌放置目标基类 - 提供放置目标的基础实现

构造函数 ​

CardDropTargetBase 仅客户端 ​

csharp
protected CardDropTargetBase()

属性 ​

TargetId 仅客户端 ​

csharp
public abstract string TargetId { get; }

目标唯一标识符

TargetName 仅客户端 ​

csharp
public abstract string TargetName { get; }

目标名称

TargetType 仅客户端 ​

csharp
public virtual DropTargetType TargetType { get; }

目标类型

IsHighlighted 仅客户端 ​

csharp
public bool IsHighlighted { get; }

是否正在高亮显示

ValidHighlightColor 仅客户端 ​

csharp
public Color ValidHighlightColor { get; set; }

高亮颜色(可放置时)

InvalidHighlightColor 仅客户端 ​

csharp
public Color InvalidHighlightColor { get; set; }

高亮颜色(不可放置时)

HighlightBorderWidth 仅客户端 ​

csharp
public float HighlightBorderWidth { get; set; }

边框宽度

UseCanvasHighlight 仅客户端 ​

csharp
public bool UseCanvasHighlight { get; set; }

是否使用 Canvas 高亮(子类可设为 false 使用自定义高亮)

方法 ​

ValidateDrop 仅客户端 ​

csharp
public virtual CardDropValidation ValidateDrop(ICard card)

验证卡牌是否可以放置(子类应重写此方法)

OnCardEnter 仅客户端 ​

csharp
public virtual void OnCardEnter(ICard card)

卡牌进入目标区域

OnCardExit 仅客户端 ​

csharp
public virtual void OnCardExit(ICard card)

卡牌离开目标区域

OnCardHover 仅客户端 ​

csharp
public virtual void OnCardHover(ICard card)

卡牌在目标上悬停

OnCardDrop 仅客户端 ​

csharp
public virtual CardDropResult OnCardDrop(ICard card)

卡牌放置到目标(子类应重写此方法处理具体逻辑)

HandleDrop 仅客户端 ​

csharp
protected virtual CardDropResult HandleDrop(ICard card)

处理卡牌放置(子类实现具体逻辑)

UpdateHighlightVisual 仅客户端 ​

csharp
protected virtual void UpdateHighlightVisual(bool highlighted, bool isValid)

更新高亮视觉效果(子类可重写以自定义高亮方式)

  • highlighted — 是否高亮
  • isValid — 是否为有效目标

DisposeManaged 仅客户端 ​

csharp
protected override void DisposeManaged()

事件 ​

OnCardDropped 仅客户端 ​

csharp
public event EventHandler<ICard>? OnCardDropped

卡牌放置成功事件

OnCardEntered 仅客户端 ​

csharp
public event EventHandler<ICard>? OnCardEntered

卡牌进入事件

OnCardExited 仅客户端 ​

csharp
public event EventHandler<ICard>? OnCardExited

卡牌离开事件

CardDropValidation 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public class CardDropValidation

卡牌放置验证结果

构造函数 ​

CardDropValidation 仅客户端 ​

csharp
public CardDropValidation()

属性 ​

CanDrop 仅客户端 ​

csharp
public bool CanDrop { get; set; }

是否可以放置

IsCancel 仅客户端 ​

csharp
public bool IsCancel { get; set; }

是否为取消操作(放回原位置)

FailureReason 仅客户端 ​

csharp
public string? FailureReason { get; set; }

验证失败原因(如果不能放置)

PreviewHint 仅客户端 ​

csharp
public string? PreviewHint { get; set; }

预览提示文本

PreviewColor 仅客户端 ​

csharp
public Color PreviewColor { get; set; }

预览颜色(用于视觉反馈)

方法 ​

Success 仅客户端 ​

csharp
public static CardDropValidation Success(string? hint = null)

创建成功验证结果

Failure 仅客户端 ​

csharp
public static CardDropValidation Failure(string reason)

创建失败验证结果

Cancel 仅客户端 ​

csharp
public static CardDropValidation Cancel(string hint = "放回手牌")

创建取消验证结果(放回手牌取消释放)

CardManager 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public class CardManager : DisposableObject, IThinker

卡牌拖拽管理器 - 负责管理卡牌的拖拽行为和放置检测 实现 IThinker 接口,在拖拽时轮询验证场景放置

属性 ​

Instance 仅客户端 ​

csharp
public static CardManager Instance { get; }

获取单例实例

IsDragging 仅客户端 ​

csharp
public bool IsDragging { get; }

是否正在拖拽

DraggingCard 仅客户端 ​

csharp
public ICard? DraggingCard { get; }

当前拖拽的卡牌

CurrentHoverTarget 仅客户端 ​

csharp
public ICardDropTarget? CurrentHoverTarget { get; }

当前悬停的放置目标

csharp
public IGameLink<GameDataCardConfig> ConfigLink { get; }

卡牌配置 GameLink

Config 仅客户端 ​

csharp
public GameDataCardConfig Config { get; }

卡牌配置(从 GameLink 获取数据)

SceneDropEnabled 仅客户端 ​

csharp
public bool SceneDropEnabled { get; set; }

是否启用场景放置

CasterUnit 仅客户端 ​

csharp
public Unit? CasterUnit { get; set; }

技能释放者(如果为空则尝试使用Player.LocalPlayer的主控单位)

ValidateSceneDropCallback 仅客户端 ​

csharp
public Func<ICard, CardSceneDropEventArgs, CardDropValidation>? ValidateSceneDropCallback { get; set; }

场景放置验证回调 默认使用 DefaultCardSceneDropHandler.DefaultValidateCallback 设为 null 可禁用验证(始终通过)

ExecuteSceneDropCallback 仅客户端 ​

csharp
public Func<ICard, CardSceneDropEventArgs, CardDropResult>? ExecuteSceneDropCallback { get; set; }

场景放置执行回调 默认使用 DefaultCardSceneDropHandler.DefaultExecuteCallback 设为 null 可禁用默认执行逻辑(仅触发事件)

方法 ​

NotifyTargetEntered 仅客户端 ​

csharp
public void NotifyTargetEntered(ICardDropTarget target)

通知进入放置目标(由 CardDropTargetBase 的 OnPointerEntered 调用)

NotifyTargetExited 仅客户端 ​

csharp
public void NotifyTargetExited(ICardDropTarget target)

通知离开放置目标(由 CardDropTargetBase 的 OnPointerExited 调用)

StartDrag 仅客户端 ​

csharp
public void StartDrag(ICardUI cardUI, CardDragEventArgs args)

开始拖拽(由CardUI调用)

Think 仅客户端 ​

csharp
public void Think(int delta)

IThinker 接口实现 - 拖拽时轮询更新位置和验证场景放置

HandleDrop 仅客户端 ​

csharp
public void HandleDrop(ICardUI cardUI, ICard card, Control? targetControl)

处理拖放结束(由CardUI的OnDrop调用)

CancelDrag 仅客户端 ​

csharp
public void CancelDrag()

取消拖拽

ForceEndDrag 仅客户端 ​

csharp
public void ForceEndDrag()

强制结束拖拽(用于特殊情况)

GetCurrentMousePosition 仅客户端 ​

csharp
public PointF? GetCurrentMousePosition()

获取当前鼠标位置(屏幕坐标)

GetCurrentWorldPosition 仅客户端 ​

csharp
public ScenePoint? GetCurrentWorldPosition()

获取当前鼠标位置对应的世界坐标

ScreenToWorldPosition 仅客户端 ​

csharp
public ScenePoint? ScreenToWorldPosition(PointF? screenPos)

将屏幕坐标转换为世界坐标

  • screenPos — 屏幕坐标

返回: 世界坐标,如果转换失败返回null

FindNearestUnit 仅客户端 ​

csharp
public Unit? FindNearestUnit(ScenePoint worldPos, float searchRadius = 100f, Func<Unit, bool>? filter = null)

查找指定位置附近的单位

  • worldPos — 世界坐标
  • searchRadius — 搜索半径
  • filter — 筛选条件

返回: 找到的最近单位,或null

DisposeManaged 仅客户端 ​

csharp
protected override void DisposeManaged()

Release 仅客户端 ​

csharp
public static void Release()

释放单例实例

事件 ​

OnDragStarted 仅客户端 ​

csharp
public event EventHandler<CardDragEventArgs>? OnDragStarted

拖拽开始事件

OnDragEnded 仅客户端 ​

csharp
public event EventHandler<CardDropEventArgs>? OnDragEnded

拖拽结束事件

OnTargetEntered 仅客户端 ​

csharp
public event EventHandler<ICardDropTarget>? OnTargetEntered

进入放置目标事件

OnTargetExited 仅客户端 ​

csharp
public event EventHandler<ICardDropTarget>? OnTargetExited

离开放置目标事件

OnSceneDrop 仅客户端 ​

csharp
public event EventHandler<CardSceneDropEventArgs>? OnSceneDrop

卡牌放置到场景事件 注意:此事件在技能执行器之前触发,可以通过设置 args.Result 取消后续执行

CardSlotDropTarget 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public class CardSlotDropTarget : CardDropTargetBase

卡槽放置目标 - 用于放置单张卡牌的槽位

构造函数 ​

CardSlotDropTarget 仅客户端 ​

csharp
public CardSlotDropTarget(string slotId, string slotName = "卡槽")

属性 ​

TargetId 仅客户端 ​

csharp
public override string TargetId { get; }

TargetName 仅客户端 ​

csharp
public override string TargetName { get; }

PlacedCard 仅客户端 ​

csharp
public ICard? PlacedCard { get; }

当前放置的卡牌

HasCard 仅客户端 ​

csharp
public bool HasCard { get; }

是否已有卡牌

AllowedCardType 仅客户端 ​

csharp
public CardType? AllowedCardType { get; set; }

允许的卡牌类型(null表示允许所有类型)

MaxAllowedCost 仅客户端 ​

csharp
public int? MaxAllowedCost { get; set; }

允许的最大费用(null表示无限制)

CardScale 仅客户端 ​

csharp
public float CardScale { get; set; }

槽位内卡牌的缩放比例(相对于全局配置)

AllowDragFromSlot 仅客户端 ​

csharp
public bool AllowDragFromSlot { get; set; }

是否允许从槽位拖走卡牌

AllowSwap 仅客户端 ​

csharp
public bool AllowSwap { get; set; }

是否允许卡牌交换(槽位已有卡牌时)

方法 ​

ValidateDrop 仅客户端 ​

csharp
public override CardDropValidation ValidateDrop(ICard card)

HandleDrop 仅客户端 ​

csharp
protected override CardDropResult HandleDrop(ICard card)

SetPlacedCard 仅客户端 ​

csharp
public void SetPlacedCard(ICard? card)

设置放置的卡牌

ClearPlacedCard 仅客户端 ​

csharp
public ICard? ClearPlacedCard()

清除放置的卡牌

DisposeManaged 仅客户端 ​

csharp
protected override void DisposeManaged()

事件 ​

OnPlacedCardChanged 仅客户端 ​

csharp
public event EventHandler<ICard?>? OnPlacedCardChanged

卡牌变化事件

OnCardDraggedOut 仅客户端 ​

csharp
public event EventHandler<ICard>? OnCardDraggedOut

卡牌被拖走事件

CardUI 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public class CardUI : Panel, ICardUI

卡牌UI组件 - 负责单张卡牌的显示和交互 实现 ICardUI 接口,提供完整的卡牌显示、状态管理和拖拽功能

构造函数 ​

CardUI 仅客户端 ​

csharp
public CardUI(float scale = 1f)

创建卡牌UI,使用 CardManager 的全局配置

  • scale — 缩放比例,默认1.0

属性 ​

Card 仅客户端 ​

csharp
public ICard? Card { get; set; }

卡牌数据

Config 仅客户端 ​

csharp
public GameDataCardConfig Config { get; }

卡牌配置(统一从 CardManager 获取)

CurrentState 仅客户端 ​

csharp
public CardState CurrentState { get; }

当前状态

IsDraggable 仅客户端 ​

csharp
public bool IsDraggable { get; set; }

是否允许拖拽

IsSelected 仅客户端 ​

csharp
public bool IsSelected { get; set; }

是否选中

IsDisabled 仅客户端 ​

csharp
public bool IsDisabled { get; set; }

是否禁用

IsInteractive 仅客户端 ​

csharp
public bool IsInteractive { get; set; }

是否可交互(设为false时禁用所有鼠标事件响应)

方法 ​

EndDrag 仅客户端 ​

csharp
public void EndDrag(CardDropResult result)

结束拖拽(由外部调用)

SetValidation 仅客户端 ​

csharp
public void SetValidation(CardDropValidation validation)

设置验证结果(拖拽时显示)

ClearValidation 仅客户端 ​

csharp
public void ClearValidation()

清除验证结果

SetSelected 仅客户端 ​

csharp
public void SetSelected(bool selected)

设置选中状态

SetDisabled 仅客户端 ​

csharp
public void SetDisabled(bool disabled)

设置禁用状态

Refresh 仅客户端 ​

csharp
public void Refresh()

刷新显示

DisposeManaged 仅客户端 ​

csharp
protected override void DisposeManaged()

事件 ​

OnCardClicked 仅客户端 ​

csharp
public event EventHandler<ICard>? OnCardClicked

卡牌点击事件

OnCardDragStart 仅客户端 ​

csharp
public event EventHandler<CardDragEventArgs>? OnCardDragStart

卡牌拖拽开始事件

OnCardStateChanged 仅客户端 ​

csharp
public event EventHandler<CardState>? OnCardStateChanged

卡牌状态改变事件

OnCardHoverEnter 仅客户端 ​

csharp
public event EventHandler<ICard>? OnCardHoverEnter

卡牌悬停进入事件

OnCardHoverExit 仅客户端 ​

csharp
public event EventHandler<ICard>? OnCardHoverExit

卡牌悬停离开事件

CardUILayer 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public enum CardUILayer

CardUI 内部层级定义 - 控制各 UI 组件的显示顺序

枚举值 ​

  • GlowBackground = 0 — 发光效果背景层(最底层)
  • Background = 10 — 卡牌背景/立绘层
  • Border = 20 — 边框图片层
  • DisabledMask = 30 — 禁用遮罩层
  • Effect = 100 — 动态特效层(最上层)

DefaultCardSceneDropHandler 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public class DefaultCardSceneDropHandler

卡牌场景放置处理器 - 提供默认的验证和执行逻辑 可作为 CardManager 回调的默认值,也可以被继承扩展

构造函数 ​

DefaultCardSceneDropHandler 仅客户端 ​

csharp
public DefaultCardSceneDropHandler()

属性 ​

Default 仅客户端 ​

csharp
public static DefaultCardSceneDropHandler Default { get; }

默认实例

DefaultValidateCallback 仅客户端 ​

csharp
public static Func<ICard, CardSceneDropEventArgs, CardDropValidation> DefaultValidateCallback { get; }

默认验证回调(可直接赋值给 CardManager.ValidateSceneDropCallback)

DefaultExecuteCallback 仅客户端 ​

csharp
public static Func<ICard, CardSceneDropEventArgs, CardDropResult> DefaultExecuteCallback { get; }

默认执行回调(可直接赋值给 CardManager.ExecuteSceneDropCallback)

方法 ​

Validate 仅客户端 ​

csharp
public virtual CardDropValidation Validate(ICard card, CardSceneDropEventArgs args)

验证卡牌是否可以放置到场景

Execute 仅客户端 ​

csharp
public virtual CardDropResult Execute(ICard card, CardSceneDropEventArgs args)

执行卡牌场景放置(调用技能系统)

DropTargetType 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public enum DropTargetType

放置目标类型

枚举值 ​

  • UIElement — UI元素目标(如卡槽、按钮等)
  • Scene — 场景目标(如地面、单位等)
  • Anywhere — 任意位置(背景区域)

ICardDropTarget 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public interface ICardDropTarget

卡牌放置目标接口 - 定义可以接收卡牌放置的目标

属性 ​

TargetId 仅客户端 ​

csharp
public string TargetId { get; }

目标唯一标识符

TargetName 仅客户端 ​

csharp
public string TargetName { get; }

目标名称

TargetType 仅客户端 ​

csharp
public DropTargetType TargetType { get; }

目标类型(UI目标或场景目标)

方法 ​

ValidateDrop 仅客户端 ​

csharp
CardDropValidation ValidateDrop(ICard card)

验证卡牌是否可以放置到此目标

  • card — 要放置的卡牌

返回: 验证结果

OnCardEnter 仅客户端 ​

csharp
void OnCardEnter(ICard card)

当卡牌进入目标区域时调用

  • card — 进入的卡牌

OnCardExit 仅客户端 ​

csharp
void OnCardExit(ICard card)

当卡牌离开目标区域时调用

  • card — 离开的卡牌

OnCardHover 仅客户端 ​

csharp
void OnCardHover(ICard card)

当卡牌在目标上悬停时调用(可用于预览效果)

  • card — 悬停的卡牌

OnCardDrop 仅客户端 ​

csharp
CardDropResult OnCardDrop(ICard card)

当卡牌放置到目标时调用

  • card — 放置的卡牌

返回: 放置结果

ICardUI 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Advanced

csharp
public interface ICardUI

卡牌UI接口 - 定义卡牌显示和交互的核心契约

属性 ​

Card 仅客户端 ​

csharp
public ICard? Card { get; set; }

卡牌数据

Config 仅客户端 ​

csharp
public GameDataCardConfig Config { get; }

卡牌配置

CurrentState 仅客户端 ​

csharp
public CardState CurrentState { get; }

当前状态

IsDraggable 仅客户端 ​

csharp
public bool IsDraggable { get; set; }

是否允许拖拽

IsSelected 仅客户端 ​

csharp
public bool IsSelected { get; set; }

是否选中

IsDisabled 仅客户端 ​

csharp
public bool IsDisabled { get; set; }

是否禁用

IsInteractive 仅客户端 ​

csharp
public bool IsInteractive { get; set; }

是否可交互

方法 ​

SetSelected 仅客户端 ​

csharp
void SetSelected(bool selected)

设置选中状态

SetDisabled 仅客户端 ​

csharp
void SetDisabled(bool disabled)

设置禁用状态

Refresh 仅客户端 ​

csharp
void Refresh()

刷新显示

EndDrag 仅客户端 ​

csharp
void EndDrag(CardDropResult result)

结束拖拽

SetValidation 仅客户端 ​

csharp
void SetValidation(CardDropValidation validation)

设置验证结果(拖拽时显示)

ClearValidation 仅客户端 ​

csharp
void ClearValidation()

清除验证结果

事件 ​

OnCardClicked 仅客户端 ​

csharp
event EventHandler<ICard>? OnCardClicked

卡牌点击事件

OnCardDragStart 仅客户端 ​

csharp
event EventHandler<CardDragEventArgs>? OnCardDragStart

卡牌拖拽开始事件

OnCardStateChanged 仅客户端 ​

csharp
event EventHandler<CardState>? OnCardStateChanged

卡牌状态改变事件

OnCardHoverEnter 仅客户端 ​

csharp
event EventHandler<ICard>? OnCardHoverEnter

卡牌悬停进入事件

OnCardHoverExit 仅客户端 ​

csharp
event EventHandler<ICard>? OnCardHoverExit

卡牌悬停离开事件

CardDragEventArgs 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Data

csharp
public class CardDragEventArgs : EventArgs

卡牌拖拽事件参数

构造函数 ​

CardDragEventArgs 仅客户端 ​

csharp
public CardDragEventArgs(ICard card, PointerButtons? pointerButton = null)

属性 ​

Card 仅客户端 ​

csharp
public ICard Card { get; }

被拖拽的卡牌

PointerButton 仅客户端 ​

csharp
public PointerButtons? PointerButton { get; }

触发拖拽的指针按钮

CardDragMoveEventArgs 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Data

csharp
public class CardDragMoveEventArgs : EventArgs

卡牌拖拽移动事件参数

构造函数 ​

CardDragMoveEventArgs 仅客户端 ​

csharp
public CardDragMoveEventArgs(ICard card, UIPosition position)

属性 ​

Card 仅客户端 ​

csharp
public ICard Card { get; }

被拖拽的卡牌

Position 仅客户端 ​

csharp
public UIPosition Position { get; }

当前位置

CardDropEventArgs 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Data

csharp
public class CardDropEventArgs : EventArgs

卡牌放置事件参数

构造函数 ​

CardDropEventArgs 仅客户端 ​

csharp
public CardDropEventArgs(ICard card, float dropX, float dropY, ICardDropTarget? target)

属性 ​

Card 仅客户端 ​

csharp
public ICard Card { get; }

被放置的卡牌

DropX 仅客户端 ​

csharp
public float DropX { get; }

放置位置X

DropY 仅客户端 ​

csharp
public float DropY { get; }

放置位置Y

Target 仅客户端 ​

csharp
public ICardDropTarget? Target { get; }

放置目标(可能为null表示放置在场景中)

Result 仅客户端 ​

csharp
public CardDropResult Result { get; set; }

放置结果

CardDropResult 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Data

csharp
public readonly struct CardDropResult : IGameClass, IExtendableEnum<CardDropResult>, IExtendableEnum, IExtendedEnum, ISyncIdOwner

方法 ​

ToString 仅客户端 ​

csharp
public override string? ToString()

operator == 仅客户端 ​

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

operator != 仅客户端 ​

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

Equals 仅客户端 ​

csharp
public override bool Equals(object? obj)

GetHashCode 仅客户端 ​

csharp
public override int GetHashCode()

OnRegisterGameClass 仅客户端 ​

csharp
public static void OnRegisterGameClass()

字段 ​

InnerValue 仅客户端 ​

csharp
public readonly Enum InnerValue

Success 仅客户端 ​

csharp
public static readonly CardDropResult Success

成功放置

Cancelled 仅客户端 ​

csharp
public static readonly CardDropResult Cancelled

取消拖拽

InvalidTarget 仅客户端 ​

csharp
public static readonly CardDropResult InvalidTarget

无效目标

ValidationFailed 仅客户端 ​

csharp
public static readonly CardDropResult ValidationFailed

验证失败

TargetFull 仅客户端 ​

csharp
public static readonly CardDropResult TargetFull

目标已满

CardSceneDropEventArgs 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Data

csharp
public class CardSceneDropEventArgs : EventArgs

卡牌场景放置事件参数

构造函数 ​

CardSceneDropEventArgs 仅客户端 ​

csharp
public CardSceneDropEventArgs(ICard card, float screenX, float screenY)

属性 ​

Card 仅客户端 ​

csharp
public ICard Card { get; }

被放置的卡牌

ScreenX 仅客户端 ​

csharp
public float ScreenX { get; }

屏幕位置X

ScreenY 仅客户端 ​

csharp
public float ScreenY { get; }

屏幕位置Y

WorldPosition 仅客户端 ​

csharp
public ScenePoint? WorldPosition { get; set; }

世界坐标位置(如果成功转换)

TargetUnit 仅客户端 ​

csharp
public Unit? TargetUnit { get; set; }

目标单位(如果是单位目标类型)

Result 仅客户端 ​

csharp
public CardDropResult Result { get; set; }

放置结果

ErrorMessage 仅客户端 ​

csharp
public string? ErrorMessage { get; set; }

错误消息(如果放置失败)

CardState 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Data

csharp
public enum CardState

卡牌UI状态枚举

枚举值 ​

  • Normal — 普通状态
  • Hovered — 悬停状态
  • Pressed — 按下状态
  • Dragging — 拖拽中
  • Selected — 已选中
  • Disabled — 禁用状态

ECardDropResult 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Data

csharp
public enum ECardDropResult

拖拽结果枚举(可扩展)

枚举值 ​

  • Success — 成功放置
  • Cancelled — 取消拖拽
  • InvalidTarget — 无效目标
  • ValidationFailed — 验证失败
  • TargetFull — 目标已满

GameDataCardConfig 仅客户端 ​

命名空间 GameSystemUI.CardSystemUI.Data

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

卡牌UI配置 - 定义卡牌的视觉参数

构造函数 ​

GameDataCardConfig 仅客户端 ​

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

GameDataCardConfig 仅客户端 ​

csharp
public GameDataCardConfig(IGameLink<GameDataCardConfig> link)

属性 ​

CardWidth 仅客户端 ​

csharp
public float CardWidth { get; set; }

卡牌宽度

CardHeight 仅客户端 ​

csharp
public float CardHeight { get; set; }

卡牌高度

CornerRadius 仅客户端 ​

csharp
public float CornerRadius { get; set; }

圆角半径

HoverScale 仅客户端 ​

csharp
public float HoverScale { get; set; }

悬停时的缩放比例

PressedScale 仅客户端 ​

csharp
public float PressedScale { get; set; }

按下时的缩放比例

DragScale 仅客户端 ​

csharp
public float DragScale { get; set; }

拖拽时的缩放比例

DragOpacity 仅客户端 ​

csharp
public float DragOpacity { get; set; }

拖拽时的透明度

CancelDragThreshold 仅客户端 ​

csharp
public float CancelDragThreshold { get; set; }

取消拖拽阈值(像素)- 拖拽结束时距起点小于此值则自动取消(放回原位) 设为 0 禁用此功能

AnimationLerpSpeed 仅客户端 ​

csharp
public float AnimationLerpSpeed { get; set; }

动画插值速度(0-1之间)

HoverZIndexBoost 仅客户端 ​

csharp
public int HoverZIndexBoost { get; set; }

悬停时的Z轴提升层级

DragZIndex 仅客户端 ​

csharp
public int DragZIndex { get; set; }

拖拽时的Z轴层级

DefaultBackgroundColor 仅客户端 ​

csharp
public Color DefaultBackgroundColor { get; set; }

默认背景颜色

HoverBackgroundColor 仅客户端 ​

csharp
public Color HoverBackgroundColor { get; set; }

悬停背景颜色

SelectedBorderColor 仅客户端 ​

csharp
public Color SelectedBorderColor { get; set; }

选中边框颜色

GlowColor 仅客户端 ​

csharp
public Color GlowColor { get; set; }

发光效果颜色

GlowRadius 仅客户端 ​

csharp
public float GlowRadius { get; set; }

发光效果范围

DisabledMaskColor 仅客户端 ​

csharp
public Color DisabledMaskColor { get; set; }

禁用时的遮罩颜色

DefaultIconPath 仅客户端 ​

csharp
public Icon DefaultIconPath { get; set; }

默认卡牌图标路径

DefaultBackgroundPath 仅客户端 ​

csharp
public Icon DefaultBackgroundPath { get; set; }

默认卡牌背景路径

DefaultBorderPath 仅客户端 ​

csharp
public Icon DefaultBorderPath { get; set; }

默认卡牌边框路径