Merge branch '3.6' into 3.7-beta

This commit is contained in:
pharan 2017-06-26 14:22:13 +08:00
commit 5a984d9f06
6 changed files with 62 additions and 46 deletions

View File

@ -616,14 +616,10 @@ namespace Spine {
propertyIDs.Clear();
var mixingTo = this.mixingTo;
TrackEntry lastEntry = null;
var tracksItems = tracks.Items;
for (int i = 0, n = tracks.Count; i < n; i++) {
var entry = tracksItems[i];
if (entry != null) {
entry.SetTimelineData(lastEntry, mixingTo, propertyIDs);
lastEntry = entry;
}
if (entry != null) entry.SetTimelineData(null, mixingTo, propertyIDs);
}
}

View File

@ -74,7 +74,8 @@ namespace Spine.Unity.Editor {
SpineEditorUtilities.ConfirmInitialization();
m_skeletonDataAsset = (SkeletonDataAsset)target;
atlasAssets = serializedObject.FindProperty("atlasAssets");
bool newAtlasAssets = atlasAssets == null;
if (newAtlasAssets) atlasAssets = serializedObject.FindProperty("atlasAssets");
skeletonJSON = serializedObject.FindProperty("skeletonJSON");
scale = serializedObject.FindProperty("scale");
fromAnimation = serializedObject.FindProperty("fromAnimation");
@ -87,10 +88,10 @@ namespace Spine.Unity.Editor {
#endif
#if SPINE_TK2D
atlasAssets.isExpanded = false;
if (newAtlasAssets) atlasAssets.isExpanded = false;
spriteCollection = serializedObject.FindProperty("spriteCollection");
#else
atlasAssets.isExpanded = true;
if (newAtlasAssets) atlasAssets.isExpanded = true;
#endif
m_skeletonDataAssetGUID = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(m_skeletonDataAsset));
@ -470,44 +471,56 @@ namespace Spine.Unity.Editor {
if (SpineEditorUtilities.IsSpineData((TextAsset)skeletonJSON.objectReferenceValue) == false) {
warnings.Add("Skeleton data file is not a valid JSON or binary file.");
} else {
#if !SPINE_TK2D
bool detectedNullAtlasEntry = false;
var atlasList = new List<Atlas>();
var actualAtlasAssets = m_skeletonDataAsset.atlasAssets;
for (int i = 0; i < actualAtlasAssets.Length; i++) {
if (m_skeletonDataAsset.atlasAssets[i] == null) {
detectedNullAtlasEntry = true;
break;
} else {
atlasList.Add(actualAtlasAssets[i].GetAtlas());
}
}
#if SPINE_TK2D
bool searchForSpineAtlasAssets = true;
bool isSpriteCollectionNull = spriteCollection.objectReferenceValue == null;
if (!isSpriteCollectionNull) searchForSpineAtlasAssets = false;
//else
// warnings.Add("Your sprite collection may have missing images.");
#else
const bool searchForSpineAtlasAssets = true;
#endif
if (detectedNullAtlasEntry)
warnings.Add("AtlasAsset elements should not be null.");
else {
// Get requirements.
var missingPaths = SpineEditorUtilities.GetRequiredAtlasRegions(AssetDatabase.GetAssetPath((TextAsset)skeletonJSON.objectReferenceValue));
if (searchForSpineAtlasAssets) {
bool detectedNullAtlasEntry = false;
var atlasList = new List<Atlas>();
var actualAtlasAssets = m_skeletonDataAsset.atlasAssets;
foreach (var atlas in atlasList) {
for (int i = 0; i < missingPaths.Count; i++) {
if (atlas.FindRegion(missingPaths[i]) != null) {
missingPaths.RemoveAt(i);
i--;
}
for (int i = 0; i < actualAtlasAssets.Length; i++) {
if (m_skeletonDataAsset.atlasAssets[i] == null) {
detectedNullAtlasEntry = true;
break;
} else {
atlasList.Add(actualAtlasAssets[i].GetAtlas());
}
}
foreach (var str in missingPaths)
warnings.Add("Missing Region: '" + str + "'");
if (detectedNullAtlasEntry) {
warnings.Add("AtlasAsset elements should not be null.");
} else {
// Get requirements.
var missingPaths = SpineEditorUtilities.GetRequiredAtlasRegions(AssetDatabase.GetAssetPath((TextAsset)skeletonJSON.objectReferenceValue));
foreach (var atlas in atlasList) {
for (int i = 0; i < missingPaths.Count; i++) {
if (atlas.FindRegion(missingPaths[i]) != null) {
missingPaths.RemoveAt(i);
i--;
}
}
}
#if SPINE_TK2D
if (missingPaths.Count > 0)
warnings.Add("Missing regions. SkeletonDataAsset requires tk2DSpriteCollectionData or Spine AtlasAssets.");
#endif
foreach (var str in missingPaths)
warnings.Add("Missing Region: '" + str + "'");
}
}
#else
if (spriteCollection.objectReferenceValue == null)
warnings.Add("SkeletonDataAsset requires tk2DSpriteCollectionData.");
// else
// warnings.Add("Your sprite collection may have missing images.");
#endif
}
}
}

View File

@ -74,7 +74,7 @@ namespace Spine.Unity {
/// <summary>
/// Sets the target bone by its bone name. Returns false if no bone was found.</summary>
public bool SetBoneByName (string name) {
public bool SetBone (string name) {
bone = skeletonRenderer.skeleton.FindBone(name);
if (bone == null) {
Debug.LogError("Bone not found: " + name, this);
@ -130,7 +130,7 @@ namespace Spine.Unity {
if (bone == null) {
if (string.IsNullOrEmpty(boneName)) return;
bone = skeletonRenderer.skeleton.FindBone(boneName);
if (!SetBoneByName(boneName)) return;
if (!SetBone(boneName)) return;
}
Transform thisTransform = this.transform;

View File

@ -357,7 +357,7 @@ namespace Spine.Unity {
material = (Material)((AtlasRegion)rendererObject).page.rendererObject;
}
#else
Material material = (rendererObject.GetType() == typeof(Material)) ? (Material)rendererObject : (Material)((AtlasRegion)rendererObject).page.rendererObject;
Material material = (rendererObject is Material) ? (Material)rendererObject : (Material)((AtlasRegion)rendererObject).page.rendererObject;
#endif
if (current.forceSeparate || (current.rawVertexCount > 0 && !System.Object.ReferenceEquals(current.material, material))) { // Material changed. Add the previous submesh.

View File

@ -156,7 +156,7 @@ namespace Spine.Unity.Editor {
if (Event.current.type == EventType.Repaint) {
if (addBoneFollower) {
var boneFollower = follower.gameObject.AddComponent<BoneFollower>();
boneFollower.SetBoneByName(follower.Slot.Data.BoneData.Name);
boneFollower.SetBone(follower.Slot.Data.BoneData.Name);
addBoneFollower = false;
}

View File

@ -122,11 +122,18 @@ namespace Spine.Unity {
#region Internals
// This is used by the UI system to determine what to put in the MaterialPropertyBlock.
public Texture OverrideTexture { get; set; }
Texture overrideTexture;
public Texture OverrideTexture {
get { return overrideTexture; }
set {
canvasRenderer.SetTexture(value);
overrideTexture = value;
}
}
public override Texture mainTexture {
get {
// Fail loudly when incorrectly set up.
if (OverrideTexture != null) return OverrideTexture;
if (overrideTexture != null) return overrideTexture;
return skeletonDataAsset == null ? null : skeletonDataAsset.atlasAssets[0].materials[0].mainTexture;
}
}