12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 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('\\', '/') + '/';
- }
- }
|