|
@@ -330,9 +330,11 @@ namespace Spine.Unity.Editor {
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
- SkeletonDataAssetInspector[] skeletonDataInspectors = Resources.FindObjectsOfTypeAll<SkeletonDataAssetInspector>();
|
|
|
|
- foreach (var inspector in skeletonDataInspectors) {
|
|
|
|
- inspector.UpdateSkeletonData();
|
|
|
|
|
|
+ if (atlasPaths.Count > 0 || imagePaths.Count > 0 || skeletonPaths.Count > 0) {
|
|
|
|
+ SkeletonDataAssetInspector[] skeletonDataInspectors = Resources.FindObjectsOfTypeAll<SkeletonDataAssetInspector>();
|
|
|
|
+ foreach (var inspector in skeletonDataInspectors) {
|
|
|
|
+ inspector.UpdateSkeletonData();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
// Any post processing of images
|
|
// Any post processing of images
|
|
@@ -905,13 +907,17 @@ namespace Spine.Unity.Editor {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public static SkeletonAnimation InstantiateSkeletonAnimation (SkeletonDataAsset skeletonDataAsset, string skinName, bool destroyInvalid = true) {
|
|
|
|
|
|
+ public static SkeletonAnimation InstantiateSkeletonAnimation (SkeletonDataAsset skeletonDataAsset, string skinName,
|
|
|
|
+ bool destroyInvalid = true, bool useObjectFactory = true) {
|
|
|
|
+
|
|
var skeletonData = skeletonDataAsset.GetSkeletonData(true);
|
|
var skeletonData = skeletonDataAsset.GetSkeletonData(true);
|
|
var skin = skeletonData != null ? skeletonData.FindSkin(skinName) : null;
|
|
var skin = skeletonData != null ? skeletonData.FindSkin(skinName) : null;
|
|
- return InstantiateSkeletonAnimation(skeletonDataAsset, skin, destroyInvalid);
|
|
|
|
|
|
+ return InstantiateSkeletonAnimation(skeletonDataAsset, skin, destroyInvalid, useObjectFactory);
|
|
}
|
|
}
|
|
|
|
|
|
- public static SkeletonAnimation InstantiateSkeletonAnimation (SkeletonDataAsset skeletonDataAsset, Skin skin = null, bool destroyInvalid = true) {
|
|
|
|
|
|
+ public static SkeletonAnimation InstantiateSkeletonAnimation (SkeletonDataAsset skeletonDataAsset, Skin skin = null,
|
|
|
|
+ bool destroyInvalid = true, bool useObjectFactory = true) {
|
|
|
|
+
|
|
SkeletonData data = skeletonDataAsset.GetSkeletonData(true);
|
|
SkeletonData data = skeletonDataAsset.GetSkeletonData(true);
|
|
|
|
|
|
if (data == null) {
|
|
if (data == null) {
|
|
@@ -928,7 +934,8 @@ namespace Spine.Unity.Editor {
|
|
}
|
|
}
|
|
|
|
|
|
string spineGameObjectName = string.Format("Spine GameObject ({0})", skeletonDataAsset.name.Replace("_SkeletonData", ""));
|
|
string spineGameObjectName = string.Format("Spine GameObject ({0})", skeletonDataAsset.name.Replace("_SkeletonData", ""));
|
|
- GameObject go = EditorInstantiation.NewGameObject(spineGameObjectName, typeof(MeshFilter), typeof(MeshRenderer), typeof(SkeletonAnimation));
|
|
|
|
|
|
+ GameObject go = EditorInstantiation.NewGameObject(spineGameObjectName, useObjectFactory,
|
|
|
|
+ typeof(MeshFilter), typeof(MeshRenderer), typeof(SkeletonAnimation));
|
|
SkeletonAnimation newSkeletonAnimation = go.GetComponent<SkeletonAnimation>();
|
|
SkeletonAnimation newSkeletonAnimation = go.GetComponent<SkeletonAnimation>();
|
|
newSkeletonAnimation.skeletonDataAsset = skeletonDataAsset;
|
|
newSkeletonAnimation.skeletonDataAsset = skeletonDataAsset;
|
|
TryInitializeSkeletonRendererSettings(newSkeletonAnimation, skin);
|
|
TryInitializeSkeletonRendererSettings(newSkeletonAnimation, skin);
|
|
@@ -954,28 +961,28 @@ namespace Spine.Unity.Editor {
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>Handles creating a new GameObject in the Unity Editor. This uses the new ObjectFactory API where applicable.</summary>
|
|
/// <summary>Handles creating a new GameObject in the Unity Editor. This uses the new ObjectFactory API where applicable.</summary>
|
|
- public static GameObject NewGameObject (string name) {
|
|
|
|
|
|
+ public static GameObject NewGameObject (string name, bool useObjectFactory) {
|
|
#if NEW_PREFAB_SYSTEM
|
|
#if NEW_PREFAB_SYSTEM
|
|
- return ObjectFactory.CreateGameObject(name);
|
|
|
|
- #else
|
|
|
|
- return new GameObject(name);
|
|
|
|
|
|
+ if (useObjectFactory)
|
|
|
|
+ return ObjectFactory.CreateGameObject(name);
|
|
#endif
|
|
#endif
|
|
|
|
+ return new GameObject(name);
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>Handles creating a new GameObject in the Unity Editor. This uses the new ObjectFactory API where applicable.</summary>
|
|
/// <summary>Handles creating a new GameObject in the Unity Editor. This uses the new ObjectFactory API where applicable.</summary>
|
|
- public static GameObject NewGameObject (string name, params System.Type[] components) {
|
|
|
|
|
|
+ public static GameObject NewGameObject (string name, bool useObjectFactory, params System.Type[] components) {
|
|
#if NEW_PREFAB_SYSTEM
|
|
#if NEW_PREFAB_SYSTEM
|
|
- return ObjectFactory.CreateGameObject(name, components);
|
|
|
|
- #else
|
|
|
|
- return new GameObject(name, components);
|
|
|
|
|
|
+ if (useObjectFactory)
|
|
|
|
+ return ObjectFactory.CreateGameObject(name, components);
|
|
#endif
|
|
#endif
|
|
|
|
+ return new GameObject(name, components);
|
|
}
|
|
}
|
|
|
|
|
|
- public static void InstantiateEmptySpineGameObject<T> (string name) where T : MonoBehaviour {
|
|
|
|
|
|
+ public static void InstantiateEmptySpineGameObject<T> (string name, bool useObjectFactory) where T : MonoBehaviour {
|
|
var parentGameObject = Selection.activeObject as GameObject;
|
|
var parentGameObject = Selection.activeObject as GameObject;
|
|
var parentTransform = parentGameObject == null ? null : parentGameObject.transform;
|
|
var parentTransform = parentGameObject == null ? null : parentGameObject.transform;
|
|
|
|
|
|
- var gameObject = EditorInstantiation.NewGameObject(name, typeof(T));
|
|
|
|
|
|
+ var gameObject = EditorInstantiation.NewGameObject(name, useObjectFactory, typeof(T));
|
|
gameObject.transform.SetParent(parentTransform, false);
|
|
gameObject.transform.SetParent(parentTransform, false);
|
|
EditorUtility.FocusProjectWindow();
|
|
EditorUtility.FocusProjectWindow();
|
|
Selection.activeObject = gameObject;
|
|
Selection.activeObject = gameObject;
|
|
@@ -988,7 +995,8 @@ namespace Spine.Unity.Editor {
|
|
return InstantiateSkeletonMecanim(skeletonDataAsset, skeletonDataAsset.GetSkeletonData(true).FindSkin(skinName));
|
|
return InstantiateSkeletonMecanim(skeletonDataAsset, skeletonDataAsset.GetSkeletonData(true).FindSkin(skinName));
|
|
}
|
|
}
|
|
|
|
|
|
- public static SkeletonMecanim InstantiateSkeletonMecanim (SkeletonDataAsset skeletonDataAsset, Skin skin = null, bool destroyInvalid = true) {
|
|
|
|
|
|
+ public static SkeletonMecanim InstantiateSkeletonMecanim (SkeletonDataAsset skeletonDataAsset, Skin skin = null,
|
|
|
|
+ bool destroyInvalid = true, bool useObjectFactory = true) {
|
|
SkeletonData data = skeletonDataAsset.GetSkeletonData(true);
|
|
SkeletonData data = skeletonDataAsset.GetSkeletonData(true);
|
|
|
|
|
|
if (data == null) {
|
|
if (data == null) {
|
|
@@ -1005,7 +1013,8 @@ namespace Spine.Unity.Editor {
|
|
}
|
|
}
|
|
|
|
|
|
string spineGameObjectName = string.Format("Spine Mecanim GameObject ({0})", skeletonDataAsset.name.Replace("_SkeletonData", ""));
|
|
string spineGameObjectName = string.Format("Spine Mecanim GameObject ({0})", skeletonDataAsset.name.Replace("_SkeletonData", ""));
|
|
- GameObject go = EditorInstantiation.NewGameObject(spineGameObjectName, typeof(MeshFilter), typeof(MeshRenderer), typeof(Animator), typeof(SkeletonMecanim));
|
|
|
|
|
|
+ GameObject go = EditorInstantiation.NewGameObject(spineGameObjectName, useObjectFactory,
|
|
|
|
+ typeof(MeshFilter), typeof(MeshRenderer), typeof(Animator), typeof(SkeletonMecanim));
|
|
|
|
|
|
if (skeletonDataAsset.controller == null) {
|
|
if (skeletonDataAsset.controller == null) {
|
|
SkeletonBaker.GenerateMecanimAnimationClips(skeletonDataAsset);
|
|
SkeletonBaker.GenerateMecanimAnimationClips(skeletonDataAsset);
|