IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity 2021.1.15 ARCore环境配置与样例开发 -> 正文阅读

[游戏开发]Unity 2021.1.15 ARCore环境配置与样例开发

前言

首先这个文档是基于Unity2018及以上的,由于实习需要做AR相关的内容,但是AR Core之前的教程大多是基于SDK的,而这一功能已不在Unity更高版本中支持,同时楼主又是个Unity小白,所以为了跑起ARCore在安卓上的demo用了很久,以下便是过程记录,仅供参考~

ARCore官方文档

前期准备

  • 安装unity以及对应版本的Android Build Support

推荐用unityhub直接安装

  • 安装AR Foundation插件与ARCore XR Plugin

在Unity内的Window/Package Manager的Unity Registry中搜索安装

  • 将unity的环境调整为Android

位置为File/Build Settings,选择Android并点击Switch Platform,成功后可以看到如下内容

请添加图片描述

  • 点击左下角的Player Settings,随后对其中的Other Settings进行配置:
    请添加图片描述

  • 注意这里要修改默认的包名以及Android版本,24以上的才支持AR Core,其他设置也与图中保持一致即可

在这里插入图片描述

操作过程

0. 创建元素

  • 在Hierarchy中右键,找到XR,然后创建即可,以下模块均为创建相应部分后的操作

在这里插入图片描述

1. 创建一个AR Session

检查是否有AR Input Manager(如果没有就要用Add Component添加)

在这里插入图片描述

2. 创建一个AR Session Origin

检查AR Camera已经对应了AR Session Origin Camera

在这里插入图片描述

  • 使用Add Component添加一个AR Plane Manager(实现检测平面的功能)

选择DetectionMode为Everything(为检测水平和垂直的平面)

  • 使用Add Component添加AR Raycast Manager(为了与平面交互)

最终结果如下:

在这里插入图片描述

  • 选择AR Camera的Tag为主相机(记得删除原本的相机)

在这里插入图片描述

3. 创建一个AR Default Plane

  • 先在上面的Hierarchy中创建(XR/AR Default Plane),再拖至Project视图成为预设(prefab),再删除Scene部分的Plane

在这里插入图片描述

  • 将预设的Plane拖至AR Session Origin的AR Plane Manager的Plane Prefab

在这里插入图片描述

4. 创建一个spawn作为显示在平面内的物体

  • 创建一个名为SpawnableObject的Cube

在这里插入图片描述

  • 设置scale为0.1,0.1,0.1
  • 为cube新建一个名为Spawnable的tag,并为cube选中它

最后结果如下:

在这里插入图片描述

  • 与前面平面同理,将其拖入project window创建预设,并删除Hierarchy中的Cube

(预设Prefab其实有点类似复用的模块、组件…)

5. 创建一个交互的脚本

  • 创建一个C#脚本并将其命名为SpawnableManager
  • 创建一个Empty Game Object在Scene中,并取名为SpawnManager
  • 修改脚本代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;

public class SpawnableManager : MonoBehaviour
{
  [SerializeField]
  ARRaycastManager m_RaycastManager;
  List<ARRaycastHit> m_Hits = new List<ARRaycastHit>();
  [SerializeField]
  GameObject spawnablePrefab;

  GameObject spawnedObject;
  // Start is called before the first frame update
  void Start()
  {
    spawnedObject = null;
  }

  // Update is called once per frame
  void Update()
  {
    // 检测点击,针对点击的不同阶段(phase),我们执行不同的事务
    if (Input.touchCount == 0)
      return;
    if (m_RaycastManager.Raycast(Input.GetTouch(0).position, m_Hits))
    {
      if (Input.GetTouch(0).phase == TouchPhase.Began)
      {
        SpawnPrefab(m_Hits[0].pose.position);
      }
      else if (Input.GetTouch(0).phase == TouchPhase.Moved && spawnedObject != null)
      {
        spawnedObject.transform.position = m_Hits[0].pose.position;
      }
      if (Input.GetTouch(0).phase == TouchPhase.Ended)
      {
        spawnedObject = null;
      }
    }
  }

  private void SpawnPrefab(Vector3 spawnPosition)
  {
    spawnedObject = Instantiate(spawnablePrefab, spawnPosition, Quaternion.identity);
  }
}

6. 绑定到页面对象

  • 创建一个空的Object,并将其改名为SpawnManager

在这里插入图片描述

  • 将刚才创建好的C#脚本拖入对象:

在这里插入图片描述

  • 可以看到脚本已经出现在右侧

在这里插入图片描述

  • 将之前创建的AR Session Origin作为该脚本的Raycast Manager拖入

这将作为页面的AR控制脚本

  • 将之前创建的SpawnableObject作为该脚本的Spanwnable Prefab拖入

这将成为代码中可以复制的对象

7. 导出与运行

  • 在刚刚的Build Settings中,选择Build,并选择保存位置,即可获得APk,安装在手机上就可以看到效果了:

在这里插入图片描述
在这里插入图片描述

  • 效果类似这样,但是最后出现的物体是你设置的SpawnableObject,仔细阅读代码应该就能明白了!
  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 13:01:39  更:2021-08-18 13:02:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 18:56:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码