static bool PackageAvailable(PackageInfo packageInfo) { #if UNITY_2019_2_OR_NEWER var installedPackageInfo = PackageInfo.FindForAssetPath($"Packages/{packageInfo.name}"); return(installedPackageInfo != null && installedPackageInfo.version == packageInfo.version); #else return(packageInfo.status == PackageStatus.Available || packageInfo.status == PackageStatus.Error); #endif }
public void ConstPackageVersion_MatchesActualPackageVersion() { var packageInfo = PackageInfo.FindForAssetPath("Packages/com.unity.physics/package.json"); var expectedPackageVersionMajorMinor = new Regex(@"\d+\.\d+(?=\.\d+)").Match(packageInfo.version).Value; Assume.That(expectedPackageVersionMajorMinor, Is.Not.Empty, "Unable to determine current package version."); Assert.That( HelpURLs.PackageVersion, Is.EqualTo(expectedPackageVersionMajorMinor), $"Update {nameof(HelpURLs)}.{nameof(HelpURLs.PackageVersion)}" ); }
public PackageInfo GetPackageInfo(string packageName) { if (PackageInfoList.ContainsKey(packageName)) { return(PackageInfoList[packageName]); } PackageInfo packageInfo = PackageInfo.FindForAssetPath($"Packages/{packageName}"); PackageInfoList.Add(packageName, packageInfo); return(packageInfo); }
static AssemblyInfo GetAssemblyInfoFromAssemblyName(string assemblyName) { // by default let's assume it's not a package var assemblyInfo = new AssemblyInfo { name = assemblyName, relativePath = "Assets", readOnly = false }; var asmDefPath = CompilationPipeline.GetAssemblyDefinitionFilePathFromAssemblyName(assemblyInfo.name); if (asmDefPath != null) { assemblyInfo.asmDefPath = asmDefPath; var folders = asmDefPath.Split('/'); if (folders.Length > 2 && folders[0].Equals("Packages")) { assemblyInfo.relativePath = Path.Combine(folders[0], folders[1]).Replace("\\", "/"); #if UNITY_2019_3_OR_NEWER var info = PackageInfo.FindForAssetPath(asmDefPath); if (info != null) { assemblyInfo.readOnly = info.source != PackageSource.Embedded && info.source != PackageSource.Local; } #else assemblyInfo.readOnly = true; #endif } else { // non-package user-defined assembly } } else if (!assemblyInfo.name.StartsWith(DefaultAssemblyName)) { Debug.LogErrorFormat("Assembly Definition cannot be found for " + assemblyInfo.name); } return(assemblyInfo); }