#if UNITY_EDITOR && UNITY_2021_1_OR_NEWER #define CAN_USE_CUSTOM_HELP_URL #endif using System; using System.Diagnostics; using UnityEngine; namespace UnityEngine.Timeline { #if CAN_USE_CUSTOM_HELP_URL using UnityEditor.PackageManager; [Conditional("UNITY_EDITOR")] class TimelineHelpURLAttribute : HelpURLAttribute { const string k_BaseURL = "https://docs.unity3d.com/Packages/com.unity.timeline@"; const string k_MidURL = "/api/"; const string k_EndURL = ".html"; const string k_FallbackVersion = "latest"; static readonly string k_PackageVersion; static TimelineHelpURLAttribute() { PackageInfo packageInfo = PackageInfo.FindForAssembly(typeof(TimelineAsset).Assembly); k_PackageVersion = packageInfo == null ? k_FallbackVersion : packageInfo.version.Substring(0, 3); } public TimelineHelpURLAttribute(Type type) : base(HelpURL(type)) {} static string HelpURL(Type type) { return $"{k_BaseURL}{k_PackageVersion}{k_MidURL}{type.FullName}{k_EndURL}"; } } #else //HelpURL attribute is `sealed` in previous Unity versions [Conditional("UNITY_EDITOR")] class TimelineHelpURLAttribute : Attribute { public TimelineHelpURLAttribute(Type type) {} } #endif }