Я заинтересован в создании приложения UWP, которое при запуске имеет стандартное представление 2D-типа XAML, но может переключаться на вторичное 3D-представление UrhoSharp (кстати, оно должно запускаться на HoloLens).Я новичок в UrhoSharp, но я могу следовать некоторым онлайн-учебникам, которые создают 3D-приложение UWP UrhoSharp, создав новое приложение UWP в Visual Studio, удалив классы «App.xaml» и «MainPage.Xaml», а затем определивновая точка входа 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»: «Система.Runtime.InteropServices.COMException: «Метод был вызван в неожиданное время.» «
Я не уверен, что еще можно попробовать, и тот факт, что это представляется возможным в соответствии со ссылками на этот пост, дразнит.У кого-нибудь есть идеи, как это сделать?Если бы только автор показал, как выглядит «HelloWorldApplication» в своем коде.