Gerenciador de Janelas do Jetpack para Unity versão beta

Importante

Este artigo descreve funcionalidades e diretrizes que estão em versão prévia pública e podem ser modificadas substancialmente antes de passarem para a disponibilidade geral. A Microsoft não faz nenhuma garantia, expressa ou implícita, com relação às informações fornecidas aqui.

O Gerenciador de Janelas do Jetpack está disponível como um pacote que pode ser incluído em seu projeto do Unity personalização do sistema de build gradle e implementação de uma classe de atividade base personalizada e, em seguida, adicionando uma classe auxiliar C# que chama a API Java nativa.

API de tela dupla e dobrável

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 de dobramento está separando áreas da tela. Isso é sempre TRUE no Surface Duo e é TRUE em alguns outros dispositivos dobráveis somente quando eles são dobradas, mas FALSE quando são simples.
  • WindowManagerHelper.Orientation – a orientação do recurso de dobramento, se houver um (HORIZONTAL ou VERTICAL).
  • WindowManagerHelper.OcclusionType – se o recurso de dobramento obscurece o conteúdo (FULL ou NONE).
  • WindowManagerHelper.State – o estado da dobra (FLAT ou HALF_OPEN).
  • WindowManagerHelper.Bounds – os limites (esquerda, superior, largura, altura) do recurso de dobragem, 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:

Propriedades do Gerenciador de Janelas mostrando no aplicativo de exemplo do Unity

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 revisar o código neste exemplo.

  1. No Unity, acesse Editar Project Configurações... > Player > (Android) > Publishing Configurações e verifique estas opções de >

    Lista de opções Configurações build de publicação

    Isso colocará novos itens nos Ativos/Plug-ins/Android do projeto, que são personalizados para dar suporte ao pacote do Gerenciador de Janelas.

  2. Atualize o mainTemplate.gradle para incluir o Gerenciador de Janelas do Jetpack no projeto, adicionando o seguinte:

    dependencies {
        implementation "androidx.window:window:1.0.0-beta02"
        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'
    }
    
  3. Atualize o arquivo gradleTemplate.properties adicionando a seguinte linha:

    android.useAndroidX = true    
    
  4. O aplicativo precisa de uma atividade personalizada para implementar a funcionalidade do gerenciador de janelas e expor informações ao C#. Para fazer isso, crie um arquivo FoldablePlayerActivity.java na mesma pasta Assets/Plugins/Androide, em seguida, atualizeAndroidManifest.xmlpara referenciar a nova classe:

    <activity android:name="com.microsoft.device.dualscreen.unity.FoldablePlayerActivity"
    
  5. Adicione a classe completa de FoldablePlayerActivity.java no GitHub.

  6. Copie a classe auxiliar WindowManagerHelper.cs do GitHub para o projeto ( pastaAssets/SurfaceDuo/Plugins no exemplo).

Os Ativos/Plug-ins/Android agora conterão esses itens, personalizados nas etapas acima:

Arquivos de configuração de projeto Android personalizados no Unity

O 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 de dobramento, você pode testar seu jogo no Surface Duo e em outros dispositivos dobráveis que suportam o Gerenciador de Janelas do Jetpack.