如何在unity中unity 获取摄像机手机摄像机图像

扫二维码下载作业帮
1.75亿学生的选择
下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
unity3d353摄像机如何跟着物体移动
桐儿0DG儋7
扫二维码下载作业帮
1.75亿学生的选择
这个有很多办法最简单的是应用官方的脚本assets-import packages-scripts然后把新导入的包里的smooth follow或者smooth lookat拖给摄像机然后把要跟随的物体拖给target就行了 或者可以本身写脚本或者用一些插件比如itween之类的活动插件
为您推荐:
其他类似问题
扫描下载二维码Vuforia unity开发摄像头问题
项目一直在赶进度,写博的时间越来越少了~从事Unity开发也快两个月了,AR方向~ 使用的是高通家的SDK Vuforia。。。从工程融合一直到对unity和Vuforia的深层次的开发,新东西,毕竟坑多。。国内做AR开发的没有自家的SDK一般都是用国外的SDK或则国内其他家的一些SDK吧~ 使用这些SDK做AR开发都有共同的一个特性,都喜欢在Unity里面做开发。Unity之前一直是游戏引擎,直到Unity5.0版本出来后Unity官方有一个方向转变,不仅仅是游戏引擎而且Unity可以做应用级别的开发,但是Unity应用级的开发是一个刚刚起步的开发,Unity里支持的东西不够全面,扩张性不够强,脚本语言的控制和原生设备的兼容性也不够,就是因为这些原因,有了工程融合,iOS、的工程和Unity的工程融合在一起开发,使得Unity的支持面更广,扩张性更强,很多Unity做不到的,或则难做的,就可以让原生来开发,这时候~unity就是一个万金油~
** 好了,本文主要讲解的是Unity对Vuforia的开发中在原生调用摄像头上遇到的坑~Unity中调用设备摄像头打开或则关闭,或则开关扫描识别问题等等一些情况~ 下面先说说趟过的坑,再说说解决办法,或则目前没有解决的问题 **
先说说情况,移动端App的iOS的项目中有三个界面,其中一个就是扫描界面,扫面界面当让是Unity对Vuforia的开发导出的工程融合在原生的项目中的~当我程序退出扫描界面后Unity和Vuforia应该处于暂停状态OnPause,笔者研究了一段时间,在iOS中使用UnityInterface.h中暴露的暂停接口根本就没有让扫描暂停~如下图
笔者尝试了一次又一次的interface中的方法,相机就根本不能暂停,,原来童话里都是骗人的~可能 有人会想到暂停不了也没有什么大不了的 吧~ 我研究了一下国内的App,是有几款App没有暂停~例如幻视,,问题又来了,,既然相机不能暂停就不让他暂停呗~ 可是我们的项目中有这样一个需求,见下图~
拍照功能~扫描界面不能暂停Camera,其他界面现在要调用Camera,,做过移动端开发的都知道,,Camera是实例化出来的,而且是单例,,如果再一次实例化这时候,程序 ~ 崩~
所以不把 摄像头暂停肯定不行~ 这时候笔者通过UnityInterface.h 的方法是Camera 暂停了,,这时候~ 新的问题又出来了,,通过这样的方法使Camera暂停了,可是Vuforia还是在继续调用摄像头再继续扫面,,,虽然Camera 是关闭了,界面上看不到,这时候其实Vuforia还是在调用摄像头继续扫面,这时候~ 笔者想到的唯一办法就是 通过Unity内部去控制Vuforia,再向原生暴露需要调用的接口~ 所以有了以下方法~
// 关闭相机
public void CloseCameraDevice ()
CameraDevice.Instance.Stop();
CameraDevice.Instance.Deinit();
// 打开相机
public void OpenCameraDevice ()
CameraDevice.Instance.Init(CameraDevice.CameraDirection.CAMERA_DEFAULT);
CameraDevice.Instance.Start();
// 关闭识别
public void CloseCloudReco ()
CloudRecoBehaviour cloudRecoBehaviour = GameObject.FindObjectOfType(typeof(CloudRecoBehaviour)) as CloudRecoB
cloudRecoBehaviour.CloudRecoEnabled =
// 打开识别
public void OpenCloudReco ()
CloudRecoBehaviour cloudRecoBehaviour = GameObject.FindObjectOfType(typeof(CloudRecoBehaviour)) as CloudRecoB
cloudRecoBehaviour.CloudRecoEnabled =
上面这些方法是在Unity里面实现的,写在一个脚本里,挂在一个GameObject上供原生调用~
未解决的坑~
Android在扫描界面打开闪关灯,因为扫描界面Unity调用了Camera,安坐的闪关灯是通过实例化相机来打开的~这时候Android拿不到Camera,因为Unity把Camera暂用了,,在扫描界面不能打开闪关灯~ 这问题还未解决~ 如果有朋友知道解决办法~ 请告诉笔者~ 留言,,非常感谢~眼眸深邃、轮廓分明、身材颀长,活生生的一幅画。
这在监狱民警看来,那么令人不可思议。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
  本文介绍了两种在Unity中获得相机图像的方法:
  1.使用image 类
  2.使用图像作为OpenGL的纹理
  使用image类
  使用image类更像是原生版本。
  1.注册所需的图像格式使用CameraDevice.SetframeFormat 方法:
  CameraDevice.Instance.SetframeFormat(Image.PIXEL_FORMAT.RGB888, true);
  2.在QCARBehaviour运行之后调用此方法
  使用Unity的脚本排序功能,或在一个更新的回调中做一次。
  3.使用CameraDevice.GetCameraImage方法检索图像。
  在 ITrackerEventHandler.OnTrackablesUpdated 的回调中执行这样的行为。这样您就可以确保您检索当前帧的最新的摄像机图像。
  一定要确保相机的图像不是空的,因为在注册了图像格式之后,图像会在几帧之后才可用。
  这里是完整的脚本:
  using UnityE
  using System.C
  public class CameraImageAccess : MonoBehaviour
  private Image.PIXEL_FORMAT m_PixelFormat = Image.PIXEL_FORMAT.RGB888;
  private bool m_RegisteredFormat =
  private bool m_LogInfo =
  void Start()
  QCARBehaviour qcarBehaviour = (QCARBehaviour) FindObjectOfType(typeof(QCARBehaviour));
  if (qcarBehaviour)
  qcarBehaviour.RegisterTrackablesUpdatedCallback(OnTrackablesUpdated);
  public void onTrackablesUpdated()
  if (!m_RegisteredFormat)
  CameraDevice.Instance.SetframeFormat(m_PixelFormat, true);
  m_RegisteredFormat =
  if (m_LogInfo)
  CameraDevice cam = CameraDevice.I
  Image image = cam.GetCameraImage(m_PixelFormat);
  if (image == null)
  Debug.Log(m_PixelFormat + & image is not available yet&);
  string s = m_PixelFormat + & image: \n&;
  s += & size: & + image.Width + &x& + image.Height + &\n&;
  s += & bufferSize: & + image.BufferWidth + &x& + image.BufferHeight + &\n&;
  s += & stride: & + image.S
  Debug.Log(s);
  m_LogInfo =
  使用OpenGL的纹理
  image类提供了一个摄像头像素的字节数组。这种方法对一些图像处理任务是有用的,但有时更好的是作为一个OpenGL纹理来找到它。你可以获得的图像的OpenGL纹理使用范例backgroundtextureaccess 中的方法。
  1.注册一个Texture2D对象在每一帧充满摄像头像素,而不是让vuforia渲染相机本身在每一帧渲染图像。
  2.看范例中的readme.txt(在assets文件夹)中的两种方式使用这种方法渲染相机图像。
  更多AR/VR资讯请关注微信:arinchina 网站:
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
搜狐公众平台官方账号
生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者
搜狐网教育频道官方账号
全球最大华文占星网站-专业研究星座命理及测算服务机构
AR in China 增强现实中国是中国AR增强现实行业...
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格?云顿/乔?弗拉尼甘/Bianca Bree
主演:艾斯?库珀/ 查宁?塔图姆/ 乔纳?希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬初夜
客服热线:86-10-
客服邮箱:&>&&>&&>&&>&Unity3D_33_Android 打开本地摄像机与相册裁剪图片
Unity3D_33_Android 打开本地摄像机与相册裁剪图片
上传大小:9.9MB
Unity3D_33_Android 打开本地摄像机与相册裁剪图片
综合评分:0(0位用户评分)
所需积分:2
下载次数:10
审核通过送C币
创建者:fireblue1990
创建者:ljheee
课程推荐相关知识库
上传者其他资源上传者专辑
课程资源热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
Unity3D_33_Android 打开本地摄像机与相册裁剪图片
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
siwucainiao
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:}

我要回帖

更多关于 unity3d 获取主摄像机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信