Desde a versão 5 (?), O Unity possui um novo tipo de componente BillboardRenderer
. Infelizmente a documentação é bastante pobre.
Ele pode ser adicionado ao inspetor clicando em "Adicionar componente -> Miscelânea -> Billboard Renderer", mas aparentemente ele exige Billboard Asset
que você faça qualquer coisa. Não parece haver nenhuma maneira de criar uma a partir da interface do Unity.
Uma das poucas frases da documentação igualmente pobre do BillboardAsset diz:
imageCount Número de imagens pré- processadas que podem ser alteradas quando o cartaz é visualizado de diferentes ângulos.
Meu projeto mais recente terá gráficos de mistura de sprites / polígonos, portanto, um componente que renderiza um outdoor com um sprite diferente, dependendo do ângulo de visão, é algo que eu realmente poderia usar. Mas não parece haver nenhum método para adicionar essas imagens.
Então, eu me perguntei se você poderia postar um exemplo de como esse componente é usado.
Respostas:
ATUALIZAÇÃO (2018): Há mais propriedades expostas desde que escrevi esta resposta. Talvez possamos criá-lo agora, talvez não. Tenho que pesquisar.
Você não pode usá-lo.
Aqui está o
BillboardAsset
código descompilado :Não há literalmente nenhuma maneira de definir imagens, nem por reflexão. Pode-se pensar: “ok, você não pode fazê-lo diretamente, mas talvez haja algum tipo de fábrica fornecida?”. Pressiono Encontrar usos no descompilador e recebo:
BillboardAssetInspector
eBillboardRenderer
.Aqui está
BillboardRenderer
:Uau, essa classe é ainda mais burra. É apenas um suporte de dados sem lógica. Obviamente, todo o trabalho é feito por
Renderer
. Mais precisamente, por um ou dois[WraplessIcall]
métodos nele. Não colocarei seu código aqui porque é uma lista longa e inútil de[WraplessIcall]
membros.Ao contrário do conteúdo do UnityEngine.dll ,
BillboardAssetInspector
(que reside no UnityEditor.dll ) possui um código real. Mais uma vez, não colocarei seu código aqui, porque fica claro pelo nome que nada mais é do que o Inspetor .A mesma situação com
BillboardAssetInspector
.Entendi, é para uso interno; mas onde é usado exatamente?
No sistema SpeedTree (veja a última imagem em particular).
Por que a documentação explica coisas inúteis em vez de alertar contra o uso imediato?
Provavelmente, apenas copiei tudo, desde documentação interna de desenvolvimento, peças aprimoradas que são importantes para iniciantes e para uso geral; então, estava muito ocupado participando do hype de VR para se preocupar em polir esses cantos escuros da documentação.
O que podemos fazer sobre isso?
Diga a eles que eles ignoraram esse “canto escuro” da documentação, por exemplo: No Unity Editor, abra
Help → Report a bug...
,What is problem related to
escolhadocumentation
, etc.O que se pode usar em vez disso?
As opções possíveis incluem:
fonte
Para usar o BillboardRenderer, você precisa do Billboard Asset, pode construir o Billboard Asset com script C #. Verifique este post .
O ativo da Billboard tem um conteúdo como este: Billboard.asset
Aqui está o código C # usado para gerar o arquivo acima
para mais detalhes, verifique o post que dei no início da resposta.
fonte