Skeleton2D
Объединяет кости, исходную позу и модификаторы скелета 2D.
Skeleton2D регистрирует прямые цепочки Bone2D и передаёт их позы для деформации полигона. Назначьте Polygon2D.Skeleton, пути к костям и веса: одна иерархия не создаёт деформацию.
GetBoneCount() и GetBone() вызывайте после входа скелета в дерево. Индексы относятся к текущей структуре скелета; не используйте их как постоянные идентификаторы сохранения. Стек SkeletonModificationStack2D позволяет выполнять IK во время игры. Этот API помечен экспериментальным; проверяйте результат при смене версии.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
Skeleton2DКонструктор
public Skeleton2D();Методы8
ExecuteModificationsvoid
public void ExecuteModifications(float delta, int executionMode);Выполняет все изменения в SkeletonModificationStack2D, если они назначены Skeleton2D.
| Имя | Тип | По умолчанию |
|---|---|---|
delta | float | — |
executionMode | int | — |
GetBoneBone2D
public Bone2D GetBone(int idx);Возвращает кость по текущему индексу. Требует скелет в дереве и индекс от 0 до GetBoneCount() - 1; при ошибке возвращает null. При изменении цепочки сначала обновите подготовку через GetBoneCount().
| Имя | Тип | По умолчанию |
|---|---|---|
idx | int | — |
Bone2DGetBoneCountint
public int GetBoneCount();Возвращает число зарегистрированных костей и при необходимости обновляет отложенную подготовку. Требует скелет в дереве; вне дерева сообщает ошибку и возвращает 0. Используйте после AddChild() или в _Ready().
intGetBoneLocalPoseOverrideTransform2D
public Transform2D GetBoneLocalPoseOverride(int boneIdx);Возвращает локальное преобразование переопределения позы для bone_idx.
| Имя | Тип | По умолчанию |
|---|---|---|
boneIdx | int | — |
Transform2DGetModificationStackSkeletonModificationStack2D
public SkeletonModificationStack2D GetModificationStack();Возвращает SkeletonModificationStack2D, прикрепленный к данному скелету, если таковой существует.
SkeletonModificationStack2DGetSkeletonRid
public Rid GetSkeleton();Возвращает Rid экземпляра Skeleton2D.
RidSetBoneLocalPoseOverridevoid
public void SetBoneLocalPoseOverride(int boneIdx, Transform2D overridePose, float strength, bool persistent);Устанавливает локальное преобразование позы, override_pose, для кости в bone_idx.
strength — это сила интерполяции, которая будет использоваться при применении позы, а persistent определяет, останется ли примененная поза.
Примечание: Преобразование позы должно быть локальным преобразованием относительно узла Bone2D в bone_idx!
| Имя | Тип | По умолчанию |
|---|---|---|
boneIdx | int | — |
overridePose | Transform2D | — |
strength | float | — |
persistent | bool | — |
SetModificationStackvoid
public void SetModificationStack(SkeletonModificationStack2D modificationStack);Заменяет стек модификаторов. Если скелет уже в дереве, связывает новый стек с ним и выполняет setup. Для работы IK включите стек и сам модификатор, задайте корректные пути и Strength. Стек API 2D остаётся экспериментальным.
| Имя | Тип | По умолчанию |
|---|---|---|
modificationStack | SkeletonModificationStack2D | — |
Сигналы и события1
BoneSetupChangedСобытие
public event Action BoneSetupChanged;Вызывается при изменении настройки Bone2D, прикрепленной к этим скелетам. В основном используется внутри скелета.