xaml - 为 Unity+UWP 添加广泛的文件系统访问功能
问题描述
我正在尝试将命名的功能添加到使用 Unity构建且没有 XAML 标记broadFileSystemAccess
的 UWP 应用程序中。文档说要将以下内容添加到应用程序清单中,但统一/视觉工作室项目中不存在应用程序清单。这个功能在 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 功能
如果某个功能不在列表中,您必须使用 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
}
}
推荐阅读
- wso2 - WSO2 是自定义用户存储 - SQLException:没有更多数据可以从套接字读取
- javascript - Textarea caret-color 不适用于 iOS Safari 浏览器
- swift - 如何在 Swift5 中使用 ObjectMapper 映射 Alamofire 5.2 响应
- php - 通过本地网络连接 Laravel 数据库
- jenkins - 文件未使用 ansible 从远程主机复制
- javascript - 捕获图像后网格视图不会自动刷新
- sql - 如何计算一对多关系,但包括 0?
- sql-server - 运行 SSIS 包作业时出现 Azure SQL Server 连接失败问题
- scala - 在类型化数据集上进行模式匹配
- c# - 如何在滚动视图 [Xamarin.Forms] 中获取当前可见项目?