注:本文提及到的代碼示例下載地址 > 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); } } } [Windows.Foundation.Metadata.WebHostHidden] public abstract class BindableBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected bool SetProperty<T>(ref T storage, T value, [CallerMemberName] String propertyName = null) { if (object.Equals(storage, value)) return false; storage = value; this.OnPropertyChanged(propertyName); return true; } protected void OnPropertyChanged([CallerMemberName] 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