2

我有兴趣构建一个 UWP 应用程序,该应用程序在启动时具有默认的 2D XAML 类型视图,但可以切换到辅助 3D UrhoSharp 视图(顺便说一下,这将在 HoloLens 上运行)。我是 UrhoSharp 的新手,但我可以通过在 Visual Studio 中创建新的 UWP 应用程序、删除“App.xaml”和“MainPage.Xaml”类然后定义来遵循一些创建 3D UWP UrhoSharp 应用程序的在线教程通过添加以下内容来创建新的 UrhoSharp 入口点:

using Urho;

public static class Program
{
    [MTAThread]
    static void Main() => CoreApplication.Run(new UrhoAppViewSource<MixedRealityApplication>());
}

using Urho;
using Urho.SharpReality;

internal class MixedRealityApplication : StereoApplication
{
    public MixedRealityApplication(ApplicationOptions options) : base(options)
    {
        // Do some initialization.
    }

    protected override void Start()
    {
        // Start drawing some 3D stuff
    {
}

以上工作,我能够看到我的 3D 对象。现在我希望创建一个 UWP 应用程序,该应用程序从其默认视图作为标准 2D XAML 窗口开始,但随后能够在单击按钮时切换到 3D UrhoSharp 视图。我找到了以下线程,作者正是这样做的:

https://forums.xamarin.com/discussion/98907/right-way-to-run-urhosharp-as-part-of-2d-uwp-on-hololens

但是,代码示例非常稀疏(1 或 2 行),我无处可去。我尝试按照作者使用的方式在上面的代码中使用(未修改的)“MixedRealityApplication”类:

Using Windows.ApplicationMode.Core;
using Urho;

private void Button_Click)object sender, RoutedEventArgs e)
{
    CoreApplicationView urho3DView = CoreApplication.CreateNewView(new UrhoAppViewSource<MixedRealityApplication>());
    ...etc...
}

上面尝试实例化“urho3DView”时抛出以下异常:“System.Runtime.InteropServices.COMException: 'A method was called at an unexpected time.'”

我不知道还有什么可以尝试的,而且根据链接的帖子似乎有可能的事实很诱人。有谁知道如何解决这个问题?如果作者在他/她的代码中展示了“HelloWorldApplication”的样子就好了。

4

0 回答 0