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;}}