2025-07-08 10:46:31 +00:00
// Disable the warning: "Field 'DependencyCheck.Dependency.name' is never assigned to, and will always have its default value null"
#pragma warning disable 649
using UnityEditor ;
using System.Linq ;
namespace Pathfinding.Drawing.Util {
[InitializeOnLoad]
static class DependencyCheck {
struct Dependency {
public string name ;
public string version ;
}
static DependencyCheck ( ) {
var missingDependencies = new Dependency [ ] {
#if ! MODULE_BURST
new Dependency {
name = "com.unity.burst" ,
version = "1.2.1-preview" ,
} ,
#endif
#if ! MODULE_MATHEMATICS
new Dependency {
name = "com.unity.mathematics" ,
version = "1.1.0" ,
} ,
#endif
#if ! MODULE_COLLECTIONS
new Dependency {
name = "com.unity.collections" ,
version = "0.4.0-preview" ,
} ,
#endif
} ;
if ( missingDependencies . Length > 0 ) {
string missing = string . Join ( ", " , missingDependencies . Select ( p = > p . name + " (" + p . version + ")" ) ) ;
bool res = EditorUtility . DisplayDialog ( "Missing dependencies" , "The packages " + missing + " are required by ALINE but they are not installed, or the installed versions are too old. Do you want to install the latest versions of the packages?" , "Ok" , "Cancel" ) ;
if ( res ) {
foreach ( var dep in missingDependencies ) {
UnityEditor . PackageManager . Client . Add ( dep . name ) ;
}
}
}
}
}
}