File size: 1,271 Bytes
18a519f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 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('\\', '/') + '/';
}
}
|