Встраивать анимации позвоночника в Xamarin.Forms, используя Monogame

Я пытаюсь встроить анимированный аватар, созданный с помощью Spine, в Xamarin.Forms.

Идея заключается в следующем: я хочу создать пользовательский интерфейс Xamarin.Forms (XAML) в PCL, создать экземпляр класса Game платформы Monogame (Microsoft.Xna.Framework.Game) и сделать так, чтобы этот экземпляр игры отображался на Xamarin.Forms. Посмотреть.

Мне удалось запустить анимацию Spine на Xamarin.Android.

В проекте Android я могу запросить тип сервиса "Android View" из класса игры Monogame, например:

protected override void OnCreate (Bundle bundle)
{
    base.OnCreate (bundle);

    var g = new Game1(); //inherits from Microsoft.Xna.Framework.Game
    SetContentView((View)g.Services.GetService(typeof(View)));
    g.Run();
}

Есть ли общий тип представления, который я могу запросить у класса Game, чтобы он отображался на странице Xamarin.Forms? (Таким образом, я мог бы оставить весь связанный с анимацией код в PCL и сделать его в кроссплатформенном стиле.)

Или есть ли другой способ интегрировать анимацию в Xamarin.Forms? Анимация должна существовать вместе с другими элементами управления Xamarin.Forms, такими как кнопки или меню.

1 ответ

Решение

Вы можете сделать собственный рендер: https://developer.xamarin.com/guides/cross-platform/xamarin-forms/custom-renderer/ из View Type

Также взгляните на: https://github.com/xamarin/xamarin-forms-samples/tree/master/Native2Forms и https://github.com/xamarin/xamarin-forms-samples/tree/master/Forms2Native

Для кроссплатформенной анимации / рисования есть действительно хорошая библиотека NControl: https://github.com/chrfalch/NControl

Другие вопросы по тегам