Estou tentando criar um quadro com estes requisitos:
- Será quadrado.
- Caberá na largura ou altura disponível.
- DEVE estar centrado na tela.
- PODE ser envolvido em quantas telas intermediárias adicionais forem necessárias.
Estou brincando com âncoras, mas não encontro nenhuma combinação para fazer isso. A única solução que posso pensar é escrever algum tipo de "OnResize" do contêiner e definir o tamanho do quadro programaticamente.
Esse é o layout original. (1) é o BoardCanvas. (2) é o Conselho.
Quero que, se a tela ficar mais alta, o quadrado cresça, mas ainda seja quadrado:
Ou reduz:
Mas, embora esses exemplos anteriores estejam alinhados nas bordas superior e inferior, também quero que, se o espaço vertical se tornar mais alto que a largura disponível, o quadrado limite seu tamanho, dependendo das bordas esquerda e direita:
Q1: existe uma maneira de fazer isso com as âncoras / pivôs? Não há problema em criar telas intermediárias entre o BoardCanvas e o próprio Board, se isso funcionar.
P2: Se sim, onde devo posicionar as âncoras? Preciso de objetos intermediários?
T3: caso contrário, o script é a solução? Existe algum OnResize na tela para manipular? Não consigo ver nenhum evento de redimensionamento na lista, mas talvez não saiba onde procurá-lo. Sinto que testá-lo em todos os quadros parece um pouco exagerado, o evento orientado parece melhor.
Obrigado!
fonte
Isso é possível, mas provavelmente com apenas uma pequena linha de código ou duas para definir se a tela é paisagem ou retrato e alterar alguns valores.
Na tela, você precisa fazer com que o "Modo de escala da interface do usuário" seja "Escala com tamanho da tela" e "Modo de correspondência de tela" como "Largura ou altura da correspondência":
Supondo que a Resolução de referência padrão de 800x600 seja usada e assumindo que a janela de exibição da tela seja paisagem (por exemplo,
Screen.width
maior queScreen.height
), o controle deslizante de Correspondência precisa ser definido até Altura como1
.Você vai querer uma imagem na tela usando a predefinição de âncora no meio / centro. Você também deseja que a largura e a altura da imagem correspondam ao valor Y da resolução de referência do escalador de tela.
Você pode redimensionar a viewport da câmera e ver se a imagem mantém sua forma enquanto estica sua altura para corresponder à altura da viewport:
Se a tela estiver em modo retrato - e é aqui que você provavelmente precisará codificar para verificar e / ou alterar conforme necessário -, faça com que o valor da correspondência do escalador seja
0
e altere a altura e a largura da imagem para corresponder à resolução de referência. Valor X. (nas figuras abaixo, a largura e a altura da imagem são ambas800
)Se você estiver tentando ajustar uma imagem menor, poderá "dimensionar" a imagem ajustando sua largura e altura com o valor X ou Y da resolução de referência (dependendo da paisagem ou do retrato). Por exemplo, criei um quadrado azul que usa metade do valor X das resoluções de referência (já que a janela de exibição é retrato), e ela aumenta e diminui muito bem:
Além disso, se você quiser um tabuleiro de damas ou algo assim, a posição X e Y de cada imagem e a Altura e Largura podem ser baseadas em uma porcentagem da Resolução do Canvas Scaler para fazer o que você quiser:
fonte