当前位置:   article > 正文

Unity使用AR Foundation(1)_unity arfoundation

unity arfoundation

Unity版本2020.3.7f1c1

 

一、准备

新建unity项目,参考基本配置操作Unity AR Foundation 的 ARCore 扩展入门  |  Google Developers适用于 Android 的 ARCore 扩展快速入门  |  Google Developers

  1. 导航到Window > Package Manager 。

  2. Packages旁边,选择Unity Registry 。

安装两个包,如下图,

安装 ARCore 扩展包 ,Releases · google-ar/arcore-unity-extensions (github.com)网址中下载。

导入过程中,我选择了json文件,因为参考导入第二个add package from tarball ,在安装软件到Android过程中会中断build,参考网上解决办法,选择了第一种的add package from disk

安卓:

  1. 导航到编辑>项目设置XR 插件管理> .
  2. Plug-in Providers下检查ARCore 。

    安卓:

  3. 导航到“编辑” >“项目设置” >“ XR 插件管理” >“ ARCore” 。 Requirement默认设置为Required 。

  4. 单击Edit > Project Settings > Player ,选择带有 Android 图标的选项卡。在其他设置 > 标识下,指定24或更高的最低 API 级别。 

  5. 完成以下修改

 二、平面检测放置模型

删除原来的Main Camera,右键添加——XR——AR Session Origin、AR Session。

点击AR Session Origin,1.在右侧添加AR Plane Manager组件(搜索添加),扫描后平面的预制件Plane Prefab需要设置,在Hierarchy场景区域,右键——XR——AR default Plane,将其拖入到文件夹中,修改名字,设置为Plane Prefab。2.为了在扫描后的平面中点击放置三维模型,需要添加AR Raycast Manager。

添加脚本,射线检测,添加AppControler。

  1. using System.Collections.Generic;
  2. using UnityEngine;
  3. using UnityEngine.XR.ARFoundation;
  4. using UnityEngine.XR.ARSubsystems;
  5. [RequireComponent(typeof(ARRaycastManager))]
  6. public class AppControler : MonoBehaviour
  7. {
  8. public GameObject spawnPrefab;
  9. static List<ARRaycastHit> Hits;
  10. private ARRaycastManager mRaycastManager;
  11. private GameObject spawnedObject = null;
  12. private void Start()
  13. {
  14. Hits = new List<ARRaycastHit>();
  15. mRaycastManager = GetComponent<ARRaycastManager>();
  16. }
  17. void Update()
  18. {
  19. if (Input.touchCount == 0)
  20. return;
  21. var touch = Input.GetTouch(0);
  22. if (mRaycastManager.Raycast(touch.position, Hits, TrackableType.PlaneWithinPolygon | TrackableType.PlaneWithinBounds))
  23. {
  24. var hitPose = Hits[0].pose;
  25. if (spawnedObject == null)
  26. {
  27. spawnedObject = Instantiate(spawnPrefab, hitPose.position, hitPose.rotation);
  28. }
  29. else
  30. {
  31. spawnedObject.transform.position = hitPose.position;
  32. }
  33. }
  34. }
  35. }

设置预制件,可设置自己的三维模型。

 

 最后是打包安装,运行结果如图

参考(12条消息) ARFoundation之路-Raycasting_DavidWang-CSDN博客

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/473844
推荐阅读
相关标签
  

闽ICP备14008679号