You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
using System; |
|
using System.IO; |
|
|
|
using UnityEditor; |
|
|
|
using Codice.Client.BaseCommands; |
|
|
|
namespace Unity.PlasticSCM.Editor.AssetUtils |
|
{ |
|
internal static class LoadAsset |
|
{ |
|
internal static UnityEngine.Object FromChangeInfo(ChangeInfo changeInfo) |
|
{ |
|
string changeFullPath = changeInfo.GetFullPath(); |
|
|
|
if (MetaPath.IsMetaPath(changeFullPath)) |
|
changeFullPath = MetaPath.GetPathFromMetaPath(changeFullPath); |
|
|
|
return FromFullPath(changeFullPath); |
|
} |
|
|
|
static UnityEngine.Object FromFullPath(string fullPath) |
|
{ |
|
if (!IsPathUnderProject(fullPath)) |
|
return null; |
|
|
|
return AssetDatabase.LoadMainAssetAtPath( |
|
AssetsPath.GetRelativePath(fullPath)); |
|
} |
|
|
|
static bool IsPathUnderProject(string path) |
|
{ |
|
if (string.IsNullOrEmpty(path)) |
|
return false; |
|
|
|
var fullPath = Path.GetFullPath(path).Replace('\\', '/'); |
|
|
|
return fullPath.StartsWith( |
|
mProjectRelativePath, |
|
StringComparison.OrdinalIgnoreCase); |
|
} |
|
|
|
static string mProjectRelativePath = |
|
Directory.GetCurrentDirectory().Replace('\\', '/') + '/'; |
|
} |
|
}
|
|
|