快乐的老鼠 发表于 2017-6-21 19:57:25

如何在HoloLens中创建一个2D的Hello World程序

  注:本文提及到的代码示例下载地址 > How to build an "Hello World" 2D app in HololLens.
  HoloLens 是微软的一款MR Glass(混合现实全息眼镜), 国内某非著名SQ主播出了个片子介绍它,有兴趣的点这里:http://v.youku.com/v_show/id_XMTcxNjIzNzQ2MA==.html?from=y1.7-1.2
  HoloLens中可用的App大致分为两种类型:


[*]2D:阉割版的UWP app(一些特性不支持)

[*]关于哪里被阉了?英文好的同学可以直接点这里:Current limitations for apps using APIs from the shell


3D:HoloLens专用的Holographic app

[*]API很酷,但是难上手(文档有点抽象),熟悉Unity 3D的同学比较容易上手。
[*]文档点这里:Documentation for HoloLens

  开发的前期准备:


[*]你的VS版本必须是VS 2015或以上(推荐 vs 2015 update 3及以上),不然没有Win10 UWP开发套件的。下载地址点这里:https://www.visualstudio.com/vs-2015-product-editions
[*]必须安装Win 10 UWP 开发套件。在安装VS的时候把安装 UWP这块的勾选上就可以了。
你还需要一个酷炫到没朋友的HoloLens模拟器→_→。

[*]下载地址点这里:http://go.microsoft.com/fwlink/?LinkID=823018
[*]另外需要注意的是你的CPU必须是要支持Hyper-V的,一般Intel的CPU都会支持这项功能。

  一切准备妥当,让我们来开始创建一个HoloLens的2D Hello World程序:
  1.首先我们来先造一个筏子→_→,打开VS 并创建一个UWP app。

  2.打开MainPage.xaml,贴入如下代码:



1 <Page
2   x:Class="HololensApp.MainPage"
3   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
4   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
5   xmlns:local="using:HololensApp"
6   xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
7   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
8   mc:Ignorable="d">
9
10   <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
11         <StackPanel>
12             <StackPanel Orientation="Horizontal">
13               <TextBlock Text="Click count:" />
14               <TextBlock Text="{Binding ClickCount}" />
15             </StackPanel>
16             <Button Click="Button_Click">Click Me</Button>
17         </StackPanel>
18   </Grid>
19 </Page>
  在CS代码中贴入如下代码:



public sealed partial class MainPage : Page
{
public MainPageViewModel ViewModel = new MainPageViewModel();
public MainPage()
{
this.InitializeComponent();
this.DataContext = ViewModel;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
ViewModel.ClickCount++;
}
}
public class MainPageViewModel : BindableBase
{
private int _clickCount;
public int ClickCount
{
get { return _clickCount; }
set { SetProperty(ref _clickCount, value); }
}
}


public abstract class BindableBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected bool SetProperty<T>(ref T storage, T value, String propertyName = null)
{
if (object.Equals(storage, value)) return false;
storage = value;
this.OnPropertyChanged(propertyName);
return true;
}
protected void OnPropertyChanged( string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
  修复掉引用错误:在划红线的位置点击,出现小灯泡后选择小灯泡里的选项即可。

  3.然后选择调试环境(这里你需要安装HoloLens 模拟器)

  3.然后按F5键,开始跑程序。
  这时模拟器就会启动并且部署你的app到模拟器,模拟器比较慢,耐心等待一段时间,

  当程序运行起来后,你可以看到如下界面:

  在app窗体上右键向上拖动以固定改App,此时app才算是真正运行起来:
  使用W,A,S,D和上下左右键移动中间的圆点到按钮上并按空格键,可以发现上面的数字显示你点击的次数:

  到此,该演示就结束了,是不是有种受骗上当的感觉?TMD这不就是UWP吗?
  是的,其实他就是UWP,只是阉割版而已,重说三:阉割版,阉割版,阉割版,也就是有些UWP的特性在HoloLens现阶段中是不支持的,这一点才是真正需要你注意的地方。详细的列表请查阅微软官方文档:Current limitations for apps using APIs from the shell
  HoloLens 3D入门教程请戳http://www.cnblogs.com/onecodeonescript/p/5925906.html
页: [1]
查看完整版本: 如何在HoloLens中创建一个2D的Hello World程序