mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 23:34:53 +08:00
Made Initialize safe to call at any time.
This commit is contained in:
parent
2e46d250e5
commit
fc4934708f
@ -60,7 +60,9 @@ public class SkeletonAnimation : SkeletonComponent {
|
||||
}
|
||||
|
||||
override public void Initialize () {
|
||||
base.Initialize(); // Call overridden method to initialize the skeleton.
|
||||
if (Initialized) return;
|
||||
|
||||
base.Initialize();
|
||||
|
||||
state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());
|
||||
if (_animationName != null && _animationName.Length > 0) state.SetAnimation(0, _animationName, loop);
|
||||
|
||||
@ -58,6 +58,16 @@ public class SkeletonComponent : MonoBehaviour {
|
||||
private List<Material> submeshMaterials = new List<Material>();
|
||||
private List<Submesh> submeshes = new List<Submesh>();
|
||||
|
||||
/// <summary>False if Initialize needs to be called.</summary>
|
||||
public bool Initialized {
|
||||
get {
|
||||
if (skeletonDataAsset == null) return true;
|
||||
SkeletonData skeletonData = skeletonDataAsset.GetSkeletonData(false);
|
||||
if (skeletonData == null) return true;
|
||||
return skeleton != null && skeleton.Data == skeletonData;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Clear () {
|
||||
meshFilter.sharedMesh = null;
|
||||
DestroyImmediate(mesh);
|
||||
@ -69,6 +79,8 @@ public class SkeletonComponent : MonoBehaviour {
|
||||
}
|
||||
|
||||
public virtual void Initialize () {
|
||||
if (Initialized) return;
|
||||
|
||||
meshFilter = GetComponent<MeshFilter>();
|
||||
mesh1 = newMesh();
|
||||
mesh2 = newMesh();
|
||||
|
||||
@ -60,8 +60,10 @@ public class SkeletonAnimation : SkeletonComponent {
|
||||
}
|
||||
|
||||
override public void Initialize () {
|
||||
base.Initialize(); // Call overridden method to initialize the skeleton.
|
||||
|
||||
if (Initialized) return;
|
||||
|
||||
base.Initialize();
|
||||
|
||||
state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());
|
||||
if (_animationName != null && _animationName.Length > 0) state.SetAnimation(0, _animationName, loop);
|
||||
}
|
||||
|
||||
@ -57,6 +57,16 @@ public class SkeletonComponent : MonoBehaviour {
|
||||
private Material[] sharedMaterials = new Material[0];
|
||||
private List<Material> submeshMaterials = new List<Material>();
|
||||
private List<Submesh> submeshes = new List<Submesh>();
|
||||
|
||||
/// <summary>False if Initialize needs to be called.</summary>
|
||||
public bool Initialized {
|
||||
get {
|
||||
if (skeletonDataAsset == null) return true;
|
||||
SkeletonData skeletonData = skeletonDataAsset.GetSkeletonData(false);
|
||||
if (skeletonData == null) return true;
|
||||
return skeleton != null && skeleton.Data == skeletonData;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Clear () {
|
||||
meshFilter.sharedMesh = null;
|
||||
@ -69,6 +79,8 @@ public class SkeletonComponent : MonoBehaviour {
|
||||
}
|
||||
|
||||
public virtual void Initialize () {
|
||||
if (Initialized) return;
|
||||
|
||||
meshFilter = GetComponent<MeshFilter>();
|
||||
mesh1 = newMesh();
|
||||
mesh2 = newMesh();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user