Gerenciador de Janelas do Jetpack para Unity
O Gerenciador de Janelas do Jetpack está disponível como um pacote que pode ser incluído em seu projeto do Unity. Personalize o sistema de build de gradle e implemente uma classe de atividade base personalizada e adicione uma classe auxiliar C# que chama a API Java nativa.
API dobrável e de tela dupla
O código WindowManagerHelper.cs fornece estes métodos que expõem informações fornecidas pelo Gerenciador de Janelas do Jetpack:
WindowManagerHelper.GetCurrentWindowMetricsBounds
. Os limites (esquerda, superior, largura, altura) de toda a área que o aplicativo ocupa.WindowManagerHelper.IsSeparating
. Se o recurso dobrável está separando áreas de tela. Isso está sempreTRUE
no Surface Duo.TRUE
Está em alguns outros dispositivos dobráveis somente quando eles são dobrados, masFALSE
quando são simples.WindowManagerHelper.Orientation
. A orientação do recurso de dobra, se houver um.HORIZONTAL
ouVERTICAL
.WindowManagerHelper.OcclusionType
. Se o recurso dobrável obscurece o conteúdo.FULL
ouNONE
.WindowManagerHelper.State
. O estado da dobra.FLAT
ouHALF_OPEN
.WindowManagerHelper.Bounds
. Os limites (esquerda, superior, largura, altura) do recurso de dobramento, se houver um.
Aqui está uma captura de tela do exemplo de demonstração de API mostrando as informações do dispositivo do pacote do Gerenciador de Janelas do Jetpack:
Implementar o Gerenciador de Janelas do Jetpack no Unity
Siga estas etapas para personalizar a configuração de build do aplicativo Android e implementar o Gerenciador de Janelas do Jetpack. Você também pode examinar o código neste exemplo.
No Unity, vá para Editar>Project Configurações...>Jogador>(Android)>Publicando Configurações e selecione estas opções de build:
Esta etapa coloca novos itens nos ativos/plug-ins/Android do projeto, que são personalizados para dar suporte ao pacote do Gerenciador de Janelas.
Atualize o mainTemplate.gradle para incluir o Gerenciador de Janelas do Jetpack no projeto, adicionando as seguintes dependências:
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' }
Atualize o arquivo gradleTemplate.properties adicionando a seguinte linha:
android.useAndroidX = true
O aplicativo precisa de uma atividade personalizada para implementar a funcionalidade do gerenciador de janelas e expor informações ao C#. Crie um arquivo FoldablePlayerActivity.java na mesma pasta Ativos/Plug-ins/Android e atualize AndroidManifest.xml para fazer referência à nova classe:
<activity android:name="com.microsoft.device.dualscreen.unity.FoldablePlayerActivity"
Adicione a classe completa de FoldablePlayerActivity.java no GitHub.
Copie a classe auxiliar WindowManagerHelper.cs de GitHub para o projeto. A pasta é Assets/SurfaceDuo/Plugins no exemplo.
Os Ativos/Plug-ins/Android agora contêm esses itens, personalizados nas etapas acima:
O arquivo WindowManagerHelper.cs está na pasta Assets/SurfaceDuo/Plugins no exemplo, mas essa classe auxiliar pode estar localizada em qualquer lugar no código do jogo.
Depois de implementar alterações de layout com base na presença de um recurso dobrável, você pode testar seu jogo no Surface Duo e em outros dispositivos dobráveis que dão suporte ao Jetpack Window Manager.
Próximas etapas
Examine estes exemplos.