在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
}