首先说下项目需求:公司是做主题公园的,需要在公交站台做一个交互功能,显示器外接两个摄像头、默认状态摄像头显示公交站台后面视野,当有人进入时,自动转化识别进入的人,这里只是做了一个识别切换功能。

1:在EasyAR中下载SDK,导入到Unity中。

2:EasyAR官网申请一个Key,用于场景使用。

3:场景添加EasyAR_Startup预制体-》把key复制到EasyARBehaviours脚本中。

4:创建一个Plane用于渲染背景摄像头:注场景有两个摄像头(01背景摄像头,02AR默认摄像头),只要插入两个USB接口的摄像头。

5:代码

using UnityEngine;
using System.Collections;
using EasyAR;

public class WebCamera : MonoBehaviour
{

public Renderer MovieBack;

public GameObject Player;

string deviceNameBack;
    //接收返回的图片数据
    WebCamTexture texBack;
     void Start()
    {
        StartCoroutine(Init());//调用背景摄像头初始化 
        MovieBack.transform.gameObject.SetActive(true);

FindObjectOfType<ARCameraBehaviour>().TargetLost+=delegate{

Player.SetActive(true); //调用识别物体丢失情况

MovieBack.transform.gameObject.SetActive(false); };

FindObjectOfType<ARCameraBehaviour>().TargetFound += delegate {

Player.SetActive(false);

MovieBack.transform.gameObject.SetActive(true); };//调用识别物体识别情况

}
    /// <summary>
    /// 捕获窗口位置
    /// </summary>
    IEnumerator Init()
    {
        yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
        if (Application.HasUserAuthorization(UserAuthorization.WebCam))
        {        
            WebCamDevice[] devices = WebCamTexture.devices;
            Debug.LogError("当前摄像头个数" + devices.Length);
            if (devices.Length >= 2)
            {
                deviceNameBack = devices[1].name;
                texBack = new WebCamTexture(deviceNameBack, 640, 480, 12);
                texBack.Play();
                Debug.LogError("正在初始化背景摄像机.......");
            }
            else
            {
                Debug.LogError("当前摄像头个数小于2个");
            }         
        }
    }
 
     void Update()
    {       
            MovieBack.material.mainTexture = texBack; //渲染摄像头画面    
    }

做一个AR小游戏,使用EasyAR SDK相关推荐

  1. 《看聊天记录都学不会Python到游戏实战?太菜了吧》(8)我们开始做一个数字小游戏吧

    本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题.此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将 ...

  2. python大作业数独_python做一个数独小游戏

    最近看了下python的一些知识,在这里记载一下. 1.首先是安装,在官网下载最新的版本3.6,安装的时候要注意在下面勾选上ADD TO PATH,安装的时候会自动写入到环境变量里面,如果没有勾选,可 ...

  3. 用C语言做一个迷宫小游戏

    用C语言做一个迷宫小游戏,以下是代码段 这个迷宫游戏使用了递归回溯算法来寻找通往出口的路径.迷宫中的墙用'#'表示,路径用空格表示,入口和出口分别用'S'和'E'表示,已走过的路径用'*'表示.在生成 ...

  4. java做一个打地鼠小游戏

    想起了了大学那会做过这个小游戏,今天重新写一下 首先准备几个素材图片,搜了半天没有,只好自己找了个图片截了一下(如果侵权了联系我删除). JFrame画一个主页面,设置了全局的行.列和总数,循环添加所 ...

  5. 使用JS和Canvas做一个html5小游戏

    这是一个很简单的html5游戏,通过学习原博文自己做了些改造, 现在附上原博文的链接 这是游戏的截图: 1.有计算抓住的怪物的数量 2.有背景,英雄,怪物. 第一步:建立html文件和js文件 建立一 ...

  6. 100行Python代码,做一个打地鼠小游戏

    游戏画面 首先先进行游戏画面排版, class TopWindow(QWidget):def __init__(self, parent=None):super().__init__(parent)s ...

  7. C#使用winform做一个开关小游戏

    成品展示 游戏原理: 游戏时,任意点击一个格子,其自身状态改变,且上下左右四个格子的状态也进行变化,即:原来是开的变成关的,原来是关的变成开的. 制作过程 1.建项目会的吧. 2.设置游戏窗口名称,t ...

  8. 结合动画与键盘交互,做一个弹球小游戏

    小球在窗体范围内运动,撞到除底边外的另外三个边缘就反弹一次.如果,小球撞到底边,那么游戏结束.玩家可以通过控制在底边上的一个挡板,让小球撞击到挡板上而反弹,阻止小球撞到底边. 1. 运动的小球 创建一 ...

  9. 用python做一个坦克小游戏_Python制作经典坦克大战小游戏

    image.png 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. ...

最新文章

  1. python将视频转为多个gif
  2. HTML meta标签总结
  3. 《Python数据科学指南》——1.16 使用lambda创造匿名函数
  4. linux less命令简介
  5. ORACLE TEXT DATASTORE PREFERENCE(六)
  6. java基础将字符串进行反转
  7. ERP通用附件管理功能设计与实现
  8. FPGA实验2:ADDA测试
  9. DELL EMC Isilon配额Quota
  10. t420i升级固态硬盘提升_老电脑想升级,如何选购最适合的固态硬盘
  11. 使用Ubuntu搭建Web服务器
  12. python求周长_作业-python面向对象编程-计算周长和面积
  13. 2020年总结:携梦而行,无怨无悔
  14. 进大厂全靠自学,微软头条实习生现身说法:我是这样自学深度学习的
  15. 前端 原型对象中this的认识
  16. vcs dump vpd的方法
  17. 计算机显示器是输入,如果计算机显示器未显示视频输入怎么办
  18. 饭局上领导想抽烟,别说“抽我的软华子”,酒桌上3种人不能重用
  19. 交易系统开发(九)——Dark Pool技术
  20. element-ui iconfont乱码问题处理

热门文章

  1. Day --01 课后总结
  2. “房间里有100个人,每人都有100元钱,每轮每人要拿一元钱随机给另一个人”最后分布的python结果
  3. openfire--好友管理实现好友添加及分组管理
  4. php 0x80070002,vs2015 系统找不到指定的文件(异常来自HRESULT:0x80070002)问题的解决方法...
  5. hydd的LInux笔记Day43
  6. linux系统下的rar压缩包解压简单流程(个人使用过的)
  7. 网站评论功能数据库设计和开发
  8. 高斯过程(原理和代码实现)
  9. PE文件格式详细解析(二)
  10. Web前端VS后端那个好一点