using System.Diagnostics;
namespace UnityEngine.Sequences
{
[Conditional("UNITY_EDITOR")]
class PackageHelpURLAttribute : HelpURLAttribute
{
///
/// Provide a custom documentation URL for a class.
/// Usage: [PageHelpURL("some-page-name", "some-section-title")]
///
/// Name of the corresponding page (and .md file)
/// Title of specific section referenced
public PackageHelpURLAttribute(string pageName, string sectionTitle = null)
: base(HelpURL(pageName, sectionTitle)) {}
static string HelpURL(string pageName, string sectionTitle = null)
{
var url = DocumentationInfo.baseURL +
DocumentationInfo.version +
DocumentationInfo.manual +
pageName +
DocumentationInfo.ext;
if (sectionTitle != null)
url += DocumentationInfo.titleRef + sectionTitle;
return url;
}
}
[Conditional("UNITY_EDITOR")]
class ComponentHelpURLAttribute : PackageHelpURLAttribute
{
// Usage: [ComponentHelpURL("some-component")]
public ComponentHelpURLAttribute(string componentSectionTitle)
: base("ref-components", componentSectionTitle) {}
}
class DocumentationInfo
{
public const string baseURL = "https://docs.unity3d.com/Packages/com.unity.sequences@";
public const string manual = "/manual/";
public const string ext = ".html";
public const string titleRef = "#";
const string fallbackVersion = "2.0";
public static string version
{
get
{
#if UNITY_EDITOR
UnityEditor.PackageManager.PackageInfo packageInfo = UnityEditor.PackageManager.PackageInfo.FindForAssembly(typeof(DocumentationInfo).Assembly);
if (packageInfo == null)
return fallbackVersion;
var splitVersion = packageInfo.version.Split('.');
var splitFallbackVersion = fallbackVersion.Split('.');
var majorVersion = int.Parse(splitVersion[0]);
var majorFallback = int.Parse(splitFallbackVersion[0]);
var minorVersion = int.Parse(splitVersion[1]);
var minorFallback = int.Parse(splitFallbackVersion[1]);
if (majorVersion > majorFallback || (majorVersion == majorFallback && minorVersion > minorFallback))
return fallbackVersion;
return $"{splitVersion[0]}.{splitVersion[1]}";
#else
return fallbackVersion;
#endif
}
}
}
}