A game about forced loneliness, made by TACStudios
1#if UNITY_EDITOR && UNITY_2021_1_OR_NEWER
2#define CAN_USE_CUSTOM_HELP_URL
3#endif
4
5using System;
6using System.Diagnostics;
7using UnityEngine;
8
9namespace Unity.VisualScripting
10{
11#if CAN_USE_CUSTOM_HELP_URL
12using UnityEditor.PackageManager;
13 [Conditional("UNITY_EDITOR")]
14 class VisualScriptingHelpURLAttribute : HelpURLAttribute
15 {
16 const string k_BaseURL = "https://docs.unity3d.com/Packages/com.unity.visualscripting@";
17 const string k_MidURL = "/api/";
18 const string k_EndURL = ".html";
19 const string k_FallbackVersion = "1.9";
20
21 static string s_PackageVersion;
22
23 static string PackageVersion
24 {
25 get
26 {
27 if (string.IsNullOrEmpty(s_PackageVersion))
28 {
29 var packageInfo = PackageInfo.FindForAssetPath("Packages/com.unity.visualscripting");
30 s_PackageVersion = packageInfo == null ? k_FallbackVersion : GetMinorPackageVersionString(packageInfo.version);
31 }
32
33 return s_PackageVersion;
34 }
35 }
36
37 // internal for test
38 internal static string GetMinorPackageVersionString(string versionString)
39 {
40 var split = versionString.Split('.');
41 return split.Length < 2 ? $"{split[0]}.0" : $"{split[0]}.{split[1]}";
42 }
43
44 public VisualScriptingHelpURLAttribute(Type type)
45 : base(HelpURL(type)) {}
46
47 static string HelpURL(Type type)
48 {
49 return $"{k_BaseURL}{PackageVersion}{k_MidURL}{type.FullName}{k_EndURL}";
50 }
51 }
52#else //HelpURL attribute is `sealed` in previous Unity versions
53 [Conditional("UNITY_EDITOR")]
54 class VisualScriptingHelpURLAttribute : Attribute
55 {
56 public VisualScriptingHelpURLAttribute(Type type) { }
57 }
58#endif
59}