public void Initialize() { mesh = new Mesh(); GetComponent <MeshFilter>().mesh = mesh; mesh.name = "Skeleton Mesh"; mesh.hideFlags = HideFlags.HideAndDontSave; state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData()); skeleton = new Skeleton(skeletonDataAsset.GetSkeletonData(false)); }
public void Initialize(bool overwrite) { if (this.IsValid && !overwrite) { return; } // Make sure none of the stuff is null if (this.skeletonDataAsset == null) { return; } var skeletonData = this.skeletonDataAsset.GetSkeletonData(false); if (skeletonData == null) { return; } if (skeletonDataAsset.atlasAssets.Length <= 0 || skeletonDataAsset.atlasAssets[0].materials.Length <= 0) { return; } this.state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData()); if (state == null) { Clear(); return; } this.skeleton = new Skeleton(skeletonData); this.spineMeshGenerator = new Spine.Unity.ArraysSimpleMeshGenerator(); // You can switch this out with any other implementer of ISpineMeshGenerator // Set the initial Skin and Animation if (!string.IsNullOrEmpty(initialSkinName)) { skeleton.SetSkin(initialSkinName); } if (!string.IsNullOrEmpty(startingAnimation)) { state.SetAnimation(0, startingAnimation, startingLoop); } }
void Selector(SerializedProperty property) { SpineAnimation attrib = (SpineAnimation)attribute; GenericMenu menu = new GenericMenu(); var animations = skeletonDataAsset.GetAnimationStateData().SkeletonData.Animations; for (int i = 0; i < animations.Count; i++) { string name = animations[i].Name; if (name.StartsWith(attrib.startsWith)) { menu.AddItem(new GUIContent(name), name == property.stringValue, HandleSelect, new SpineDrawerValuePair(name, property)); } } menu.ShowAsContext(); }