如何检查项目中是否安装了包

lik*_*uku 1 unity-game-engine

我正在创建一个在场景中查找文本字段的模块。如果安装了 TextMeshPro,它将查找它,如果没有,则查找常规文本字段/文本网格

问题是:我怎样才能条件(伪代码)

if(textMeshProExists)
    Look for A
else
    Look for B
Run Code Online (Sandbox Code Playgroud)

0xB*_*1A8 5

您可以使用包管理器脚本 API以编程方式与包管理器进行交互。

浏览项目中的包列表:

using System;
using UnityEditor;
using UnityEditor.PackageManager.Requests;
using UnityEditor.PackageManager;
using UnityEngine;

namespace Unity.Editor.Example {
   static class ListPackageExample
   {
       static ListRequest Request;

       [MenuItem("Window/List Package Example")]
       static void List()
       {
           Request = Client.List();    // List packages installed for the Project
           EditorApplication.update += Progress;
       }

       static void Progress()
       {
           if (Request.IsCompleted)
           {
               if (Request.Status == StatusCode.Success)
                   foreach (var package in Request.Result)
                       Debug.Log("Package name: " + package.name);
               else if (Request.Status >= StatusCode.Failure)
                   Debug.Log(Request.Error.message);

               EditorApplication.update -= Progress;
           }
       }
   }
}
Run Code Online (Sandbox Code Playgroud)