Я работаю в Unity и обнаружил, что аниматор не работает для того, что я пытаюсь сделать, в моей 2D-игре. Я хочу создать определенную анимацию, используя листы спрайтов, и иметь возможность повторно использовать ту же анимацию с другими спрайтами, которые имеют одинаковый размер и размеры по ячейкам. После некоторых исследований я обнаружил, что это невозможно.
Вместо этого я пытаюсь создать свой собственный сценарий анимации, но я не понимаю, как сказать Unity рисовать только часть спрайта. Что-то вроде XNA, где вы можете визуализировать только определенный прямоугольник спрайта, используя начальную и конечную координаты.
Как вручную нарисовать часть листа спрайта?
Ответы:
Я думаю, что может быть более простой подход, при котором вы можете сделать это, и все же использовать Unity Mecanim для анимации.
Шаги: -
1) Вы можете программно назначать текстурные 2D спрайты из изображения, и, поскольку это сетка, это не составит большого труда. В следующем ответе пользователь создал свой собственный слайдер спрайтов и сохранил его в каталоге (необязательно, просто сохраните его в переменной). Вам не нужен весь код, просто проверьте функцию GetSprites (), и вы получите идею :)
http://answers.unity3d.com/questions/576799/coding-my-own-auto-slicer-getting-islands-of-pixel.html
2) Как только вы сможете это сделать, сохраните массив спрайтов, который вы получили на шаге 1.
3) Теперь вам нужно создать анимированный файл этих спрайтов, который можно подключить к mecanim. Для этого вам нужна функция Set Curve Unity (проверьте ссылку, приведенную ниже). Как только у вас есть клип, вы можете сохранить его для будущего использования или просто сохранить в переменной только для текущего игрового экземпляра.
http://docs.unity3d.com/ScriptReference/AnimationClip.SetCurve.html
Надеюсь, что это разрешит ваши сомнения :)
источник