[unity] Use IHasSkeletonDataAsset interface.

This commit is contained in:
pharan 2018-02-01 13:04:27 +08:00
parent 4c7a6b6501
commit cf7447628b
5 changed files with 12 additions and 12 deletions

View File

@ -79,10 +79,10 @@ namespace Spine.Unity.Editor {
var objectReferenceValue = dataField.objectReferenceValue; var objectReferenceValue = dataField.objectReferenceValue;
if (objectReferenceValue is SkeletonDataAsset) { if (objectReferenceValue is SkeletonDataAsset) {
skeletonDataAsset = (SkeletonDataAsset)objectReferenceValue; skeletonDataAsset = (SkeletonDataAsset)objectReferenceValue;
} else if (objectReferenceValue is ISkeletonComponent) { } else if (objectReferenceValue is IHasSkeletonDataAsset) {
var skeletonComponent = (ISkeletonComponent)objectReferenceValue; var hasSkeletonDataAsset = (IHasSkeletonDataAsset)objectReferenceValue;
if (skeletonComponent != null) if (hasSkeletonDataAsset != null)
skeletonDataAsset = skeletonComponent.SkeletonDataAsset; skeletonDataAsset = hasSkeletonDataAsset.SkeletonDataAsset;
} else if (objectReferenceValue != null) { } else if (objectReferenceValue != null) {
EditorGUI.LabelField(position, "ERROR:", "Invalid reference type"); EditorGUI.LabelField(position, "ERROR:", "Invalid reference type");
return; return;
@ -90,9 +90,9 @@ namespace Spine.Unity.Editor {
} else if (property.serializedObject.targetObject is Component) { } else if (property.serializedObject.targetObject is Component) {
var component = (Component)property.serializedObject.targetObject; var component = (Component)property.serializedObject.targetObject;
var skeletonComponent = component.GetComponentInChildren(typeof(ISkeletonComponent)) as ISkeletonComponent; var hasSkeletonDataAsset = component.GetComponentInChildren(typeof(IHasSkeletonDataAsset)) as IHasSkeletonDataAsset;
if (skeletonComponent != null) if (hasSkeletonDataAsset != null)
skeletonDataAsset = skeletonComponent.SkeletonDataAsset; skeletonDataAsset = hasSkeletonDataAsset.SkeletonDataAsset;
} }
if (skeletonDataAsset == null) { if (skeletonDataAsset == null) {

View File

@ -220,9 +220,9 @@ namespace Spine.Unity.Editor {
public static bool TargetsUseSameData (SerializedObject so) { public static bool TargetsUseSameData (SerializedObject so) {
if (so.isEditingMultipleObjects) { if (so.isEditingMultipleObjects) {
int n = so.targetObjects.Length; int n = so.targetObjects.Length;
var first = so.targetObjects[0] as ISkeletonComponent; var first = so.targetObjects[0] as IHasSkeletonDataAsset;
for (int i = 1; i < n; i++) { for (int i = 1; i < n; i++) {
var sr = so.targetObjects[i] as ISkeletonComponent; var sr = so.targetObjects[i] as IHasSkeletonDataAsset;
if (sr != null && sr.SkeletonDataAsset != first.SkeletonDataAsset) if (sr != null && sr.SkeletonDataAsset != first.SkeletonDataAsset)
return false; return false;
} }

View File

@ -42,7 +42,7 @@ namespace Spine.Unity {
} }
/// <summary>Holds a reference to a SkeletonDataAsset.</summary> /// <summary>Holds a reference to a SkeletonDataAsset.</summary>
public interface ISkeletonDataAssetComponent { public interface IHasSkeletonDataAsset {
/// <summary>Gets the SkeletonDataAsset of the Spine Component.</summary> /// <summary>Gets the SkeletonDataAsset of the Spine Component.</summary>
SkeletonDataAsset SkeletonDataAsset { get; } SkeletonDataAsset SkeletonDataAsset { get; }
} }

View File

@ -35,7 +35,7 @@ using Spine;
namespace Spine.Unity { namespace Spine.Unity {
[ExecuteInEditMode, RequireComponent(typeof(CanvasRenderer), typeof(RectTransform)), DisallowMultipleComponent] [ExecuteInEditMode, RequireComponent(typeof(CanvasRenderer), typeof(RectTransform)), DisallowMultipleComponent]
[AddComponentMenu("Spine/SkeletonGraphic (Unity UI Canvas)")] [AddComponentMenu("Spine/SkeletonGraphic (Unity UI Canvas)")]
public class SkeletonGraphic : MaskableGraphic, ISkeletonComponent, IAnimationStateComponent, ISkeletonAnimation, ISkeletonDataAssetComponent { public class SkeletonGraphic : MaskableGraphic, ISkeletonComponent, IAnimationStateComponent, ISkeletonAnimation, IHasSkeletonDataAsset {
#region Inspector #region Inspector
public SkeletonDataAsset skeletonDataAsset; public SkeletonDataAsset skeletonDataAsset;

View File

@ -38,7 +38,7 @@ namespace Spine.Unity {
/// <summary>Renders a skeleton.</summary> /// <summary>Renders a skeleton.</summary>
[ExecuteInEditMode, RequireComponent(typeof(MeshFilter), typeof(MeshRenderer)), DisallowMultipleComponent] [ExecuteInEditMode, RequireComponent(typeof(MeshFilter), typeof(MeshRenderer)), DisallowMultipleComponent]
[HelpURL("http://esotericsoftware.com/spine-unity-documentation#Rendering")] [HelpURL("http://esotericsoftware.com/spine-unity-documentation#Rendering")]
public class SkeletonRenderer : MonoBehaviour, ISkeletonComponent, ISkeletonDataAssetComponent { public class SkeletonRenderer : MonoBehaviour, ISkeletonComponent, IHasSkeletonDataAsset {
public delegate void SkeletonRendererDelegate (SkeletonRenderer skeletonRenderer); public delegate void SkeletonRendererDelegate (SkeletonRenderer skeletonRenderer);
public event SkeletonRendererDelegate OnRebuild; public event SkeletonRendererDelegate OnRebuild;