为 Unity+UWP 添加 broadFileSystemAccess 功能

Add broadFileSystemAccess capability to Unity+UWP

我正在尝试将名为 broadFileSystemAccesscapability 添加到使用 Unity[=21= 构建的 UWP 应用程序] 并且没有 XAML 标记。文档说要将以下内容添加到应用程序清单中,但 unity / visual studio 项目中不存在应用程序清单。是 MRP 上没有此功能,还是我们做错了什么?

这是应该添加到您的应用程序包清单中的内容,但就像我提到的那样,我们没有其中之一。

<?xml version="1.0" encoding="utf-8"?>
<Package
    ...
    xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4">
...
<Capabilities>
    <uap4:CustomCapability Name="CompanyName.customCapabilityName_PublisherID"/>
</Capabilities>
</Package>

您可以按如下方式添加能力:PlayerSettingsWSA Capabilities

如果功能不在列表中,您必须使用 IL2CPP 构建项目,以便输出名为 Package.appxmanifest 的应用程序包清单并自行修改 XML。

为了让事情变的神奇

您可以编写一个具有 PostProcessBuildAttribute 属性的方法,如下所示:Unity - Scripting API: PostProcessBuildAttribute 将验证并添加 XML 标记,如果Package.appxmanifest.

中不存在

您也可以像这样创建自定义构建:Unity - Manual: Build Player Pipeline 并添加相同的逻辑来验证和添加功能(XML 标记)

伪代码:

using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;

public class MyBuildPostprocessor {
    [PostProcessBuildAttribute(1)]
    public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject) {
         XmlDocument xmlDoc = new XmlDocument();
         xmlDoc.Load($"{pathToBuiltProject}/{PROJECT NAME HERE}/Package.appxmanifest");
         // Find if the `broadFileSystemAccess` capability exists
         // add `broadFileSystemAccess` capability
    }
}