Mod 开发限制
API 限制
出于安全或技术原因,当前版本限制 Mod 在运行时访问部分 API。
运行时禁止访问的包
UnityEditorMono.CecilUMod-ModTools
运行时禁止访问的命名空间
System.IO.*System.ReflectionSystem.Reflection.EmitVexe.Fast.ReflectionSystem.Runtime.InteropServicesRoslynCSharpRoslynCSharp.*UMod.AssetSharingUMod.BridgeUMod.DebuggingUMod.ModdableUMod.Moddable.ProvidersUMod.ScriptingUMod.Scripting.RuntimeUMod.Settings
运行时禁止访问的类型
System.AppDomainSystem.Threading.ProcessSystem.Diagnostics.ProcessUMod.Mod(UMod.ModHost除外)
运行时禁止访问的成员
UnityEngine.Application.QuitUMod.ModHost.AllLoadedModHostsUMod.ModHost.AllModHosts
运行时行为有修改的成员
当前版本引入新的安全机制,部分 Unity API 将被移出限制。但这些 API 的调用将具有某些限制。我们将努力开放更多 API。
UnityEngine.Application.OpenURL(已弃用的受限 APIWarudo.Core.Utils.ApplicationHelper.SafeOpenURL现在已原样调用UnityEngine.Application.OpenURL)- 该 API 现在仅允许访问
http/httpsmailtofile协议 - 必须是完整的 URL
- 当为
file协议时仅允许访问存在且在 Warudo 数据目录中的目录和文件 - 禁止访问 Warudo 数据目录中的
BinariesClientsPlaygroundPlugins目录及其子目录 - 禁止访问
.或..等上级目录
- 该 API 现在仅允许访问
在宽松模式下允许使用的成员
由于当前版本引入了新 Mod 加载机制,现在允许在用户同意的情况下使用部分风险的 API。
暂时还没有
注意
P/Invoke 已被全局禁用。
着色器限制
在内置渲染管线(BiRP)模式下,您可以使用自定义着色器。
在 Warudo Pro 的通用渲染管线(URP)模式下,使用 Render Feature 的着色器目前无法直接使用。着色器作者需要联系我们的技术支持团队进行适配。此限制将来可能会调整。
目前支持的 URP 着色器包括:
- Unity 官方 URP 着色器
- NiloToon
- PotaToon
关于限制
我们正在持续改善 Warudo 的 Mod 开发体验。未来,我们可能会移除部分限制,或通过重写相关函数来控制访问,并提供更多替代方案。对于部分需要绕过现有限制的特殊场景,我们也计划在后续版本中提供解决方案。