2017-03-20 58 views
2

我正在研究UnityPlayerActivity其中相機在完整屏幕上呈現,其上有我的工具欄和導航抽屜。因此,我面臨以下問題:使用android:fitsSystemWindows =「true/false」導航抽屜高度變化並且導航欄變白

案例A:使用android:fitsSystemWindows =「false」 顯示導航抽屜,但未如預期的那樣,因爲抽屜高度未顯示全屏。 但是android導航欄是透明的,攝像頭正在採取完整的屏幕爲 預期。

案例B:使用android:fitsSystemWindows =「true」 按預期顯示抽屜式導航器,抽屜高度顯示爲全屏幕。 但是,android導航欄並不透明,所以相機沒有按照預期拍攝完整的屏幕。

CASE ACASE B This is my layout file

回答

0

這是沒有必要,你必須與Unityplayer活動或mainActivity的約束。

您可以將任何活動設爲靜態並從c#unity調用這些活動中存在的函數或UI。

正確的方法是在您的主Android項目中創建一個靜態活動並將其稱爲currentActivity。這在你onCreate方法設置好後currentActivity這個下面的代碼表明:

public class MainActivity extends UnityPlayerActivity { 

public static MainActivity currentActivity; 

@Override 

    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     currentActivity=this; 

另外:從您的統一代碼,你可以使用C#通過使用下面的代碼來調用在MainActivity一個Android方法:

AndroidJavaClass jc = new AndroidJavaClass("yourpackagename.youractivity"); 

AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"); 

jo.Call("toggleMenu"); 

OR

可以UnityPlayerActivity轉換成片段,下文提到的鏈接將幫助您在同一

How can I open an Android Fragment in a new process?