Skip to content

GameGraph.SpineSystem ​

SpineAnimationState 仅客户端 ​

命名空间 GameGraph.SpineSystem

csharp
public class SpineAnimationState : EngineObject

Spine 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 SpineBone

Spine 骨骼的托管包装。 通过原始指针访问底层 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 SpineEvent

Spine 动画事件的托管包装。 仅在事件回调期间有效,不应被缓存。

属性 ​

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 SpineEventType

Spine 动画事件类型。

枚举值 ​

  • Start
  • Interrupt
  • End
  • Complete
  • Dispose
  • Event

SpineInstance 仅客户端 ​

命名空间 GameGraph.SpineSystem

csharp
public class SpineInstance

Spine 实例,持有 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 : EngineObject

Spine 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 SpineSlot

Spine 插槽的托管包装。 通过原始指针访问底层 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