mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-26 03:31:24 +08:00
[Unity] SpineAttributeBase & EventDataAttribute
This commit is contained in:
parent
da10b70b84
commit
7d002f99e5
@ -7,9 +7,12 @@
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
|
||||||
public class SpineSlot : PropertyAttribute {
|
public abstract class SpineAttributeBase : PropertyAttribute {
|
||||||
public string startsWith = "";
|
|
||||||
public string dataField = "";
|
public string dataField = "";
|
||||||
|
public string startsWith = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SpineSlot : SpineAttributeBase {
|
||||||
public bool containsBoundingBoxes = false;
|
public bool containsBoundingBoxes = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -21,17 +24,29 @@ public class SpineSlot : PropertyAttribute {
|
|||||||
/// If left empty and the script the attribute is applied to is derived from Component, GetComponent<SkeletonRenderer>() will be called as a fallback.
|
/// If left empty and the script the attribute is applied to is derived from Component, GetComponent<SkeletonRenderer>() will be called as a fallback.
|
||||||
/// </param>
|
/// </param>
|
||||||
/// <param name="containsBoundingBoxes">Disables popup results that don't contain bounding box attachments when true.</param>
|
/// <param name="containsBoundingBoxes">Disables popup results that don't contain bounding box attachments when true.</param>
|
||||||
public SpineSlot (string startsWith = "", string dataField = "", bool containsBoundingBoxes = false) {
|
public SpineSlot(string startsWith = "", string dataField = "", bool containsBoundingBoxes = false) {
|
||||||
this.startsWith = startsWith;
|
this.startsWith = startsWith;
|
||||||
this.dataField = dataField;
|
this.dataField = dataField;
|
||||||
this.containsBoundingBoxes = containsBoundingBoxes;
|
this.containsBoundingBoxes = containsBoundingBoxes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SpineSkin : PropertyAttribute {
|
public class SpineEventData : SpineAttributeBase {
|
||||||
public string startsWith = "";
|
/// <summary>
|
||||||
public string dataField = "";
|
/// Smart popup menu for Spine Events (Spine.EventData)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="startsWith">Filters popup results to elements that begin with supplied string.</param>
|
||||||
|
/// <param name="dataField">If specified, a locally scoped field with the name supplied by in dataField will be used to fill the popup results.
|
||||||
|
/// Valid types are SkeletonDataAsset and SkeletonRenderer (and derivatives).
|
||||||
|
/// If left empty and the script the attribute is applied to is derived from Component, GetComponent<SkeletonRenderer>() will be called as a fallback.
|
||||||
|
/// </param>
|
||||||
|
public SpineEventData(string startsWith = "", string dataField = "") {
|
||||||
|
this.startsWith = startsWith;
|
||||||
|
this.dataField = dataField;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SpineSkin : SpineAttributeBase {
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Smart popup menu for Spine Skins
|
/// Smart popup menu for Spine Skins
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -40,15 +55,12 @@ public class SpineSkin : PropertyAttribute {
|
|||||||
/// Valid types are SkeletonDataAsset and SkeletonRenderer (and derivatives)
|
/// Valid types are SkeletonDataAsset and SkeletonRenderer (and derivatives)
|
||||||
/// If left empty and the script the attribute is applied to is derived from Component, GetComponent<SkeletonRenderer>() will be called as a fallback.
|
/// If left empty and the script the attribute is applied to is derived from Component, GetComponent<SkeletonRenderer>() will be called as a fallback.
|
||||||
/// </param>
|
/// </param>
|
||||||
public SpineSkin (string startsWith = "", string dataField = "") {
|
public SpineSkin(string startsWith = "", string dataField = "") {
|
||||||
this.startsWith = startsWith;
|
this.startsWith = startsWith;
|
||||||
this.dataField = dataField;
|
this.dataField = dataField;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public class SpineAnimation : PropertyAttribute {
|
public class SpineAnimation : SpineAttributeBase {
|
||||||
public string startsWith = "";
|
|
||||||
public string dataField = "";
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Smart popup menu for Spine Animations
|
/// Smart popup menu for Spine Animations
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -57,24 +69,18 @@ public class SpineAnimation : PropertyAttribute {
|
|||||||
/// Valid types are SkeletonDataAsset and SkeletonRenderer (and derivatives)
|
/// Valid types are SkeletonDataAsset and SkeletonRenderer (and derivatives)
|
||||||
/// If left empty and the script the attribute is applied to is derived from Component, GetComponent<SkeletonRenderer>() will be called as a fallback.
|
/// If left empty and the script the attribute is applied to is derived from Component, GetComponent<SkeletonRenderer>() will be called as a fallback.
|
||||||
/// </param>
|
/// </param>
|
||||||
public SpineAnimation (string startsWith = "", string dataField = "") {
|
public SpineAnimation(string startsWith = "", string dataField = "") {
|
||||||
this.startsWith = startsWith;
|
this.startsWith = startsWith;
|
||||||
this.dataField = dataField;
|
this.dataField = dataField;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SpineAttachment : PropertyAttribute {
|
public class SpineAttachment : SpineAttributeBase {
|
||||||
public bool returnAttachmentPath = false;
|
public bool returnAttachmentPath = false;
|
||||||
public bool currentSkinOnly = false;
|
public bool currentSkinOnly = false;
|
||||||
public bool placeholdersOnly = false;
|
public bool placeholdersOnly = false;
|
||||||
public string dataField = "";
|
|
||||||
public string slotField = "";
|
public string slotField = "";
|
||||||
|
|
||||||
|
|
||||||
public SpineAttachment () {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Smart popup menu for Spine Attachments
|
/// Smart popup menu for Spine Attachments
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -86,7 +92,7 @@ public class SpineAttachment : PropertyAttribute {
|
|||||||
/// Valid types are SkeletonDataAsset and SkeletonRenderer (and derivatives)
|
/// Valid types are SkeletonDataAsset and SkeletonRenderer (and derivatives)
|
||||||
/// If left empty and the script the attribute is applied to is derived from Component, GetComponent<SkeletonRenderer>() will be called as a fallback.
|
/// If left empty and the script the attribute is applied to is derived from Component, GetComponent<SkeletonRenderer>() will be called as a fallback.
|
||||||
/// </param>
|
/// </param>
|
||||||
public SpineAttachment (bool currentSkinOnly = true, bool returnAttachmentPath = false, bool placeholdersOnly = false, string slotField = "", string dataField = "") {
|
public SpineAttachment(bool currentSkinOnly = true, bool returnAttachmentPath = false, bool placeholdersOnly = false, string slotField = "", string dataField = "") {
|
||||||
this.currentSkinOnly = currentSkinOnly;
|
this.currentSkinOnly = currentSkinOnly;
|
||||||
this.returnAttachmentPath = returnAttachmentPath;
|
this.returnAttachmentPath = returnAttachmentPath;
|
||||||
this.placeholdersOnly = placeholdersOnly;
|
this.placeholdersOnly = placeholdersOnly;
|
||||||
@ -94,11 +100,11 @@ public class SpineAttachment : PropertyAttribute {
|
|||||||
this.dataField = dataField;
|
this.dataField = dataField;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Hierarchy GetHierarchy (string fullPath) {
|
public static Hierarchy GetHierarchy(string fullPath) {
|
||||||
return new Hierarchy(fullPath);
|
return new Hierarchy(fullPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Spine.Attachment GetAttachment (string attachmentPath, Spine.SkeletonData skeletonData) {
|
public static Spine.Attachment GetAttachment(string attachmentPath, Spine.SkeletonData skeletonData) {
|
||||||
var hierarchy = SpineAttachment.GetHierarchy(attachmentPath);
|
var hierarchy = SpineAttachment.GetHierarchy(attachmentPath);
|
||||||
if (hierarchy.name == "")
|
if (hierarchy.name == "")
|
||||||
return null;
|
return null;
|
||||||
@ -106,7 +112,7 @@ public class SpineAttachment : PropertyAttribute {
|
|||||||
return skeletonData.FindSkin(hierarchy.skin).GetAttachment(skeletonData.FindSlotIndex(hierarchy.slot), hierarchy.name);
|
return skeletonData.FindSkin(hierarchy.skin).GetAttachment(skeletonData.FindSlotIndex(hierarchy.slot), hierarchy.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Spine.Attachment GetAttachment (string attachmentPath, SkeletonDataAsset skeletonDataAsset) {
|
public static Spine.Attachment GetAttachment(string attachmentPath, SkeletonDataAsset skeletonDataAsset) {
|
||||||
return GetAttachment(attachmentPath, skeletonDataAsset.GetSkeletonData(true));
|
return GetAttachment(attachmentPath, skeletonDataAsset.GetSkeletonData(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -115,14 +121,15 @@ public class SpineAttachment : PropertyAttribute {
|
|||||||
public string slot;
|
public string slot;
|
||||||
public string name;
|
public string name;
|
||||||
|
|
||||||
public Hierarchy (string fullPath) {
|
public Hierarchy(string fullPath) {
|
||||||
string[] chunks = fullPath.Split(new char[] { '/' }, System.StringSplitOptions.RemoveEmptyEntries);
|
string[] chunks = fullPath.Split(new char[]{'/'}, System.StringSplitOptions.RemoveEmptyEntries);
|
||||||
if (chunks.Length == 0) {
|
if (chunks.Length == 0) {
|
||||||
skin = "";
|
skin = "";
|
||||||
slot = "";
|
slot = "";
|
||||||
name = "";
|
name = "";
|
||||||
return;
|
return;
|
||||||
} else if (chunks.Length < 2) {
|
}
|
||||||
|
else if (chunks.Length < 2) {
|
||||||
throw new System.Exception("Cannot generate Attachment Hierarchy from string! Not enough components! [" + fullPath + "]");
|
throw new System.Exception("Cannot generate Attachment Hierarchy from string! Not enough components! [" + fullPath + "]");
|
||||||
}
|
}
|
||||||
skin = chunks[0];
|
skin = chunks[0];
|
||||||
@ -135,10 +142,7 @@ public class SpineAttachment : PropertyAttribute {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SpineBone : PropertyAttribute {
|
public class SpineBone : SpineAttributeBase {
|
||||||
public string startsWith = "";
|
|
||||||
public string dataField = "";
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Smart popup menu for Spine Bones
|
/// Smart popup menu for Spine Bones
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -147,19 +151,19 @@ public class SpineBone : PropertyAttribute {
|
|||||||
/// Valid types are SkeletonDataAsset and SkeletonRenderer (and derivatives)
|
/// Valid types are SkeletonDataAsset and SkeletonRenderer (and derivatives)
|
||||||
/// If left empty and the script the attribute is applied to is derived from Component, GetComponent<SkeletonRenderer>() will be called as a fallback.
|
/// If left empty and the script the attribute is applied to is derived from Component, GetComponent<SkeletonRenderer>() will be called as a fallback.
|
||||||
/// </param>
|
/// </param>
|
||||||
public SpineBone (string startsWith = "", string dataField = "") {
|
public SpineBone(string startsWith = "", string dataField = "") {
|
||||||
this.startsWith = startsWith;
|
this.startsWith = startsWith;
|
||||||
this.dataField = dataField;
|
this.dataField = dataField;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Spine.Bone GetBone (string boneName, SkeletonRenderer renderer) {
|
public static Spine.Bone GetBone(string boneName, SkeletonRenderer renderer) {
|
||||||
if (renderer.skeleton == null)
|
if (renderer.skeleton == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
return renderer.skeleton.FindBone(boneName);
|
return renderer.skeleton.FindBone(boneName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Spine.BoneData GetBoneData (string boneName, SkeletonDataAsset skeletonDataAsset) {
|
public static Spine.BoneData GetBoneData(string boneName, SkeletonDataAsset skeletonDataAsset) {
|
||||||
var data = skeletonDataAsset.GetSkeletonData(true);
|
var data = skeletonDataAsset.GetSkeletonData(true);
|
||||||
|
|
||||||
return data.FindBone(boneName);
|
return data.FindBone(boneName);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user