Skip to content
QiuHanWen edited this page Mar 22, 2024 · 3 revisions

你可以像其他Unity项目一样编写自己的代码,使用SDK或项目中已有的插件。

获取Manager单例

通过AD_ManagerHolder静态类可获取程序各Manager的单例:

public static class AD_ManagerHolder
{
    public static IAD_RuntimeEditorManager RuntimeEditorManager { get; internal set; }

    //——Setting——
    public static IAD_CommonSettingManager CommonSettingManager { get; internal set; }
    public static IAD_InputManager InputManager { get; internal set; }

    //——Mod——
    public static IAD_ModelManager ModelManager { get; internal set; }
    public static IAD_XRManager XRManager { get; internal set; }
    public static IAD_ShellManager ShellManager { get; internal set; }
    public static IAD_DecorationManager DecorationManager { get; internal set; }
    public static IAD_EnvironmentManager EnvironmentManager { get; internal set; }
    public static IAD_PostProcessingManager PostProcessingManager { get; internal set; }
}

接口

通过继承以下接口可接收回调:

  • IModHandler: Mod场景被加载/卸载
  • IHubSystemAudio_XXXDataChangedHandler: 系统音频数据改变

限制

出于安全原因,以下某些脚本不允许包含在mods中:

Assembly

  • UnityEditor
  • Mono.Cecil

Namespace

  • System.IO.*
  • UnityEngine.SceneManagement.*

Type

  • System.AppDomain
  • System.Threading.Process
  • UnityEngine.Input
  • Threeyes.IO.FileIO
  • Threeyes.External.ExternalResources
  • PathTool

Member

  • UnityEngine.Application.Quit

注意

  • 不支持继承ScriptableObject的自定义脚本,对这些脚本实例的任何引用都将在打包后解析为null。
  • 下载我的AliveDesktop_ModUploader模板项目可以更好地理解以上内容。
  • 如果本文档有什么错漏之处,欢迎及时指出,感谢你的反馈!
Clone this wiki locally