Unity3D调用摄像头并在其上显示虚拟物体

整体如图所示,白色的平面是raw image,摄像头的代码要托到它上面,熊猫就是file,为fbx格式的文件,它和贴图文件(这里是dds文件,一般为图片文件如png等)直接拖进到assets窗口即可,主摄像机不用设置,默认即可。这里有两端代码,一段是摄像头的cam,一段是给cube物体上色用到,同时这里给熊猫和cube添加了旋转的动画(选择相应的物体,window->Animation添加属性,编辑rotation即可)
在这里插入图片描述
在这里插入图片描述
添加Canvas(GameObject->UI->Canvas)和Cube(GameObject->3dobject->cube)。Canvas下面添加Raw image(也在UI的子菜单中),然后开始设置。首先设置Canvas,其属性中的Render mode 和render camera以及plane distance,如下图:
在这里插入图片描述

cube上色即COLOR代码:

using UnityEngine;
using System.Collections;
public class color : MonoBehaviour
{

// Use this for initialization
void Start()
{
    GameObject cube = GameObject.Find("Cube");
    if (cube != null)
    {
        Renderer render = cube.GetComponent<Renderer>();
        render.material.color = Color.green;
    }
}
// Update is called once per frame
void Update()
{
}

}
记得分别拖到cube上。添加后,右下角会多出color(script)一栏,如下图;
在这里插入图片描述
添加动画后,右下角会多出animator一栏,如下图:
在这里插入图片描述

摄像头即cam代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class cam : MonoBehaviour
{

RawImage cameraImage;
private WebCamTexture webCamTex;

IEnumerator Start()
{
    cameraImage = GetComponent<RawImage>();

    // 请求摄像头权限
    yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
    // 如果获取到摄像头权限
    if (Application.HasUserAuthorization(UserAuthorization.WebCam))
    {
        // 获取所有的摄像头设备
        WebCamDevice[] devices = WebCamTexture.devices;
        if (devices != null)
        {
            // 索引为0的摄像头一般为后置摄像头,参数分别为设备名称、图像宽度、高度、刷新率
            webCamTex = new WebCamTexture(devices[0].name, 800, 1280, 30);
            // 实时获取摄像头的画面
            webCamTex.Play();

            cameraImage.texture = webCamTex;
        }
    }
}
// Update is called once per frame
void Update()
{

}

}
记得分别拖到raw image上,添加后,右下角会多出cam(script)一栏,如下图;
在这里插入图片描述
熊猫添加动画后,右下角会多出animator一栏,如下图:
在这里插入图片描述
效果如下,旋转的熊猫和立方体,熊猫会一直变换大小且会遮挡立方体的:
在这里插入图片描述
可以发布file->build setting…然后选择windows平台,即可生成单独运行的.exe程序,可以分享给任何人了,对方不需要安装unity3D可以看到你的美。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值