首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >摄像机颜色检测(Unity3D)

摄像机颜色检测(Unity3D)
EN

Stack Overflow用户
提问于 2017-03-08 23:28:20
回答 2查看 4.8K关注 0票数 2

我目前正在Unity中开发一个室内设计增强现实应用程序,我需要检测摄像头指向的墙的颜色,但我似乎找不到解决方案。有什么功能可以帮助我解决问题吗?非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2017-03-08 23:54:13

可以使用从摄影机位置到向前方向的光线投射。参见下面的代码作为Unity的示例。

代码语言:javascript
运行
复制
void FixedUpdate()
{
    RaycastHit hit;

    if (Physics.Raycast(transform.position, transform.forward, out hit, 100.0f))
   {
        Color color = hit.transform.gameobject.GetComponent<Renderer>().material.color;
        print("Object colour: " + color);
   }

}

RaycastHit变量保存有关光线击中的任何对象(两点之间的不可见线)的信息。您可以通过从渲染器组件获取材质,然后从中查找其颜色属性来引用对象的颜色。类似于:

代码语言:javascript
运行
复制
Color color = hit.transform.gameobject.GetComponent<Renderer>().material.color;

*现在添加到上面的示例中。在Unity docs => Here中查看要在光线广播中使用的完整语法和可能的参数。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2017-03-09 02:46:33

您首先需要创建一个WebCamTexture对象,以便开始从设备的摄像头中提取信息。These Unity Docs在类的构造函数的Description部分中解释了如何做到这一点。

完成此操作后,您可以使用GetPixel(x,y)函数来获取特定像素的颜色。

此外,由于图像和正在观察的表面可能存在缺陷,我建议从纹理中提取多个样本,并将它们平均在一起。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42675356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档