PO/Library/PackageCache/com.unity.collab-proxy@1.9.0/Editor/PlasticSCM/AssetsUtils/AssetsPath.cs

72 lines
2.0 KiB
C#

using System.IO;
using System.Reflection;
using UnityEditor;
using UnityEngine;
using Codice.Client.Common;
using Codice.Utils;
using PlasticGui;
namespace Unity.PlasticSCM.Editor.AssetUtils
{
internal static class AssetsPath
{
internal static string GetLayoutsFolderRelativePath()
{
return string.Concat(mAssetsFolderLocation, "/Layouts");
}
internal static string GetStylesFolderRelativePath()
{
return string.Concat(mAssetsFolderLocation, "/Styles");
}
internal static string GetImagesFolderRelativePath()
{
return string.Concat(mAssetsFolderLocation, "/Images");
}
internal static string GetRelativePath(string fullPath)
{
return PathHelper.GetRelativePath(
mProjectFullPath, fullPath).Substring(1);
}
internal static string GetFullPath(Object obj)
{
string relativePath = AssetDatabase.GetAssetPath(obj);
if (string.IsNullOrEmpty(relativePath))
return null;
return Path.GetFullPath(relativePath);
}
static AssetsPath()
{
mAssetsFolderLocation = (IsRunningAsUPMPackage()) ?
"Packages/com.unity.collab-proxy/Editor/PlasticSCM/Assets" :
"Assets/Plugins/PlasticSCM/Editor/Assets";
}
internal static bool IsRunningAsUPMPackage()
{
string unityPlasticDllPath = Path.GetFullPath(
AssemblyLocation.GetAssemblyDirectory(
Assembly.GetAssembly(typeof(PlasticLocalization))));
return Directory.Exists(
Path.GetFullPath(Path.Combine(
unityPlasticDllPath,
// assets relative path when running as a UPM package
"../../../Editor/PlasticSCM/Assets")));
}
static string mProjectFullPath = ProjectPath.
FromApplicationDataPath(Application.dataPath);
static string mAssetsFolderLocation;
}
}