1.AVProMovieCapture插件下载
没什么好说的,搞到安装包之后,直接往项目中拉就行。
2.操作面板配置
(1)在Hierarchy创建一个空物体,上面添加Capture From Camera和Camera Selector两个插件
(2)Camera Selector常用属性
属性:Select By
·其中Highest Depth Camera表明使用深度最大的摄像机作为录制摄像机,也就是Priority值最大的就是录制摄像机。
· 其中Tag和Name表明,下面一行中输入哪个摄像机的Tag/Name就使用哪个摄像机录制
·其中 Manual表明直接以点击右侧圆圈来选择,或者拖拽摄像机放入的方式来选择录制摄像机
(3)CaptureFromCamera
·CaptureFromCamera部分
首先需要将Capture对象拖入Camera Selector属性栏中
Resolution是视频的尺寸
·output部分
3.代码控制开始录制、摄像机切换和结束录制
using System.Collections.Generic;
using NUnit.Framework;
using RenderHeads.Media.AVProMovieCapture;
using UnityEngine;
using static RenderHeads.Media.AVProMovieCapture.CameraSelector;public class VideoCaptureInArms : MonoBehaviour
{private CaptureFromCamera captureFCam;private CameraSelector camSelector;private static VideoCaptureInArms _Instance;public static VideoCaptureInArms instance{get{return _Instance;}}private void Awake(){if(_Instance != null && _Instance != this){Destroy(gameObject);return;}_Instance = this;}// Start is called once before the first execution of Update after the MonoBehaviour is createdvoid Start(){captureFCam = GetComponent<CaptureFromCamera>();if(captureFCam == null){Debug.LogError("找不到CaptureFromCamera组件");}camSelector = GetComponent<CameraSelector>();if (camSelector == null){Debug.LogError("找不到CameraSelector组件");}}// Update is called once per framevoid Update(){}/// <summary>/// 开始录屏/// </summary>public void StartCapture(){bool isStart = captureFCam.StartCapture();if(isStart == false){Debug.LogWarning("录制启动失败");}}/// <summary>/// 结束录屏/// </summary>public void StopCapture(){captureFCam.StopCapture();}/// <summary>///切换拍摄摄像头/// </summary>/// <param name="camera"></param>public void ChangeCamera(string str){camSelector.SelectBy = SelectByMode.Name;camSelector.SelectName = str;}public void ChangeCamera(Camera camera){camSelector.SelectBy = SelectByMode.Manual;camSelector.Camera = camera;}}