【问题标题】:How to embedded multiple unity module in native android?如何在原生 android 中嵌入多个统一模块?
【发布时间】:2020-05-25 09:54:52
【问题描述】:

我遇到了一个问题。这个QUESTION 已经有人问过了。但是这个问题没有答案。

Problem Related Video

根据这个问题的标题。如何在原生 android 项目中集成多个统一模块或库。我遵循了很多程序。但我没有得到这个问题的解决方案。根据UNITY TECHNOLOGY 指令,我必须将统一库集成到我的项目中。我已经为两个 unityLibrary 完成了这个。对于第二个库,我必须更改包名和类名。并让它发挥作用。完成所有这些更改后,我的项目构建成功,并且编译没有任何错误。当我点击加载第一个游戏时,它正在加载第一个游戏。但是当我点击加载第二个游戏时,它也只加载了第一个游戏。

下面是我的android studio的截图。

我正在与您分享有关此的更多描述。

*app module内部有2个Activity,分别命名为MainActivityGameHolderActivity。下面是MainActivity.java的代码。

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    findViewById(R.id.btn1Click).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, GameHolderActivity.class);
            intent.putExtra("game", 1);
            startActivity(intent);
        }
    });
    findViewById(R.id.btn2Click).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, GameHolderActivity.class);
            intent.putExtra("game", 2);
            startActivity(intent);
        }
    });
}
}

在那之后,现在我要提到GameHolderActivity.java 的代码。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
//FIRST GAME ACTIVITY
import com.unity3d.player.UnityPlayerActivity;
//SECOND GAME ACTIVITY
import com.game.player.GamePlayerActivity;
public class GameHolderActivity extends Activity {
private String TAG = "GAME_HOLDER_ACTIVITY";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first_game);

    if (getIntent().hasExtra("game") && getIntent().getIntExtra("game", 0) == 1) {
        Log.d(TAG, "FIRST_GAME");
        Intent intent = new Intent(GameHolderActivity.this, UnityPlayerActivity.class);
        startActivity(intent);
    } else {
        Log.d(TAG, "SECOND_GAME");
        Intent intent = new Intent(GameHolderActivity.this, GamePlayerActivity.class);
        startActivity(intent);
    }
}
}

在整个过程中,我只更改了一个库包名称。这样我就可以识别我的第二个游戏活动。

我在build.gradle(Module:app)android {} 内又添加了一件东西。

packagingOptions {
    pickFirst '**/*.so'
}

我已经为此尝试了以下教程,但在多个游戏中都没有得到任何积极的回应。

所以请提供解决方案,以便我可以在我的原生 android 应用程序上打开我的两个 Unity 游戏。我将非常感谢您的帮助。

【问题讨论】:

  • 您找到解决方案了吗?请分享
  • @KenZira 请阅读答案。我已经发布了。

标签: java c# android unity3d


【解决方案1】:

开发者。如果您遇到这个问题的问题。那我想告诉你,Unity Technology 不支持这个。

总之,你不能在你的 Native android 应用程序中使用多个 unityLibrary。

那我们怎样才能实现我们的目标呢?

对此,我咨询了专家,也进行了研究,并与 Unity 支持团队进行了沟通。为了实现我们的目标,我们必须为所有游戏创建一个库。这意味着我们必须将所有游戏绑定到一个项目中。之后我们会从 android 端向 Unity 端发送一些标识符。这样我们就可以确定,我们必须玩哪个游戏。然后在验证之后,我们将从统一端加载特定的场景或游戏。这样我们可以根据您的要求玩多个游戏。

【讨论】:

  • 有没有关于将unity游戏集成到android项目中对游戏性能影响的博客/参考资料?
猜你喜欢
  • 1970-01-01
  • 2017-11-12
  • 2019-02-25
  • 1970-01-01
  • 2020-12-26
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 2016-06-07
相关资源
最近更新 更多