精华内容
下载资源
问答
  • Unity摄像头跟随鼠标旋转
    2020-12-23 02:56:13

    using System.Collections;

    using System.Collections.Generic;

    using UnityEngine;

    public class CameraMove : MonoBehaviour {

    float _rotationX;

    float rotationY;

    public float sensitivityHor = 5.0f;

    public float sensitivityVert = 5.0f;

    public float minimumVert = -45.0f;

    public float maximumVert = 45.0f;

    // Update is called once per frame

    void Update()

    {

    //摄像头移动

    //float x = Input.GetAxis("Horizontal") * Time.deltaTime * 5;

    //float y = Input.GetAxis("Vertical") * Time.deltaTime * 5;

    //transform.Translate(x, 0, y);

    //限制摄像头移动的范围

    //float move_x = Mathf.Clamp(transform.position.x, -20f, 20f);

    //float move_y = Mathf.Clamp(transform.position.y, -20f, 20f);

    //float move_z = Mathf.Clamp(transform.position.z, -20f, 20f);

    //transform.position = new Vector3(move_x, move_y, move_z);

    //点击鼠标右键旋转摄像头

    if (Input.GetMouseButton(1))

    {

    rotationY = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityHor;

    _rotationX -= Input.GetAxis("Mouse Y") * sensitivityVert;

    _rotationX = Mathf.Clamp(_rotationX, minimumVert, maximumVert);

    transform.localEulerAngles = new Vector3(_rotationX, rotationY, 0);

    }

    }

    }

    更多相关内容
  • 换脸,识别人脸
  • Unity摄像头画面30种滤镜效果
  • 哈喽大家好,你的橙哥突然出现~ 本系列博客地址:传送门 插件下载:传送门 购买博客的可联系我免费下载。...取消该脚本的 PlayOnStart,我们便可以通过脚本控制摄像头的开启了。 二、代码教程 1、基础.

    哈喽大家好,你的橙哥突然出现~

    本系列博客地址:传送门

    在这里插入图片描述

    插件下载:传送门

    购买博客的可联系我免费下载。


    一、场景配置

    1、添加组件

    在Canvas下新建空物体 AVProLiveCamera ,并添加如下四个组件:

    • CanvasRenderer
    • LiveCamera
    • uGUIComponent
    • Manager(required)

    2、配置组件

    将 LiveCamera 配置到 uGUIComponent 属性中去。

    在这里插入图片描述



    取消该脚本的 PlayOnStart,我们便可以通过脚本控制摄像头的开启了。

    展开全文
  • unity 实现调用外接摄像头或自带摄像头拍照功能的简单例子
  • 镜头畸变(Lens distortion)三、Unity相关技术1.RenderTexture2.RTHandle3.类型转换4.使用ComputeShader实现镜头畸变效果四、ROS传输1.对应的ROS Message 类型 一、摄像头仿真原理 1.创建三维模型 摄像头仿真的思路为...

    一、摄像头仿真原理

    1.创建三维模型

    摄像头仿真的思路为,基于环境物体的几何空间信息构建对象的三维模型,并根据物体的真实材质与纹理,通过计算机图形学对三维模型添加颜色与光学属性等。一般会使用Unreal Engine 或者Unity 等基于物理的渲染引擎来实现。

    2.将三维模型转为图像点

    摄像头仿真则通过坐标系转换的方法,将三维空间中的点通过透视关系变换为图像上的点。

    3.仿真摄像头的特性、采集过程

    之后,还需要对相机镜头的结构与光学特性,内部数据采集过程进行仿真,例如焦距,畸变,亮度调节,Gamma 调节,白平衡调节,色彩空间,景深,高动态范围(HDR)色调的调整等。

    摄像头仿真一般需要支持更改摄像头外参、内参以及畸变参数,包括摄像头的安装位置,角度,工作频率,分辨率,视场角,焦距和畸变参数等。这些参数会内部转换为投影矩阵,保证世界坐标系-> 相机坐标系-> 图像坐标系-> 像素坐标系整个过程的正确转换,并输出与真实相机效果一致的图像。

    4. 仿真天气情况与光照条件

    摄像头仿真需要模拟各种复杂的真实天气情况。天气调节一般需要支持时间、光照、太阳高度角、云、雨、雪、雾等各种自定义设置。从而可以支持各种天气和光线条件下的摄像头仿真。

    5.输出数据与传输

    摄像头仿真每一帧的原始数据一般可以使用RGB 或YUV 来表示。如需把仿真结果通过网络实时传给自动驾驶系统,一般可使用H264 压缩成视频流,减少传输带宽。

    摄像头仿真需要障碍物的真值信息,包括位置、朝向、包围盒、速度和类型等。

    除了对象检测,摄像头的仿真结果也会被用来训练其他计算机视觉算法,包括目标跟踪和语义分隔等。

    二、摄像头背景知识

    1.镜头畸变(Lens distortion)

    一般来说,镜头畸变实际上是光学透镜固有的透视失真的总称,也就是因为透视原因造成的失真,这种失真对于照片的成像质量是非常不利的,毕竟摄影的目的是为了再现,而非夸张,但因为这是透镜的固有特性(凸透镜汇聚光线、凹透镜发散光线),所以无法消除,只能改善。

    枕形畸变(枕形失真)
    在这里插入图片描述
    桶形畸变(桶形失真)
    在这里插入图片描述

    三、Unity相关技术

    1.RenderTexture

    渲染纹理__是在运行时创建和更新的特殊类型的__纹理。它们可用于实现基于图像的渲染特效、动态阴影、 投影器、反射或监视摄像机。

    渲染纹理的一个典型用法是将其设置为 摄像机的“目标纹理”属性 (Camera.targetTexture),这将使摄像机渲染到纹理, 而不是渲染到屏幕。

    必须时刻注意任何渲染纹理的生命周期, 并牢记在使用完渲染纹理后使用 Release 函数释放它们, 因为系统不会像对待常规托管类型那样对它们进行垃圾回收。

    渲染纹理检视面板如下:

    在这里插入图片描述

    2.RTHandle

    (Unity-HDRP)RTHandle类

    RTHandle类会随相机大小自动缩放。当不同大小的摄像机在渲染过程中使用时,这允许适当的重新利用Render Texture内存。

    NameSpace:UnityEngine.Rendering

    3.类型转换

    RenderTexture -> ImageData -> CompressedImage

    4.使用ComputeShader实现镜头畸变效果

    四、ROS传输

    1.对应的ROS Message 类型

    [MessageType("sensor_msgs/CompressedImage")]
    public class CompressedImage
    {
        public Header header;
        public string format;
        public PartialByteArray data;
    }
    
    public class PartialByteArray
    {
        public byte[] Array;
        public int Length;
    
        public string Base64;
    }
    
    展开全文
  • using UnityEngine; using UnityEngine.UI;... //摄像头实时显示的画面 private WebCamTexture m_webCameraTexture; //申请一个读取二维码的变量 private BarcodeReader m_barcodeRender = new BarcodeReade.

    将二维码扫描到的信息 post 到服务器

    /****************************************************************************
     * 2021.3 DESKTOP-J98GMVJ
     ****************************************************************************/
    
    using System;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    using QFramework;
    using ZXing;
    using System.Collections;
    using UnityEngine.Networking;
    
    namespace QFramework.Example
    {
        public partial class LoginCamRaw : UIComponent
        {
    
            //摄像头实时显示的画面
            private WebCamTexture m_webCameraTexture;
            //申请一个读取二维码的变量
            private BarcodeReader m_barcodeRender = new BarcodeReader();
    
            //多久检索一次二维码
            private float m_delayTime = 1f;
    
            public RawImage m_cameraTexture;
    
            private void Awake()
            {
            }
    
            IEnumerator Start()
            {
                //yield return new WaitForSeconds(1f);
                yield return new WaitForEndOfFrame();
                //调用摄像头并将画面显示在屏幕RawImage上
                WebCamDevice[] tDevices = WebCamTexture.devices; //获取所有摄像头
                string tDeviceName = tDevices[0].name; //获取第一个摄像头,用第一个摄像头的画面生成图片信息
                m_webCameraTexture = new WebCamTexture(tDeviceName, 1920, 1080); //名字,宽,高
                if (m_cameraTexture == null) m_cameraTexture = GetComponent<RawImage>();
                m_cameraTexture.texture = m_webCameraTexture; //赋值图片信息
                m_webCameraTexture.Play(); //开始实时显示
                InvokeRepeating("CheckQRCode", 0, m_delayTime);
            }
    
            /// <summary>
            /// 检索二维码方法
            /// </summary>
            void CheckQRCode()
            {
                //存储摄像头画面信息贴图转换的颜色数组
                Color32[] m_colorData = m_webCameraTexture.GetPixels32();
    
                //将画面中的二维码信息检索出来
                var tResult = m_barcodeRender.Decode(m_colorData, m_webCameraTexture.width, m_webCameraTexture.height);
    
                if (tResult != null)
                {
                    Debug.Log(tResult.Text);
    
                    // 发送到服务器进行比对
                    PostToServer(tResult.Text);
                }
            }
    
            public string m_sServerAddress => "http://127.0.0.1/";
            public string m_sPostMsg => "https://www.shengyinyouju.cn/cBBQE6uuDk4g=";
         
    
            // 外部调用 post 到服务器方法
            public void PostToServer(string m_sPostMsg)
            {
                StartCoroutine(Post(m_sPostMsg));
            }
    
            IEnumerator Post(string m_sPostMsg)
            {
                WWWForm form = new WWWForm();
                //键值对
                form.AddField("url", m_sPostMsg);
    
                UnityWebRequest webRequest = UnityWebRequest.Post(m_sServerAddress, form);
    
                yield return webRequest.SendWebRequest();
                //异常处理,很多博文用了error!=null这是错误的,请看下文其他属性部分
                if (webRequest.isHttpError || webRequest.isNetworkError)
                    Debug.Log(webRequest.error);
                else
                {
                    Debug.Log(webRequest.downloadHandler.text);
                    if(webRequest.downloadHandler.text == "1")
                    {
                        // 识别到正确的二维码 打开开始界面
                        UIKit.ClosePanel<UIQRCodeLoginPanel>();
                        UIKit.OpenPanel<UIStartPanel>();
                    }
                }
            }
    
    
            protected override void OnBeforeDestroy()
            {
                StopAllCoroutines();
                CancelInvoke();
                if (m_webCameraTexture.isPlaying)
                {
                    //Debug.LogError("关闭摄像头!");
                    m_webCameraTexture.Stop();
                }
            }
        }
    }

     

    下面代码出处: https://blog.csdn.net/FransicZhang/article/details/94917700 

    using UnityEngine;
    using UnityEngine.UI;
    using ZXing;
    using ZXing.QrCode;
    
    public class QRCode : MonoBehaviour
    {
        //摄像头实时显示的画面
        private WebCamTexture m_webCameraTexture;
        //申请一个读取二维码的变量
        private BarcodeReader m_barcodeRender = new BarcodeReader();
    
        //多久检索一次二维码
        private float m_delayTime = 1f;
    
        public RawImage m_cameraTexture;
    
        void Start()
        {
            //调用摄像头并将画面显示在屏幕RawImage上
            WebCamDevice[] tDevices = WebCamTexture.devices; //获取所有摄像头
            string tDeviceName = tDevices[0].name; //获取第一个摄像头,用第一个摄像头的画面生成图片信息
            m_webCameraTexture = new WebCamTexture(tDeviceName, 1280, 720); //名字,宽,高
            if (m_cameraTexture == null) m_cameraTexture = GetComponent<RawImage>();
            m_cameraTexture.texture = m_webCameraTexture; //赋值图片信息
            m_webCameraTexture.Play(); //开始实时显示
            InvokeRepeating("CheckQRCode", 0, m_delayTime);
        }
    
        /// <summary>
        /// 检索二维码方法
        /// </summary>
        void CheckQRCode()
        {
            //存储摄像头画面信息贴图转换的颜色数组
            Color32[] m_colorData = m_webCameraTexture.GetPixels32();
    
            //将画面中的二维码信息检索出来
            var tResult = m_barcodeRender.Decode(m_colorData, m_webCameraTexture.width, m_webCameraTexture.height);
    
            if (tResult != null)
            {
                Debug.Log(tResult.Text);
            }
        }
    }
    

     

    展开全文
  • unity摄像头循环切换

    2021-02-11 16:10:58
    切换摄像头实现视角切换 按 Z、X键不同顺序 实现4个摄像头循环切换 SetActive 1.创建4个camera 2.创建一个空物体 ,挂上cameraSwitch脚本 3.camera拖到脚本上 public class cemareSwitch : MonoBehaviour { ...
  • Lutify电影专业调色器 将Lutify.cs脚本挂在摄像机上,可通过Open LUT Gallery来选择喜欢的滤镜效果
  • Unity3d C#实现将场景中摄像头画面进行采集、录制并上传视频流(推流rtmp)直播的功能; 建议先看说明:https://blog.csdn.net/qq_33789001/article/details/120454854
  • Unity摄像头操控基础(一)

    千次阅读 2018-03-23 08:51:52
    对于摄像头的认识 1.unity中一个是操作界面的摄像头,是可视化开发供开发人员使用的,可以通过QWERT和鼠标完成一系列基础的操作,进行场景的布置和Object的增添修改。 2.用户界面摄像头,可以无限制的创建,摄像头...
  • 这个效果主要是想把摄像头的真实画面,投射到Unity中的虚拟模型上。因此必须保证模型的1:1 ,还有相机的角度、位置、fov等的一致。 构思: 这种效果肯定是需要深度的,因为有遮挡关系。 摄像头的位置使用一个...
  • unity 摄像头反向

    千次阅读 2018-07-24 13:59:00
    将 RawImag或者是Plane 的 Scale.x 赋值为负数
  • unity3d打开外置摄像头

    2015-08-28 10:31:43
    unity3d里可以打开usb连接的外置摄像头unity3d里可以打开usb连接的外置摄像头unity3d里可以打开usb连接的外置摄像头unity3d里可以打开usb连接的外置摄像头unity3d里可以打开usb连接的外置摄像头unity3d...
  • Unity摄像头镜面转换

    千次阅读 2017-08-26 14:45:53
    Unity中有时候需要实现水平翻转的镜像效果,在一篇帖子中看到的可以直接使用的代码,找不到链接了,这里记录下。 使用方法就是把以下脚本挂在相机上,勾选是否需要水平翻转的值就可以了。 public class ...
  • 建议先看说明:https://blog.csdn.net/qq_33789001/article/details/120551521 Unity3d C# 实现纯鼠标平滑控制场景摄像头(相机)实现自由旋转、移动和围绕节点移动旋转等功能源码工程
  • 本文实例为大家分享了Unity实现手势识别的具体代码,供大家参考,具体内容如下 代码很简单没有难度,都有注解,随便 看一看 就会了。 CallEvent () 方法需要自己搭载使用。 Unity代码 using System.Collections; ...
  • Unity摄像头截图功能演示

    千次阅读 2018-03-19 18:11:20
    //首先根据摄像头展示的画面来判断摄像头是否存在 if(isClick == true&&camTexture != null) { //绘制画面(Screen.width / 2 - 150f, Screen.height / 2 - 290,这里是画面距离场景的高和宽的限制) //800, 600是...
  • unity实现摄像头跟随

    2020-12-25 19:09:02
    代码很简单,这里就不多废话了,直接奉上代码 using UnityEngine; using System.Collections; public class FllowTarget : MonoBehaviour { public Transform character; //摄像机要跟随的人物 ...
  • unity摄像头跟随游戏主角移动

    千次阅读 2017-03-09 23:18:44
    unity 中间摄像机的移动 现在很多情况下都会出现游戏摄像机跟随着人物移动,网上关于这个也是很多的,但是有时候只是和游戏人物简单的出现保持相对的距离,这样子运动起来会很干涩,动作不够连贯,给游戏玩家很不好的...
  • unity调用摄像头拍照并保存
  • Unity 摄像头竖屏预览显示的问题

    千次阅读 2019-05-22 14:12:00
    Unity可以通过WebCamTexture打开摄像头,通过 cameraRawImage.texture = camTexture; 将贴图给RawImage,但是WebCamTexture只能设置为横屏的即宽总是大于高的, 在手机上基本上都是宽小于高的,最简单的方式就是...
  • unity 获取摄像头视频流
  • Unity 打开摄像头

    2021-09-29 10:05:38
    打开摄像头,给项目一个纯透明的背景会不会很酷呢 void Start() { instance = this; OpenCamera(); } public void OpenCamera() { StartCoroutine("StartCamera"); } public IEnumerator StartCamera()...
  • Unity打开摄像头

    千次阅读 2020-12-29 08:44:17
    public void TurnCam(bool isOn) { #if UNITY_IOS || UNITY_IPHONE if (!isOn) cam_Video.rectTransform.localEulerAngles = new Vector3(180, 0, 90); else cam_Video.rectTransform.localEulerAngles = new ...
  • WebCamTexture:网络摄像头材质 WebCamTexture.Play() 播放; WebCamTexture.Pause() 暂停; WebCamTexture.Stop() 停止; //经测试此代码可以使用,当你绑定到游戏物体时尽可以了、 using unityEngine; using ...
  • 免费下载地址:https://blog.csdn.net/linda012518/article/details/105945686 unity 调用 海康 网络摄像头,实进显示

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,887
精华内容 2,354
关键字:

unity摄像头

友情链接: LCD1602.zip