主题
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>? OnCardClickedOnCardDragStart 仅客户端
csharp
public event EventHandler<CardDragEventArgs>? OnCardDragStartOnCardRemoved 仅客户端
csharp
public event EventHandler<ICard>? OnCardRemovedOnCardAdded 仅客户端
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 _spacingCardDropTargetBase 仅客户端
命名空间 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; }当前悬停的放置目标
ConfigLink 仅客户端
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 CardUILayerCardUI 内部层级定义 - 控制各 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 InnerValueSuccess 仅客户端
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; }默认卡牌边框路径