Estou trabalhando no Unity e descobrindo que o animador não está trabalhando para o que estou tentando fazer, no meu jogo 2D. Desejo criar uma animação específica, usando folhas de sprite, e poder reutilizar a mesma animação com outros sprites com o mesmo tamanho e dimensões pelas células. Depois de algumas pesquisas, acho que é impossível.
Em vez disso, estou tentando criar meu próprio script de animação, mas não entendo como dizer ao Unity para desenhar apenas uma seção do sprite. Algo como no XNA, onde você pode renderizar apenas um retângulo específico de um sprite usando coordenadas de início e fim.
Como faço para desenhar manualmente uma parte de uma folha de sprite?
Respostas:
Eu acho que pode haver uma abordagem mais simples na qual você pode fazer isso e ainda usar o Unity Mecanim para a animação.
Passos:-
1) Você pode atribuir programaticamente sprites 2D de textura a partir da imagem e, como é uma grade, não será muito difícil fazê-lo. Na resposta a seguir, o usuário criou seu próprio slicer de sprite e salvou no diretório (opcional, apenas salve-o em uma variável). Você não precisa de todo o código, basta verificar a função GetSprites () e terá a ideia :)
http://answers.unity3d.com/questions/576799/coding-my-own-auto-slicer-getting-islands-of-pixel.html
2) Quando você conseguir fazer isso, mantenha uma Matriz de sprites, obtida na etapa 1.
3) Agora você precisa criar um arquivo de animação desses sprites que possa ser conectado ao mecanim. Para isso, você precisa da função Set Curve da Unity (verifique o link fornecido abaixo). Depois que você tiver o clipe, é possível salvá-lo para uso futuro ou apenas tê-lo em uma variável apenas para a instância atual do jogo.
http://docs.unity3d.com/ScriptReference/AnimationClip.SetCurve.html
Espero que isso resolva sua dúvida :)
fonte