我遇到了一个问题。已经有人提出了此问题,但这个问题没有答案。
如题所示,如何在原生 Android 项目中集成多个 unity 模块或库。我按照很多步骤去操作,但是我没能解决这个问题。根据 UNITY技术 的说明,我必须将 Unity 库集成到我的项目中。我已经为两个 unityLibrary 完成了这个过程。对于第二个库,我必须更改包和类名称,使其正常运行。在完成所有这些更改后,我的项目成功构建,并且编译不会出现任何错误。当我单击加载第一个游戏时,它正在加载第一个游戏。但是当我单击加载第二个游戏时,它仍然只加载第一个游戏。
下面是我 Android Studio 的截图。
我会给你更多关于这个问题的描述。
*在app模块
内,有两个命名为MainActivity
和GameHolderActivity
的 Activity
。下面是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游戏。非常感谢您的帮助。参考文献如下: