public void Initialize(bool overwrite) { if ((IsValid && !overwrite) || skeletonDataAsset == null) { return; } SkeletonData skeletonData = skeletonDataAsset.GetSkeletonData(quiet: false); if (skeletonData == null || skeletonDataAsset.atlasAssets.Length <= 0 || skeletonDataAsset.atlasAssets[0].materials.Length <= 0) { return; } state = new AnimationState(skeletonDataAsset.GetAnimationStateData()); if (state == null) { Clear(); return; } skeleton = new Skeleton(skeletonData) { flipX = initialFlipX, flipY = initialFlipY }; meshBuffers = new DoubleBuffered <MeshRendererBuffers.SmartMesh>(); base.canvasRenderer.SetTexture(mainTexture); if (!string.IsNullOrEmpty(initialSkinName)) { skeleton.SetSkin(initialSkinName); } if (!string.IsNullOrEmpty(startingAnimation)) { state.SetAnimation(0, startingAnimation, startingLoop); Update(0f); } }
public void Initialize(bool overwrite) { if (this.IsValid && !overwrite) { return; } // Make sure none of the stuff is null if (this.skeletonDataAsset == null) { return; } if (this.skeletonDataAsset.atlasAssets.Length > 0) { material = skeletonDataAsset.atlasAssets[0].materials[0]; } 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.MeshGeneration.ArraysSimpleMeshGenerator(); // You can switch this out with any other implementer of Spine.Unity.MeshGeneration.ISimpleMeshGenerator this.spineMeshGenerator.PremultiplyVertexColors = true; // Set the initial Skin and Animation if (!string.IsNullOrEmpty(initialSkinName)) { skeleton.SetSkin(initialSkinName); } if (!string.IsNullOrEmpty(startingAnimation)) { state.SetAnimation(0, startingAnimation, startingLoop); } }
static int GetAnimationStateData(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); Spine.Unity.SkeletonDataAsset obj = (Spine.Unity.SkeletonDataAsset)ToLua.CheckObject <Spine.Unity.SkeletonDataAsset>(L, 1); Spine.AnimationStateData o = obj.GetAnimationStateData(); ToLua.PushObject(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
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) { flipX = this.initialFlipX, flipY = this.initialFlipY }; meshBuffers = new DoubleBuffered<MeshRendererBuffers.SmartMesh>(); canvasRenderer.SetTexture(this.mainTexture); // Needed for overwriting initializations. // Set the initial Skin and Animation if (!string.IsNullOrEmpty(initialSkinName)) skeleton.SetSkin(initialSkinName); #if UNITY_EDITOR if (!string.IsNullOrEmpty(startingAnimation)) { if (Application.isPlaying) { state.SetAnimation(0, startingAnimation, startingLoop); } else { // Assume SkeletonAnimation is valid for skeletonData and skeleton. Checked above. var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(startingAnimation); if (animationObject != null) animationObject.PoseSkeleton(skeleton, 0); } Update(0); } #else if (!string.IsNullOrEmpty(startingAnimation)) { state.SetAnimation(0, startingAnimation, startingLoop); Update(0); } #endif }
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].MaterialCount <= 0) { return; } this.state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData()); if (state == null) { Clear(); return; } this.skeleton = new Skeleton(skeletonData) { ScaleX = this.initialFlipX ? -1 : 1, ScaleY = this.initialFlipY ? -1 : 1 }; meshBuffers = new DoubleBuffered <MeshRendererBuffers.SmartMesh>(); baseTexture = skeletonDataAsset.atlasAssets[0].PrimaryMaterial.mainTexture; canvasRenderer.SetTexture(this.mainTexture); // Needed for overwriting initializations. // Set the initial Skin and Animation if (!string.IsNullOrEmpty(initialSkinName)) { skeleton.SetSkin(initialSkinName); } separatorSlots.Clear(); for (int i = 0; i < separatorSlotNames.Length; i++) { separatorSlots.Add(skeleton.FindSlot(separatorSlotNames[i])); } wasUpdatedAfterInit = false; if (!string.IsNullOrEmpty(startingAnimation)) { var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(startingAnimation); if (animationObject != null) { state.SetAnimation(0, animationObject, startingLoop); #if UNITY_EDITOR if (!Application.isPlaying) { Update(0f); } #endif } } if (OnRebuild != null) { OnRebuild(this); } }
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].MaterialCount <= 0) { return; } this.state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData()); if (state == null) { Clear(); return; } this.skeleton = new Skeleton(skeletonData) { scaleX = this.initialFlipX ? -1 : 1, scaleY = this.initialFlipY ? -1 : 1 }; meshBuffers = new DoubleBuffered <MeshRendererBuffers.SmartMesh>(); canvasRenderer.SetTexture(this.mainTexture); // Needed for overwriting initializations. // Set the initial Skin and Animation if (!string.IsNullOrEmpty(initialSkinName)) { skeleton.SetSkin(initialSkinName); } if (!string.IsNullOrEmpty(startingAnimation)) { var animationObject = skeletonDataAsset.GetSkeletonData(false).FindAnimation(startingAnimation); if (animationObject != null) { animationObject.PoseSkeleton(skeleton, 0f); skeleton.UpdateWorldTransform(); #if UNITY_EDITOR if (Application.isPlaying) { #endif // Make this block not run in Unity Editor edit mode. state.SetAnimation(0, animationObject, startingLoop); #if UNITY_EDITOR } #endif } } }