赞
踩
Unity版本2020.3.7f1c1
新建unity项目,参考基本配置操作Unity AR Foundation 的 ARCore 扩展入门 | Google Developers。适用于 Android 的 ARCore 扩展快速入门 | Google Developers
导航到Window > Package Manager 。
在Packages旁边,选择Unity Registry 。
安装两个包,如下图,
安装 ARCore 扩展包 ,Releases · google-ar/arcore-unity-extensions (github.com)网址中下载。
导入过程中,我选择了json文件,因为参考导入第二个add package from tarball ,在安装软件到Android过程中会中断build,参考网上解决办法,选择了第一种的add package from disk。
安卓:
在Plug-in Providers下检查ARCore 。
安卓:
导航到“编辑” >“项目设置” >“ XR 插件管理” >“ ARCore” 。 Requirement默认设置为Required 。
单击Edit > Project Settings > Player ,选择带有 Android 图标的选项卡。在其他设置 > 标识下,指定24
或更高的最低 API 级别。
完成以下修改
删除原来的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。
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.XR.ARFoundation;
- using UnityEngine.XR.ARSubsystems;
-
- [RequireComponent(typeof(ARRaycastManager))]
- public class AppControler : MonoBehaviour
- {
- public GameObject spawnPrefab;
- static List<ARRaycastHit> Hits;
- private ARRaycastManager mRaycastManager;
- private GameObject spawnedObject = null;
- private void Start()
- {
- Hits = new List<ARRaycastHit>();
- mRaycastManager = GetComponent<ARRaycastManager>();
- }
-
- void Update()
- {
- if (Input.touchCount == 0)
- return;
- var touch = Input.GetTouch(0);
- if (mRaycastManager.Raycast(touch.position, Hits, TrackableType.PlaneWithinPolygon | TrackableType.PlaneWithinBounds))
- {
- var hitPose = Hits[0].pose;
- if (spawnedObject == null)
- {
- spawnedObject = Instantiate(spawnPrefab, hitPose.position, hitPose.rotation);
- }
- else
- {
- spawnedObject.transform.position = hitPose.position;
- }
- }
- }
- }
-
-
设置预制件,可设置自己的三维模型。
最后是打包安装,运行结果如图
参考(12条消息) ARFoundation之路-Raycasting_DavidWang-CSDN博客。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。