主题
GameGraph.SpineSystem
SpineAnimationState 仅客户端
命名空间 GameGraph.SpineSystem
csharp
public class SpineAnimationState : EngineObjectSpine AnimationState 的托管包装。 封装 C++ SpineAnimationState (RefCounted),管理动画播放和事件监听。
属性
TimeScale 仅客户端
csharp
public float TimeScale { get; set; }时间缩放
DefaultMix 仅客户端
csharp
public float DefaultMix { get; set; }默认混合时长
方法
SetAnimation 仅客户端
csharp
public SpineTrackEntry? SetAnimation(uint trackIndex, string animationName, bool loop)设置指定轨道的动画
AddAnimation 仅客户端
csharp
public SpineTrackEntry? AddAnimation(uint trackIndex, string animationName, bool loop, float delay = 0f)在指定轨道排队动画
GetCurrent 仅客户端
csharp
public SpineTrackEntry? GetCurrent(uint trackIndex)获取指定轨道当前播放的动画
ClearTrack 仅客户端
csharp
public void ClearTrack(uint trackIndex)清除指定轨道
ClearTracks 仅客户端
csharp
public void ClearTracks()清除所有轨道
SetEmptyAnimation 仅客户端
csharp
public SpineTrackEntry? SetEmptyAnimation(uint trackIndex, float mixDuration)设置空动画
AddEmptyAnimation 仅客户端
csharp
public SpineTrackEntry? AddEmptyAnimation(uint trackIndex, float mixDuration, float delay = 0f)在队列中添加空动画
SetMix 仅客户端
csharp
public void SetMix(string fromName, string toName, float duration)设置两个动画之间的混合时长
GetMix 仅客户端
csharp
public float GetMix(string fromName, string toName)获取两个动画之间的混合时长
ClearMixData 仅客户端
csharp
public void ClearMixData()清除所有混合配置
Update 仅客户端
csharp
public void Update(float deltaTime)更新动画状态
Apply 仅客户端
csharp
public void Apply(SpineSkeleton skeleton)应用动画到骨骼
DisposeManaged 仅客户端
csharp
protected override void DisposeManaged()事件
OnStart 仅客户端
csharp
public event Action<SpineTrackEntry>? OnStart动画开始播放
OnInterrupt 仅客户端
csharp
public event Action<SpineTrackEntry>? OnInterrupt动画被中断
OnEnd 仅客户端
csharp
public event Action<SpineTrackEntry>? OnEnd动画播放结束
OnComplete 仅客户端
csharp
public event Action<SpineTrackEntry>? OnComplete动画完成一次循环
OnDispose 仅客户端
csharp
public event Action<SpineTrackEntry>? OnDispose动画被销毁
OnEvent 仅客户端
csharp
public event Action<SpineTrackEntry, SpineEvent>? OnEvent动画触发自定义事件
SpineBone 仅客户端
命名空间 GameGraph.SpineSystem
csharp
public class SpineBoneSpine 骨骼的托管包装。 通过原始指针访问底层 spine::Bone。
属性
Name 仅客户端
csharp
public string Name { get; }骨骼名称
IsValid 仅客户端
csharp
public bool IsValid { get; }是否有效
X 仅客户端
csharp
public float X { get; set; }本地位置 X
Y 仅客户端
csharp
public float Y { get; set; }本地位置 Y
Rotation 仅客户端
csharp
public float Rotation { get; set; }旋转角度
ScaleX 仅客户端
csharp
public float ScaleX { get; set; }缩放 X
ScaleY 仅客户端
csharp
public float ScaleY { get; set; }缩放 Y
ShearX 仅客户端
csharp
public float ShearX { get; set; }剪切 X
ShearY 仅客户端
csharp
public float ShearY { get; set; }剪切 Y
WorldX 仅客户端
csharp
public float WorldX { get; }世界位置 X(只读)
WorldY 仅客户端
csharp
public float WorldY { get; }世界位置 Y(只读)
WorldRotationX 仅客户端
csharp
public float WorldRotationX { get; }世界旋转 X(只读)
WorldRotationY 仅客户端
csharp
public float WorldRotationY { get; }世界旋转 Y(只读)
WorldScaleX 仅客户端
csharp
public float WorldScaleX { get; }世界缩放 X(只读)
WorldScaleY 仅客户端
csharp
public float WorldScaleY { get; }世界缩放 Y(只读)
Active 仅客户端
csharp
public bool Active { get; set; }是否激活
方法
LocalToWorld 仅客户端
csharp
public Vector2 LocalToWorld(Vector2 local)本地坐标转世界坐标
WorldToLocal 仅客户端
csharp
public Vector2 WorldToLocal(Vector2 world)世界坐标转本地坐标
GetParent 仅客户端
csharp
public SpineBone? GetParent()获取父骨骼,无父骨骼时返回 null
SetToSetupPose 仅客户端
csharp
public void SetToSetupPose()重置到初始姿态
SpineEvent 仅客户端
命名空间 GameGraph.SpineSystem
csharp
public class SpineEventSpine 动画事件的托管包装。 仅在事件回调期间有效,不应被缓存。
属性
Name 仅客户端
csharp
public string Name { get; }事件名称
AudioPath 仅客户端
csharp
public string AudioPath { get; }音频路径
IntValue 仅客户端
csharp
public int IntValue { get; set; }整数值
FloatValue 仅客户端
csharp
public float FloatValue { get; set; }浮点值
StringValue 仅客户端
csharp
public string StringValue { get; set; }字符串值
Volume 仅客户端
csharp
public float Volume { get; set; }音量
Balance 仅客户端
csharp
public float Balance { get; set; }平衡
SpineEventType 仅客户端
命名空间 GameGraph.SpineSystem
csharp
public enum SpineEventTypeSpine 动画事件类型。
枚举值
StartInterruptEndCompleteDisposeEvent
SpineInstance 仅客户端
命名空间 GameGraph.SpineSystem
csharp
public class SpineInstanceSpine 实例,持有 AnimationState 和 Skeleton 的组合对象。 通过 GameUI.Spine 或 AnimatedSprite2D 的 GetSpineInstance() 获取。
备注
资源格式兼容性由创建实例的控件或组件决定;Spine 4.2/4.1 以及 Spine 3.8 导出的 .skel 二进制资源可用。
构造函数
SpineInstance 仅客户端
csharp
public SpineInstance(NativePtr animationStatePtr, NativePtr skeletonPtr)属性
AnimationState 仅客户端
csharp
public SpineAnimationState AnimationState { get; }动画状态控制器
Skeleton 仅客户端
csharp
public SpineSkeleton Skeleton { get; }骨骼数据
SpineSkeleton 仅客户端
命名空间 GameGraph.SpineSystem
csharp
public class SpineSkeleton : EngineObjectSpine Skeleton 的托管包装。 封装 C++ SpineSkeleton (RefCounted),提供骨骼、插槽、皮肤等操作。
属性
X 仅客户端
csharp
public float X { get; set; }位置 X
Y 仅客户端
csharp
public float Y { get; set; }位置 Y
ScaleX 仅客户端
csharp
public float ScaleX { get; set; }缩放 X
ScaleY 仅客户端
csharp
public float ScaleY { get; set; }缩放 Y
Time 仅客户端
csharp
public float Time { get; set; }时间
BonesCount 仅客户端
csharp
public int BonesCount { get; }骨骼数量
SlotsCount 仅客户端
csharp
public int SlotsCount { get; }插槽数量
CurrentSkinName 仅客户端
csharp
public string CurrentSkinName { get; }当前皮肤名称
方法
FindBone 仅客户端
csharp
public SpineBone? FindBone(string boneName)查找骨骼,未找到时返回 null
FindSlot 仅客户端
csharp
public SpineSlot? FindSlot(string slotName)查找插槽,未找到时返回 null
SetAttachment 仅客户端
csharp
public void SetAttachment(string slotName, string attachmentName)设置附件
GetAttachmentName 仅客户端
csharp
public string GetAttachmentName(string slotName)获取附件名称
SetSkin 仅客户端
csharp
public void SetSkin(string skinName)设置皮肤
SetToSetupPose 仅客户端
csharp
public void SetToSetupPose()重置到初始姿态
Update 仅客户端
csharp
public void Update(float delta)更新骨骼
GetBounds 仅客户端
csharp
public RectangleF GetBounds()获取边界盒 (x, y, width, height)
GetAnimationNames 仅客户端
csharp
public string[] GetAnimationNames()获取所有动画名称
GetSkinNames 仅客户端
csharp
public string[] GetSkinNames()获取所有皮肤名称
GetAnimationDuration 仅客户端
csharp
public float GetAnimationDuration(string animationName)获取指定动画的时长
SpineSlot 仅客户端
命名空间 GameGraph.SpineSystem
csharp
public class SpineSlotSpine 插槽的托管包装。 通过原始指针访问底层 spine::Slot。
属性
Name 仅客户端
csharp
public string Name { get; }插槽名称
IsValid 仅客户端
csharp
public bool IsValid { get; }是否有效
Color 仅客户端
csharp
public Color Color { get; set; }颜色
AttachmentName 仅客户端
csharp
public string AttachmentName { get; }当前附件名称(只读)
方法
GetBone 仅客户端
csharp
public SpineBone GetBone()获取关联的骨骼
SetToSetupPose 仅客户端
csharp
public void SetToSetupPose()重置到初始姿态
SpineTrackEntry 仅客户端
命名空间 GameGraph.SpineSystem
csharp
public class SpineTrackEntry : IEquatable<SpineTrackEntry>Spine 轨道条目的托管包装。 表示一个动画轨道上正在播放或排队的动画。
属性
IsValid 仅客户端
csharp
public bool IsValid { get; }是否有效
AnimationName 仅客户端
csharp
public string AnimationName { get; }动画名称(只读)
TrackIndex 仅客户端
csharp
public uint TrackIndex { get; }轨道索引(只读)
IsComplete 仅客户端
csharp
public bool IsComplete { get; }是否至少完成一次循环(只读)
Loop 仅客户端
csharp
public bool Loop { get; set; }是否循环播放
TimeScale 仅客户端
csharp
public float TimeScale { get; set; }时间缩放
Alpha 仅客户端
csharp
public float Alpha { get; set; }透明度
MixDuration 仅客户端
csharp
public float MixDuration { get; set; }混合时长
MixTime 仅客户端
csharp
public float MixTime { get; set; }混合时间
TrackTime 仅客户端
csharp
public float TrackTime { get; set; }轨道时间
TrackEnd 仅客户端
csharp
public float TrackEnd { get; set; }轨道结束时间
AnimationStart 仅客户端
csharp
public float AnimationStart { get; set; }动画开始时间
AnimationEnd 仅客户端
csharp
public float AnimationEnd { get; set; }动画结束时间
AnimationLast 仅客户端
csharp
public float AnimationLast { get; set; }动画上次应用时间
AnimationTime 仅客户端
csharp
public float AnimationTime { get; }动画时间(只读)
Delay 仅客户端
csharp
public float Delay { get; set; }延迟时间
HoldPrevious 仅客户端
csharp
public bool HoldPrevious { get; set; }保持前一个动画
Reverse 仅客户端
csharp
public bool Reverse { get; set; }反向播放
ShortestRotation 仅客户端
csharp
public bool ShortestRotation { get; set; }最短旋转路径
EventThreshold 仅客户端
csharp
public float EventThreshold { get; set; }事件阈值
MixAttachmentThreshold 仅客户端
csharp
public float MixAttachmentThreshold { get; set; }附件混合阈值
AlphaAttachmentThreshold 仅客户端
csharp
public float AlphaAttachmentThreshold { get; set; }透明度附件阈值
MixDrawOrderThreshold 仅客户端
csharp
public float MixDrawOrderThreshold { get; set; }绘制顺序混合阈值
TrackComplete 仅客户端
csharp
public float TrackComplete { get; }轨道完成进度(只读)
方法
Equals 仅客户端
csharp
public bool Equals(SpineTrackEntry? other)Equals 仅客户端
csharp
public override bool Equals(object? obj)GetHashCode 仅客户端
csharp
public override int GetHashCode()operator == 仅客户端
csharp
public static bool operator ==(SpineTrackEntry? left, SpineTrackEntry? right)operator != 仅客户端
csharp
public static bool operator !=(SpineTrackEntry? left, SpineTrackEntry? right)SetMixBlend 仅客户端
csharp
public void SetMixBlend(int mixBlend)设置混合模式
GetNext 仅客户端
csharp
public SpineTrackEntry? GetNext()获取队列中的下一个动画,无则返回 null
GetPrevious 仅客户端
csharp
public SpineTrackEntry? GetPrevious()获取混合链中的上一个动画,无则返回 null