Unity Tango SDKのExamplesを全種類ビルドしてみた

Tangoの機能を一つ一つ解説してきましたが、[Examples](https://github.com/googlesamples/tango-examples-unity/tree/master/UnityExamples/Assets/TangoSDK/Examples)は他にもたくさんあるので、ここらで一覧にしてみました。


## Tango Examples
いくつかのシーンは、複数のシーンを1つのアプリとしてビルドすることができます。(単体でビルドしても動きます)

### DetectTangoCore
![Screenshot_20170110-232809.png](https://qiita-image-store.s3.amazonaws.com/0/153460/51de212f-0b5a-3503-c57b-96c32dc71b8a.png)
Tango Examplesの起動画面です。Tangoサービスが利用可能かを検出します。


### MotionTracking
![Screenshot_20170110-215514.png](https://qiita-image-store.s3.amazonaws.com/0/153460/a3e5770e-e044-05bd-ed90-8def4d54c0f4.png)
3DのシーンにBoxが浮かんでいるだけのExampleです。デバイスの位置・姿勢を変えることでカメラが追従し、Boxの見え方が変わります。


### PointCloud
![Screenshot_20170110-201843.png](https://qiita-image-store.s3.amazonaws.com/0/153460/042aaf9f-c562-3181-6b73-adff1244c73b.png)
Tangoが取得したPointCloudをリアルタイムで表示するアプリ。点群データを可視化するため、デプス・カメラがどれくらいの距離まで検知できるのかがわかります。


### AreaLearning
![Screenshot_20170110-235112.png](https://qiita-image-store.s3.amazonaws.com/0/153460/4e83048d-cdec-3290-8fc2-2603c72bbdc9.png)
ARモードでマーカーを立てて、ADFとマーカー座標を保存するアプリ。作成済みのADFを読み込むとマーカー位置を復元します。[AreaDescriptionを用いてマーカーの位置を補正している処理](http://qiita.com/jyuko/items/8eb208104c1c132ff381)があり、該当箇所のロジックは参考になりそうです。


### AreaDescriptionManagement
![Screenshot_20170110-201910.png](https://qiita-image-store.s3.amazonaws.com/0/153460/c2029bd0-01c0-7d47-9033-01fe6d6d9986.png)

![Screenshot_20170110-201923.png](https://qiita-image-store.s3.amazonaws.com/0/153460/a9b8deb7-1f90-9315-7f53-bbb7f0e2cdd2.png)

ADFを作成・編集・削除・エクスポートできる便利ツール。ADFを扱うなら、開発用途でビルドしてインストールおいた方がよいと思います。


### SimpleAugmentedReality
![Screenshot_20170110-223822.png](https://qiita-image-store.s3.amazonaws.com/0/153460/2be6a6b8-208c-3d02-83b1-5fe07019dace.png)
地球と周回する月をARで表示します。~~月はPointCloudに隠れるので、壁に消えたり、出てきたりします。~~

【2017/3/15 追記】
コメントで指摘を受けて確認したところ、月が消えて見えるのは、PointCloudの影響ではなく、カメラに設定された[farClipPlane](https://docs.unity3d.com/ja/current/ScriptReference/Camera-farClipPlane.html)よりも遠ざかっているからのようです。
その証拠に手をかざしたり、手前に物を置いても透けて表示されるだけでした。

@tangotarouさんご指摘ありがとうございました！ and 確認せずに適当なこと書いてすいません。。。

### PointToPoint
![Screenshot_20170110-220350.png](https://qiita-image-store.s3.amazonaws.com/0/153460/adc4a5d6-828e-6c5a-91e8-09fbc05ca2f3.png)
3D空間上で距離を測る定規アプリ。距離は画面左上に小さく表示されています。


## その他のExample
Tango Examplesに含まれていないシーンをビルドしたものです。

### AugmentedReality
![Screenshot_20170110-223105.png](https://qiita-image-store.s3.amazonaws.com/0/153460/80e97b2f-dabc-8885-e728-452f95f1a16d.png)
ARマーカーを置くだけのアプリです。マーカーは壁や天井にも置けます。


### ExperimentalFloorFinding
![Screenshot_20170110-232648.png](https://qiita-image-store.s3.amazonaws.com/0/153460/7b9bc56b-b0fa-dd5c-5918-b81cbf00d383.png)

PointCloudからFloor(床)の高さを求めて、マーカーを配置するアプリ。詳しくは[こちら](http://qiita.com/jyuko/items/548825b6aa181fe524ae)。マーカーの配置に関しては、位置の補正を行っている"AreaLearning"の方が精度が高いです。


### ExperimentalMeshBuilderWithColor
![Screenshot_20161218-003355.png](https://qiita-image-store.s3.amazonaws.com/0/153460/c5107921-525c-b941-9175-48341d86f837.png)
3DRでメッシュを作成して、OBJファイルフォーマットでエクスポートするアプリ。メッシュには色情報も含まれています。3DRについては[こちら](http://qiita.com/jyuko/items/1ca4ddff0accd6b483f6)。


### ExperimentalMeshBuilderWithPhysics
![Screenshot_20170110-222620.png](https://qiita-image-store.s3.amazonaws.com/0/153460/bdcce3cc-647e-8412-b0c1-03ce789d966c.png)
機能的には、"ExperimentalMeshBuilderWithColor"とほぼ同じですが、Physicsを設定しています。画面タップでボールを発射し、メッシュにぶつかると跳ね返ります。


### ExperimentalMeshOcclusion
![Screenshot_20170110-202810.png](https://qiita-image-store.s3.amazonaws.com/0/153460/93be27ab-e50e-d779-00d1-c0805b9b2d67.png)

![Screenshot_20170110-202818.png](https://qiita-image-store.s3.amazonaws.com/0/153460/07e6779f-3b53-bd5d-4557-7ef8e523b9f4.png)
ADFとメッシュをセットで保存して、再読み込み時は見えないメッシュを配置します。


## まとめ
似たような機能があるにせよ、シーン数にして12個のExampleがあります。Tangoで何ができるかも、なんとなく掴めるのではないでしょうか。
マーカーの操作やメッシュの作成など、参考になりそうな処理も多いです。