v2.0.0
O Turian 2.0.0 introduz materiais por submesh. Modelos glTF/GLB importados agora compilam (cook) todas as meshes e primitivas (a versão 1.x mantinha apenas a primeira primitiva da primeira mesh), e cada submesh pode vincular seu próprio material.
O que mudou
- Formato de mesh compilada (TMSH v2) — os assets de mesh ganharam uma tabela de submeshes (intervalos de índices por primitiva e slots de material).
- Arquivos de cena — o campo
material_guid(uma única string) do mesh renderer viroumaterial_guids(um vetor). MeshRendererComponent— o campo únicomaterialvirou um vetormaterials(até 32 entradas) mais ummaterial_count, vinculados posicionalmente:materials[i]renderiza a submeshi.- Comportamento de importação — arquivos glTF e GLB com múltiplas meshes/primitivas são importados por completo. A importação de OBJ não muda (submesh único).
Quem é afetado
Qualquer projeto com cenas que atribuem materiais a mesh renderers, e
qualquer código de jogo que leia ou escreva
MeshRendererComponent.material.
Passos de atualização
1. Atualize para a 2.0.0
Baixe o SDK 2.0.0. Os SDKs são autocontidos, então você pode manter o SDK 1.x instalado lado a lado enquanto migra (veja a política de releases).
2. Deixe os assets recompilarem
O incremento de versão do importador força todo modelo importado a recompilar automaticamente para o novo formato de mesh. Não há nada a fazer — apenas espere que a primeira abertura do projeto (ou o primeiro build via CLI) demore mais em projetos com muitos modelos.
3. Migre seus arquivos de cena
As cenas antigas continuam carregando: o campo legado material_guid é
convertido em memória e um aviso é registrado. Para persistir a conversão em
todo o projeto de uma vez:
turian-cli migrate path/to/project
O comando varre cada cena, reescreve apenas as que ainda usam o campo legado e relata o que foi alterado. Faça commit do diff resultante. (Salvar novamente uma cena no Studio também a migra — a CLI é apenas a versão em lote.)
4. Atualize o código do jogo
Se seu código atribuía ou lia o material do renderer diretamente:
// 1.x
renderer.material = my_material_ref;
// 2.0.0
renderer.materials[0] = my_material_ref;
renderer.material_count = 1;
materials[i] vincula à submesh i da mesh. Meshes sem uma tabela de
submeshes (primitivas procedurais, importações OBJ) são renderizadas
inteiramente com materials[0]. Um slot não definido ou fora do intervalo
recorre ao material padrão.
5. Revise cenas que usam modelos importados
Modelos que sempre continham múltiplas meshes ou primitivas eram truncados silenciosamente pela versão 1.x — após a recompilação eles são renderizados por completo. Revise as cenas construídas em torno desses modelos: geometria que você nunca viu antes pode agora aparecer, e seus slots de material podem ser atribuídos no Inspector.
Não faça downgrade depois
Cenas salvas pela 2.0.0 armazenam material_guids, que a versão 1.x não lê —
abrir o projeto migrado com uma versão mais antiga descarta silenciosamente
as atribuições de material ao salvar. Migre um projeto uma única vez, em uma
única direção; se precisar experimentar antes, faça isso em um branch.