unity有没有只需要普通摄像头的 捕捉和识别

如题所述

第1个回答  2017-04-30
有NPC在屏幕中跑动,在跑出屏幕外后会被删掉。
现在问题是,如何判断NPC不在摄像机视野中。
网上搜了一下,最多的一个回答是“unity 事件中 有相关的事件 可参考”,但是看不懂。
另有人说投影到屏幕坐标,这个没有试过。一会去试试不在视野中和在视野中的投影有什么区别。
谁能告诉我一种比较简单的方法来进行判断(比如unity中一个函数搞定O(∩_∩)O~)
了!

【补充】:
将楼下方法挂在NPC上,可以检测得到,但是经过测试,在NPC出屏且移动一定距离后可以检测得到。
我自己试了一种方法,用NPC映射到屏幕坐标来判断(和屏幕的宽和高比较)
camera.WorldToScreenPoint(enemy.transform.position)
Screen.width
Screen.height

如果映射后的坐标不在屏幕内,则出屏了O(∩_∩)O~

偶尔看到这个方法,但是还没试,先粘到这里。
判断物体是否在视野内的方法。其实实现很简单,一个API方法而已。这个方法就是OnWillRenderObject(),在Unity3D文档描述中,当游戏对象对摄像机来说是可见的话,这个方法就会被调用。
我们来测试这个方法的功能。首先新建一个场景,在场景中放入一个方块和一个球体,还有加入光源,便于观察,我使用的是Unity3D5.0beta版本,在新建场景时会团默认创建光源,其他版本要自己加入。接下来,给球体加入刚体组件。运行场景,我们会发现球体会受重力影响掉下去,方块还在原位。
新建一脚本,如下所示:
using UnityEngine;

public class DetectVision:MonoBehaviour{

//传入方块的引用,用作标识
public GameObject cube;
//标识球体是否在摄像机视野内
public bool isRendering=true;

private float lastTime=0;
private float curtTime=0;

void Update()
{
//对比时间记录,如果不等,说明还在摄像机视野中。
isRendering = curtTime != lastTime ? true : false;
if (isRendering)
{
//在视野中,方块为红色
cube.GetComponent().material.color = Color.red;
}
else {
//不在视野中,方块变为白色
cube.GetComponent().material.color = Color.white;

}

//将当前时间传入上一帧时间记录中
lastTime = curtTime;
}

//如果对象可见,调用此方法
void OnWillRenderObject()
{
//将当前帧开始时间记录
curtTime = Time.time;
}
}
将脚本拖到球体上,并将方块对象拖到脚本上。运行程序,我们发现,刚开始方块是红色的。

当球体掉出视野后,方块变成了白色,效果图如下:本回答被提问者采纳
第2个回答  2017-11-21
我也在找寻答案,现在只看到用Kinect 2 类似的摄像头的,有动作捕捉和表情捕捉的插件 CinemaMoCap 和 Cinema Face Cap 。希望对你有帮助!

vup是什么意思
1、VUP是一款PC端虚拟直播软件,使用Unity3D引擎开发,基于动作捕捉。2、主要特性:实时捕捉。通过一个普通电脑摄像头,可实现虚拟形象实时同步真人的眉,眼,口等表情细节。内置多种类型的动捕接口,实时捕获真人动作数据并映射至虚拟形象。支持全身动作捕捉,半身动作捕捉,手臂手指捕捉。可支持大多数动捕型...

如何在unity里使用opencv
首先官方商店里有opencv for unity,其次识别手势用leapmotion或者二代kinect。我又看到了你要把摄像头绑脑袋上…那你最好还是用leapmotion,单目摄像头是个坑,我们实验室有人在做单目摄像头的动作捕捉,还得先剔除背景,这就是说你脑袋不能动。如果你不想自虐,leapmotion是最好的选择,二手400元左右...

UNITY的摄像头怎么对准视体,使摄像头预览界面全照到上面去
调整摄像机Y坐标,选中摄像机在属性面板中将鼠标放在Transform组件的position属性的y值旁点击不动,当出现三角拖拽符号的时候慢慢拖拽鼠标来修改Y坐标。

unity在使用电脑摄像头时很卡顿
unity卡顿很大的原因跟本地电脑硬件有关系,unity使用电脑摄像头的时候会占用大量内存,当内存不足时会导致使用卡顿。现在有个可以让你流畅运行unity但是又不用升级电脑也可以实现,那就是上赞奇云工作站。你只需要提供一台普通配置的旧电脑,无论你本地电脑配置多少,下载赞奇云工作站客户端注册登陆即可选...

抖音快手这样的直播是怎么操作怎么播的,看视频?
虚拟形象设计。使用3D建模工具如Maya、3d Max等设计虚拟人物的3D模型,包括人物的面部特征、头发、服装等细节。然后使用渲染引擎如Unity 3D、Unreal等进行高真实性渲染,输出各角度的2D形象和视频。表情捕捉。使用如Faceunity、FacePlusPlus等人脸识别SDK,通过普通摄像头实时捕捉主播的表情,将表情映射到虚拟人物...

unity判断是否有摄像头权限
RaycastHit hit;if (Physics.Raycast(你的camera.transform.position, 射线的方向, out hit)){ if(hit.tag=="floor"){ Debug.Log("你碰到了地面");} } 试试吧

如何检测一个unity游戏里有没有涉黄信息
点击场景上的一个位置,角色就会自动寻路过去。中间可能会有很多的障碍物,角色会自动绕过障碍物,最终达到终点。使用Unity来开发手游,自动寻路可以有很多种实现方式。最近,一名海外开发者在博客中分享了自己用Unity引擎重做此前研发的Flash游戏寻路导航的心得,希望可以给大家带来帮助:大家好,最近我一直都...

导入unity3d的树,只有在近处才能看见,在远处就看不见,是怎么回事?_百度...
回答:这是为了优化性能而采取的手段,超过一定距离后植被就不显示或降低显示细节。可以在Terrain下设置有关参数。

unityarcamera调用的摄像头很卡
用WebCamTexture调用了电脑连接的摄像头(kinect),第一次运行摄像头画面是正常的,第二次运行摄像头画面一片黑,从windows自带的相机程序打开摄像头会显示摄像头被占用。关闭unity后恢复正常。这是因为是unity工程在停止运行后没有停止对摄像头的调用,导致摄像头处在被占用的状态无法使用。解决办法也很...

体感差什么意思
但是也已经有了更尖端的技术,不需要借助设备,只需动手、动脚,即能通过识别器捕捉人体的运动线程,如摩比源公司的“人体动作跟踪及分析技术”(H、E、A、R、T-Human Expression Analysis and Rendering Technology),从普通的网络摄像头直接捕捉人脸部表情及身体动作。这项技术已经应用于IM软件、电脑...

相似回答