在VS、Mono中使用Unity編輯器相關命名空間,然後F12就能跳到具體的編輯器命名空間定義中,查閱好相關字段、方法等,再使用反射技術就可以使用內部的私有方法。
參考:
#if UNITY_EDITOR
using UnityEditor;
using UnityEditor.Sprites;
using System.Reflection;
#endif
using UnityEngine;
using System;
using System.Collections;
using UnityEngine.UI;
using Object = UnityEngine.Object;
public class NewBehaviourScript : MonoBehaviour
{
void Start()
{
#if UNITY_EDITOR
MethodInfo dynMethod = typeof(PackageInfo).GetMethod("GetPackageList", BindingFlags.NonPublic | BindingFlags.Static);
object obj = dynMethod.Invoke(typeof(PackageInfo), null);
PackageInfo[] packageInfos = obj as PackageInfo[];
foreach(PackageInfo packageInfo in packageInfos)
{
Debug.Log("-----------------------------------------------");
Debug.Log(packageInfo.iconURL);
Debug.Log(packageInfo.jsonInfo);
Debug.Log(packageInfo.packagePath);
}
#endif
}