概要
この記事古いです、今はPreview2がでているのでこちらを参考してください
https://qiita.com/taptappun/items/a5337d29a43d5d673c7f
ARCoreを以下に沿って試した、軽くソースを見たまとめ
特にエラーもなく動作した
https://developers.google.com/ar/develop/unity/getting-started
詳細
動作端末
- Pixel/Pixel XL
- Galaxy S8
https://developers.google.com/ar/discover/#supported_devices
今回はPixel XLを利用
動作対象OS
- Android7.0以上
8.0でも一応動いた
開発環境
- Android SDK version 7.0 (API Level 24) or higher
https://developer.android.com/studio/intro/update.html#sdk-manager - Unity 2017.2 Beta 9 or later
https://unity3d.com/jp/unity/beta - ARCore SDK for Unity
https://github.com/google-ar/arcore-unity-sdk/releases/download/sdk-preview/arcore-unity-sdk-preview.unitypackage
環境構築手順
基本的にgetting-started通りでOK
- Unityダウンロード後install
- デフォルトのままインストールすればOKのはず、Androidが対象となっているかだけ見たほうがいいかも - ARCore SDK for Unity import
- ダウンロードしてきたARCore SDK for Unityをimport
- Unity開いて対象ファイル実行すればimportされる - File > BuildSettingsをひらき、Androidを選択しswitch Platform押下
動作した感じ
https://youtu.be/IL4iMZfGFSA
ARKitと同じイメージ、平面を認識して、そこにものを置ける
コードを軽く読んだ感じ
PointCloudを軽く読んで見た
public void Update()
{
// Do not update if ARCore is not tracking.
if (Frame.TrackingState != FrameTrackingState.Tracking)
{
return;
}
Frameの中に現在のTrackingの状態が入っている、その状態によって処理を振り分ける
https://developers.google.com/ar/reference/unity/class/google-a-r-core/frame
例えばPointCloudをUpdate契機で取得して、今保持しているものよりTimeStampが新しければ置き換える的なことをする
// Fill in the data to draw the point cloud.
PointCloud pointcloud = Frame.PointCloud;
if (pointcloud.PointCount > 0 && pointcloud.Timestamp > m_lastPointCloudTimestamp)
{
// Copy the point cloud points for mesh verticies.
for (int i = 0; i < pointcloud.PointCount; i++)
{
m_points[i] = pointcloud.GetPoint(i);
}
// Update the mesh indicies array.
int[] indices = new int[pointcloud.PointCount];
for (int i = 0; i < pointcloud.PointCount; i++)
{
indices[i] = i;
}
m_mesh.Clear();
m_mesh.vertices = m_points;
m_mesh.SetIndices(indices, MeshTopology.Points, 0);
m_lastPointCloudTimestamp = pointcloud.Timestamp;
}
調査進めたら加筆するかも
参考リンク集
- Getting Started for Unity
https://developers.google.com/ar/develop/unity/getting-started - ARCore for Unity API Reference
https://developers.google.com/ar/reference/unity/