小编Dan*_*n B的帖子

类似于"使用"的东西会创建一个对象并在完成时调用它的方法,但让我做我想要的

我正在使用Lidgren,并且对于我制作的每种新类型的消息,我最终都编写了相同类型的代码.我正在创建一个实例NetOutgoingMessage,在其上运行各种赋值调用,然后在完成后发送它.创建和发送是一样的,所以我想写一个包装器来为我做这个,但它是一个sealed类,它不是IDisposable.我正在做的是:

NetOutgoingMessage om = server.CreateMessage();

om.Write(messageType);
om.Write(data1);
om.Write(data2);

server.SendMessage(om, server.Connections, NetDeliveryMethod.UnreliableSequenced, 0);
Run Code Online (Sandbox Code Playgroud)

我想做的事情如下:

using(AutoNetOutgoingMessage om(server, messageType, NetDeliveryMethod.UnreliableSequenced))
{
    om.Write(data1);
    om.Write(data2);
}
Run Code Online (Sandbox Code Playgroud)

显然我不能这样using做是否有另一种常见的方法,如果实现这样的功能?我不是在寻找一个非常复杂的解决方案,因为这只是关于我的可维护性,所以我没有问题为每条消息重复我的代码.但我很好奇是否有一个有趣的C#技巧我不知道为此.

c# maintainability using

15
推荐指数
2
解决办法
473
查看次数

Unity aab不符合Google Play 64位要求

我有一个Unity项目,我正在从APK切换到AAB(应用程序捆绑包)。以前,当我将其构建为APK时,Google Play控制台告诉我该APK是64位兼容的。

现在,我正在建立一个aab,我得到警告:

此版本不符合Google Play 64位要求。以下APK或应用捆绑包可用于64位设备,但它们只有32位本机代码

  1. 我同时设置了ARM7和ARM64体系结构。
  2. 我不包括x86。
  3. 当我在档案查看器中打开.aab时,lib文件夹包含arm64-v8a和armabi-v7a的所有.so。
  4. 我正在使用IL2CPP,.NET 4.x
  5. 我正在使用Unity 2018.3.7f1
  6. 我的ndk版本是16b
  7. 我的Android Studio最高为3.4.2,gradle为3.2

这里有许多类似的话题都在谈论如何遵循“学习更多”链接。在切换到应用程序捆绑包之前,我已经完成了所有工作以使我的应用程序符合64位标准。

其他线程讨论了Android Studio解决方案,我无法使用它,因为我的自动构建过程涉及从命令行使用Unity进行构建,因此它必须是Unity配置或崩溃。

我的期望是,应用程序捆绑应该是让Google为您构建更好的APK的热门新方法,但是似乎对aabs是否实际上符合64位标准感到困惑,这似乎使整个目标无法实现。

这是Unity问题吗?Google在应用程序捆绑方面是否存在系统错误,还是我缺少其他步骤?

64-bit unity-game-engine android-gradle-plugin google-play-console android-app-bundle

5
推荐指数
2
解决办法
3168
查看次数