適用于 Unity 的 Jetpack 視窗管理員
Jetpack 視窗管理員可做為可包含在 Unity 專案中的套件。 自訂 gradle 建置系統並實作自訂基底活動類別,然後新增呼叫原生 JAVA API 的 C# 協助程式類別。
可折迭和雙螢幕 API
WindowManagerHelper.cs程式碼會提供下列方法,以公開 Jetpack 視窗管理員所提供的資訊:
WindowManagerHelper.GetCurrentWindowMetricsBounds
. 應用程式所佔用之整個區域的界限 (左、上、寬度、高度) 。WindowManagerHelper.IsSeparating
. 折迭功能是否分隔螢幕區域。 這一律TRUE
位於 Surface Duo 上。TRUE
只有在折迭其他可折迭的裝置上,但FALSE
當裝置是平平時。WindowManagerHelper.Orientation
. 如果有折迭功能的方向。HORIZONTAL
或VERTICAL
。WindowManagerHelper.OcclusionType
. 折迭功能是否遮蔽內容。FULL
或NONE
。WindowManagerHelper.State
. 折迭的狀態。FLAT
或HALF_OPEN
。WindowManagerHelper.Bounds
. 如果有折迭功能,界限 (左、上、寬度、高度) 。
以下是 API 示範範例的螢幕 快照,其中顯示 Jetpack Window Manager 套件中的裝置資訊:
在 Unity 中實作 Jetpack 視窗管理員
請遵循下列步驟來自訂您的Android應用程式組建組態,並實作 Jetpack Window Manager。 您也可以檢閱 此範例中的程式碼。
在 Unity 中,移至[編輯>Project 設定...>球員>> (Android) 發佈設定,然後選取下列建置選項:
此步驟會將新專案放在專案的Assets/Plugins/Android中,然後自訂為支援 Window Manager 套件。
藉由新增下列相依性,更新 mainTemplate.gradle 以在專案中包含 Jetpack 視窗管理員:
dependencies { implementation "androidx.window:window:1.0.0" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61" implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.core:core-ktx:1.3.2' }
新增下列程式程式碼來更新 gradleTemplate.properties 檔案:
android.useAndroidX = true
應用程式需要自訂活動,才能實作視窗管理員功能,並將資訊公開至 C#。 在相同的資料夾 Assets/Plugins/Android中建立File FoldablePlayerActivity.java,然後更新AndroidManifest.xml以參考新的類別:
<activity android:name="com.microsoft.device.dualscreen.unity.FoldablePlayerActivity"
在 GitHub 上,從FoldablePlayerActivity.java新增完整的類別。
將WindowManagerHelper.cs 協助程式類別從GitHub複製到專案中。 資料夾是範例中的 Assets/SurfaceDuo/Plugins 。
Assets/Plugins/Android現在包含下列步驟中自訂的這些專案:
WindowManagerHelper.cs檔案位於範例中的Assets/SurfaceDuo/Plugins資料夾中,但此協助程式類別可以位於遊戲程式碼中的任何位置。
一旦根據折迭功能的存在實作版面配置變更之後,您就可以在 Surface Duo 和其他支援 Jetpack Window Manager 的可折迭裝置上測試遊戲。
下一步
檢閱這些 範例。