RoboticArms/Library/PackageCache/com.unity.splines@d3e1e500c9a0/Samples~/Editor/PackageDependencyChecker.cs
2025-11-17 15:16:36 +07:00

55 lines
1.7 KiB
C#

using System.Collections.Generic;
using UnityEditor;
using UnityEditor.PackageManager.Requests;
using UnityEditor.PackageManager;
using UnityEngine;
namespace Unity.Splines.Examples.Editor
{
static class PackageDependencyChecker
{
const string k_SessionStateCheck = "SplinePackageExampleDependencyCheckPerformed";
static ListRequest s_Request;
static readonly List<string> s_PackageIDs = new()
{
"com.unity.render-pipelines.high-definition",
"com.unity.render-pipelines.universal",
"com.unity.shadergraph"
};
[InitializeOnLoadMethod]
static void CheckDependencies()
{
if (SessionState.GetBool(k_SessionStateCheck, false))
return;
SessionState.SetBool(k_SessionStateCheck, true);
s_Request = Client.List();
EditorApplication.update += PollRequest;
}
static void PollRequest()
{
if (s_Request.IsCompleted)
{
var found = false;
if (s_Request.Status == StatusCode.Success)
{
foreach (var package in s_Request.Result)
{
if (s_PackageIDs.Contains(package.name))
{
found = true;
break;
}
}
}
if (!found)
Debug.LogError("To properly view Splines Samples please install the Shader Graph package.");
EditorApplication.update -= PollRequest;
}
}
}
}