我目前正在研究Android的小型AR應用程序,並且面臨將Unity3d集成到活動中的問題。這些要求表明我需要能夠呈現一些Android UI - 例如菜單和操作欄 - 以及一個攝像頭視圖,當檢測到目標時,將顯示在Unity3d中創建的模型。將Unity3d視圖集成到Android活動中
我發現一個鏈接幫了我很多:Unity3d forums。其中一位用戶問我現在有同樣的問題,但從來沒有得到任何正確的答案 - 這就是爲什麼我在這裏發佈。
問題:
我有一個小Unity3d項目,本質上是一個白色立方體,我試圖在我的Android活動之一,以顯示它。當活動的onCreate()
方法中沒有setContentView()
方法時,模型看起來很好,但是我無法在XML文件中指定我的佈局。
當我添加setContentView()
方法時,我可以看到立方體,但它很小,似乎沒有任何方法可以實際改變其大小。
XML文件:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/unityView"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</FrameLayout>
活動實施的第一個版本:
public class HomeActivity extends UnityPlayerActivity {
UnityPlayer unityPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
,並將所得截圖:
活動實施的第二版:
public class HomeActivity extends UnityPlayerActivity {
UnityPlayer unityPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
unityPlayer = new UnityPlayer(this);
int glesMode = unityPlayer.getSettings().getInt("gles_mode", 1);
unityPlayer.init(glesMode, false);
FrameLayout layout = (FrameLayout) findViewById(R.id.unityView);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
layout.addView(unityPlayer.getView(), 0, lp);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
unityPlayer.windowFocusChanged(hasFocus);
}
}
,並將所得截圖:
任何人都可以向我解釋這是爲什麼,以及如何解決它?
的Unity3d論壇鏈接,你提到要你從臨時區域文件夾,當我在Unity5 運行項目中,我找不到它也告訴您如何複製文件在Eclipse中使用它。我正在使用Android Studio。 您可以提供有關如何在Unity5和Android Studio中執行相同操作的更新指南。 – Ishan