使用 Monogame 在 Xamarin.Forms 中嵌入 Spine 动画

Embed Spine animations in Xamarin.Forms using Monogame

我正在尝试在 Xamarin.Forms 中嵌入使用 Spine 创建的动画头像。

思路如下: 我想在 PCL 中创建 Xamarin.Forms UI (XAML),实例化 Monogame Framework (Microsoft.Xna.Framework.Game) 的游戏 class 和在 Xamarin.Forms 视图上呈现该游戏实例。

到目前为止,我已经在 Xamarin.Android 上将 Spine 动画制作到 运行。

在Android项目中,我可以从Monogame游戏中请求一个"Android View"服务类型class,like that:

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();
}

是否有我可以从游戏 class 请求的通用视图类型来获取该视图并将其呈现在 Xamarin.Forms 页面上? (这样我就可以将所有与动画相关的代码留在 PCL 中并让它以跨平台样式呈现。)

或者有没有其他方法可以将动画集成到 Xamarin.Forms 中?动画应与按钮或菜单等其他 Xamarin.Forms 控件一起存在。

您可以制作自定义渲染器:视图类型https://developer.xamarin.com/guides/cross-platform/xamarin-forms/custom-renderer/

另请看:https://github.com/xamarin/xamarin-forms-samples/tree/master/Native2Forms and https://github.com/xamarin/xamarin-forms-samples/tree/master/Forms2Native

对于跨平台动画/绘图,有一个非常好的 NControl 库:https://github.com/chrfalch/NControl