【问题标题】:Integrating two Unity projects in an Android application在 Android 应用程序中集成两个 Unity 项目
【发布时间】:2019-09-30 02:30:28
【问题描述】:

我正在开发一个 Android 应用,我需要在其中集成 Unity 游戏/屏幕。我已经将一个 Unity 场景/项目导出并添加到我的 Android 应用程序中,但我不知道如何添加两个。

我发现了两种主要的方法:

  1. 创建两个单独的项目:如果我这样做,它们会在清单或库/资产文件夹中发生冲突,并且统一最终只调用一个场景。 供参考:

How to correctly import multiple unity module in single android app avoiding name conflict between different unity module in android studio?

  1. 我还尝试创建一个具有多个场景的 Unity 项目,并使用消息从 Android 调用所需的场景。对我来说,无论按下哪个按钮,Android 仍然会调用相同的场景。 参考: https://stackoverflow.com/a/43224821/2617578

有人对此有解决方案吗?上述任何一种解决方案对我来说都可以。

我在 Android 方面经验丰富,但在 Unity 方面是初学者,所以我认为我可能在统一代码中做错了什么。

我在以下 git 存储库中有我为第二种方法创建的统一项目和 Android 应用程序。

https://github.com/hadi-mehmood/AndroidUnityIntegrationSample

【问题讨论】:

  • 如果你向android添加了一个Unity项目,那么我认为方法2应该可以工作。你能在统一项目中运行这两个场景吗? (不是来自android,而是在统一编辑器中)

标签: android unity3d


【解决方案1】:

这是解决您问题的一种方法:

首先,所有事情发生在一个统一的活动中

  • 结合两个统一项目,为每个项目制作不同的场景
  • 创建一个空的loading 场景,首先开始(使用统一BuildSettings)并且不执行任何操作
  • loading 场景中,编写SceneLoader 脚本以等待加载小游戏场景的命令。
  • 可以使用这个方法传递场景名称UnityPlayer. UnitySendMessage("Gameobject Name","Method","Message")
  • 在运行 Unity Activity 后立即调用上面的方法,它应该可以完成工作。

示例场景加载器:

public class MySceneLoader : MonoBehaviour
{

    private void LoadScene(string sceneName)
    {
        SceneManager.LoadScene(sceneName);
    }
}

【讨论】:

  • 嗨,阿明,我也做过同样的事情。我的代码中唯一的问题是 untiy 对象的名称与我在 UnitySendMessage 函数中发送的名称不同。谢谢指点!编辑:它阻止我现在奖励赏金,一旦它会这样做。
猜你喜欢
  • 1970-01-01
  • 2017-09-01
  • 2019-10-07
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 1970-01-01
  • 1970-01-01
  • 2018-07-30
相关资源
最近更新 更多