mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-25 03:01:26 +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 () {
|
override public void Initialize () {
|
||||||
base.Initialize(); // Call overridden method to initialize the skeleton.
|
if (Initialized) return;
|
||||||
|
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());
|
state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());
|
||||||
if (_animationName != null && _animationName.Length > 0) state.SetAnimation(0, _animationName, loop);
|
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<Material> submeshMaterials = new List<Material>();
|
||||||
private List<Submesh> submeshes = new List<Submesh>();
|
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 () {
|
public virtual void Clear () {
|
||||||
meshFilter.sharedMesh = null;
|
meshFilter.sharedMesh = null;
|
||||||
DestroyImmediate(mesh);
|
DestroyImmediate(mesh);
|
||||||
@ -69,6 +79,8 @@ public class SkeletonComponent : MonoBehaviour {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Initialize () {
|
public virtual void Initialize () {
|
||||||
|
if (Initialized) return;
|
||||||
|
|
||||||
meshFilter = GetComponent<MeshFilter>();
|
meshFilter = GetComponent<MeshFilter>();
|
||||||
mesh1 = newMesh();
|
mesh1 = newMesh();
|
||||||
mesh2 = newMesh();
|
mesh2 = newMesh();
|
||||||
|
|||||||
@ -60,8 +60,10 @@ public class SkeletonAnimation : SkeletonComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override public void Initialize () {
|
override public void Initialize () {
|
||||||
base.Initialize(); // Call overridden method to initialize the skeleton.
|
if (Initialized) return;
|
||||||
|
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());
|
state = new Spine.AnimationState(skeletonDataAsset.GetAnimationStateData());
|
||||||
if (_animationName != null && _animationName.Length > 0) state.SetAnimation(0, _animationName, loop);
|
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 Material[] sharedMaterials = new Material[0];
|
||||||
private List<Material> submeshMaterials = new List<Material>();
|
private List<Material> submeshMaterials = new List<Material>();
|
||||||
private List<Submesh> submeshes = new List<Submesh>();
|
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 () {
|
public virtual void Clear () {
|
||||||
meshFilter.sharedMesh = null;
|
meshFilter.sharedMesh = null;
|
||||||
@ -69,6 +79,8 @@ public class SkeletonComponent : MonoBehaviour {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Initialize () {
|
public virtual void Initialize () {
|
||||||
|
if (Initialized) return;
|
||||||
|
|
||||||
meshFilter = GetComponent<MeshFilter>();
|
meshFilter = GetComponent<MeshFilter>();
|
||||||
mesh1 = newMesh();
|
mesh1 = newMesh();
|
||||||
mesh2 = newMesh();
|
mesh2 = newMesh();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user