UnityPlayerActivity和UnityGooglActivity

在使用 Unity 打包 Android 应用时遇到一个奇怪的问题,仅仅是文件名的不同导致了一系列难以预料的错误。解决方法非常简单,只需删除 plugins-Android 文件夹中的 AndroidManifest 文件即可完成正常打包。

unity打包Android开发包时候遇到的神坑,只是一个名字的差别会导致絮叨想不到的问题,Android是个坑啊。

解决方法:删除plugins-Android 里面的一个AndroidManifest文件再次打包 就行了!

珍爱生命,远离Android 敲打

### Unity 2022 版本中 `UnityPlayerActivity` 的配置集成 #### 配置环境 为了成功配置并集成 `UnityPlayerActivity` 到 Android 应用程序,在开始之前需确认 JDK、SDK NDK 已经正确安装设置[^2]。 #### 导出 Unity 项目至 Android Studio 通过 Unity 编辑器导出项目为 Android 平台,这一步骤将创建一个可以在 Android Studio 中打开的 Gradle 项目。此过程确保了所有必要的构建脚本支持文件都已准备好用于进一步定制或扩展。 #### 使用 `UnityPlayerActivity` `UnityPlayerActivity` 是由 Unity 提供的一个 Activity 类,专门设计来承载基于 FrameLayout 构建的游戏视图其他 UI 控件。该布局允许开发者在其内部添加自定义 View 或者与其他原生组件交互[^1]。 对于希望在应用程序内启动特定场景而不是整个应用作为单一游戏体验的情况来说非常重要;此时可以通过继承此类来自定义行为,并利用其公开的方法控制生命周期事件以及处理输入输出流等操作。 #### 嵌入 Unity 页面时遇到的问题及对策 当尝试在一个 Fragment 内部加载包含有 Unity 游戏内容的画面时可能会碰到一些挑战。例如,默认情况下关闭含有 Unity 的页面会导致整个进程被终止,这是因为调用了 `com.unity3d.player.UnityPlayer.kill()` 方法所致。针对这种情况的一种可能解决方案是在网上查找有关于如何实现在多个 Fragments 中安全展示 Unity 场景的技术文档或社区讨论[^3]。 另外值得注意的是,虽然 Unity 可以发起对本地 Java 层面功能请求的同时也支持反向通信机制—即让宿主 App 能够触发某些预设好的 C# 函数完成更复杂的跨平台协作任务[^4]。 ```java // 示例:Java端调用Unity方法 public class MainActivity extends AppCompatActivity { private UnityPlayer mUnityPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 初始化Unity Player... mUnityPlayer = new UnityPlayer(this); // 定义要传递给Unity的消息参数 String methodName = "ReceiveMessageFromAndroid"; Object[] parameters = {"Hello from Android!"}; // 发送消息到Unity侧指定的方法名下 mUnityPlayer.UnitySendMessage("ObjectName", methodName, (String)parameters[0]); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值