mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-04 14:24:53 +08:00
[unity] Fixed Perforce auto check-out of unchanged files upon re-import, performing rever unchanged automatically. Closes #2618.
This commit is contained in:
parent
cff6943c3a
commit
4038bc9ba1
@ -61,6 +61,7 @@ using System.Linq;
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
|
using UnityEditor.VersionControl;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using CompatibilityProblemInfo = Spine.Unity.SkeletonDataCompatibility.CompatibilityProblemInfo;
|
using CompatibilityProblemInfo = Spine.Unity.SkeletonDataCompatibility.CompatibilityProblemInfo;
|
||||||
|
|
||||||
@ -218,7 +219,7 @@ namespace Spine.Unity.Editor {
|
|||||||
} else {
|
} else {
|
||||||
// On a "Reimport All" the order of imports can be wrong, thus LoadAssetAtPath() above could return null.
|
// On a "Reimport All" the order of imports can be wrong, thus LoadAssetAtPath() above could return null.
|
||||||
// as a workaround, we provide a fallback reader.
|
// as a workaround, we provide a fallback reader.
|
||||||
input = File.Open(skeletonDataPath, FileMode.Open, FileAccess.Read);
|
input = File.Open(skeletonDataPath, System.IO.FileMode.Open, FileAccess.Read);
|
||||||
}
|
}
|
||||||
binary.ReadSkeletonData(input);
|
binary.ReadSkeletonData(input);
|
||||||
} finally {
|
} finally {
|
||||||
@ -493,6 +494,8 @@ namespace Spine.Unity.Editor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RevertUnchangedOnPerforce(atlasPaths, skeletonPaths, newAtlases);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void AddDependentAtlasIfImageChanged (List<string> atlasPaths, List<string> imagePaths) {
|
static void AddDependentAtlasIfImageChanged (List<string> atlasPaths, List<string> imagePaths) {
|
||||||
@ -526,6 +529,32 @@ namespace Spine.Unity.Editor {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>Prevents automatic check-out of unchanged, identically re-created assets (e.g. when re-imported)
|
||||||
|
/// when using Perforce VCS.</summary>
|
||||||
|
static void RevertUnchangedOnPerforce (List<string> atlasPaths, List<PathAndProblemInfo> skeletonPaths, List<AtlasAssetBase> newAtlases) {
|
||||||
|
Plugin versionControl = Provider.GetActivePlugin();
|
||||||
|
if (versionControl != null && versionControl.name == "Perforce") {
|
||||||
|
AssetList assets = new AssetList();
|
||||||
|
|
||||||
|
foreach (string atlasPath in atlasPaths) {
|
||||||
|
assets.Add(Provider.GetAssetByPath(atlasPath));
|
||||||
|
}
|
||||||
|
foreach (PathAndProblemInfo skeletonPathInfo in skeletonPaths) {
|
||||||
|
if (skeletonPathInfo.compatibilityProblems == null)
|
||||||
|
assets.Add(Provider.GetAssetByPath(skeletonPathInfo.path));
|
||||||
|
}
|
||||||
|
foreach (AtlasAssetBase atlas in newAtlases) {
|
||||||
|
if (atlas != null)
|
||||||
|
assets.Add(Provider.GetAssetByPath(AssetDatabase.GetAssetPath(atlas)));
|
||||||
|
foreach (Material atlasMaterial in atlas.Materials) {
|
||||||
|
if (atlasMaterial != null)
|
||||||
|
assets.Add(Provider.GetAssetByPath(AssetDatabase.GetAssetPath(atlasMaterial)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Provider.Revert(assets, RevertMode.Unchanged);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void ReloadSkeletonData (string skeletonJSONPath, CompatibilityProblemInfo compatibilityProblemInfo) {
|
static void ReloadSkeletonData (string skeletonJSONPath, CompatibilityProblemInfo compatibilityProblemInfo) {
|
||||||
string dir = Path.GetDirectoryName(skeletonJSONPath).Replace('\\', '/');
|
string dir = Path.GetDirectoryName(skeletonJSONPath).Replace('\\', '/');
|
||||||
TextAsset textAsset = AssetDatabase.LoadAssetAtPath<TextAsset>(skeletonJSONPath);
|
TextAsset textAsset = AssetDatabase.LoadAssetAtPath<TextAsset>(skeletonJSONPath);
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
"name": "com.esotericsoftware.spine.spine-unity",
|
"name": "com.esotericsoftware.spine.spine-unity",
|
||||||
"displayName": "spine-unity Runtime",
|
"displayName": "spine-unity Runtime",
|
||||||
"description": "This plugin provides the spine-unity runtime core.",
|
"description": "This plugin provides the spine-unity runtime core.",
|
||||||
"version": "4.2.82",
|
"version": "4.2.83",
|
||||||
"unity": "2018.3",
|
"unity": "2018.3",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "Esoteric Software",
|
"name": "Esoteric Software",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user