Unity使用AR简单例子总结

Unity使用AR简单例子总结

1.在Unity中选择3D模版创建一个场景。
2.移除场景中的main camera。
3.在Unity工具栏window–package manger里面找到AR foundation和AR subsystems并安装,如果你身边没有mac,那么建议使用android,接着再把ARcore XR Plugin也安装上。
4.回到场景中,注意看左下角有一个project哪里放着你的资源文件,为了目录层级的有序,建议在Assets目录下新建Prefabs和Script两个目录,前者用来存放预制件,后者存放脚本代码。
5.右键选择XR对象里面的AR session(一定不要忘记添加!!!)和AR session origin
6.右键选择XR对象添加AR default plane,然后将其拖入Prefabs中作为一个预制件,接着删除它,放心删
7.选中AR session origin 在右边的inspector面板最下面的add component按钮,点击它,在弹出的选择框中输入““ARP”找到它的全称AR Plane Manager,添加它,并把AR default plane拖入AR Plane Manager
8.整一个小方块,右键3D object选择cube(看心情选就好了只是一个简单例子),并把它的scale缩放比例都设置为0.1,如果需要改变颜色使其更醒目,可以在project下assets上面右键create找打material新建一个,颜色随便选,创建完成之后,将其拖入cube即可,然后把cube也拖入Prefabs,并删除
9.在Scripts中创建一个c#脚本,名字默认AppController,在里面写入代码如下

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;
 
[RequireComponent(typeof(ARRaycastManager))]
public class AppController : 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;
                }
        }
    }
}

在上述代码中,首先我们使用[RequireComponent(typeof(ARRaycastManager))]属性确保添加该脚本的对象上必须有ARRaycastManager组件,因为射线检测需要用到ARRaycastManager组件。在Update()方法中,我们对手势操作进行射线检测,在检测到的平面上放置一个虚拟物体,如果该虚拟物体已存在,则将该虚拟物体移动到射线检测与平面的碰撞点。

10.接着将脚本拖入AR session origin中,然后再把cube放入脚本暴露出的spawnPrefab中

项目构建和真机调试

在工具栏File下选择build settings,观察提供的平台找到android机器人,点击switch platform切换目标平台
接着在player settings中other settings里面注意如果auto graphis api被勾选了,请取消勾选,并删除vulkan,保留opengles3
往下看如果multithreaded reandering有勾选就取消,然后就是设置一下minimum api level,这个看你调试的andriod选,其它默认即可
然后在左侧找到XR plugin-in managent把ar core 勾上,然后不着急打包
接下来,在工具栏edit下面的preferences下面的external tools检查一下,jdk,sdk,ndk的路径,默认这些在安装unity的时候会为你装好
找到sdk的路径,通过cmd启动adb,在连接之前请先把手机的开发者选项打开,并开启无线调试,然后进入手机的无线调试相关界面,可以选择配对码与电脑配对

adb pair IP地址:配对端口
Enter pairing code:输入手机上的配对码
adb connect IP地址:端口
adb devices

adb connect IP地址:端口,连接成功手机上会提示,如果不提示,不放心就通过adb devices查看一下
顺带一提,电脑与手机的wifi要连同一个
这个时候就可以开始无线调试了,选择file下面的build settings ,点击build and run 等待自动打包结束就好
进入AR程序后先找个平面左右移动手机,待屏幕空间出现范围框之后,再通过点击把物体渲染上去,至此一个简单的ar小例子就完成了

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程介绍 本套课程从技术理念到项目实践,教大家系统掌握ARKit技术开发,随心打造iOS端AR增强现实应用。由一开始的开发环境搭建,到Unity ARKit Plugin、ARFoundation ARKit等不同时期技术的讲解。从平面模型放置、识别图片、手势交互、3D物体识别、面部AR贴纸、光照估计、环境探针、多人AR技术,甚至包含ARKit3.0的动作捕捉技术等。除了以上课程内容,更加入了随着技术更新与时俱进更新的ARKit连载技术教学内容。课程收益 轻松理解ARKit的技术原理,从零到一创建自己的第一个AR项目。学习UnityARKit Plugin经典技术,了解ARKit中的常见概念和原理。学会在 ARFoundation 中使用ARKit,进行企业级AR项目开发。学会如何在AR项目里播放模型动画,通过触屏手势交互实现模型的旋转和缩放。 了解ARKit的图片识别,掌握AR卡片、AR书籍的实现方法。 学会使用面部增强技术,实现热门短视频应用的AR贴纸效果,实现面部表情追踪。学会使用ARKit物体检测技术,实现3D物体识别,可以广泛应用于工业、建筑、古董、玩具手办、艺展览等不同场景。学习ARKit中的经典交互案例,优化AR项目的用户体验。熟练使用环境纹理、光照估计技术,让AR内容随当前现实场景自动变化调节,看起来更加真实。基于WorldMap、CollaborativeSession AR技术,实现AR场景的持久化及多人AR体验效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值