屏幕錄像不是加強現實的功能,只是EasyAR SDK自帶的一個功能。該功能限制頗多,只能在移動設備上使用,並且沒有辦法直接錄製UI界面。屏幕錄像功能本質上錄的是RenderTexture。html
主要是在基礎結構上添加了一個【VideoRecorder】遊戲對象。另外,須要動態的往【Main Camera】主攝像機遊戲對象上添加【CameraRecorder】腳本。bash
取消Other Settings標籤下Multithreaded Rendering選項多線程
添加2個按鈕用於開始和中止錄像,添加一個文本框顯示提示。ide
編寫腳本。ui
using UnityEngine;
using UnityEngine.UI;
using easyar;
using VideoRecording;
public class RecorderController : MonoBehaviour
{
public Text uiText;
public VideoRecorder videoRecorder;
private CameraRecorder cameraRecorder;
private void Awake()
{
videoRecorder.StatusUpdate += (status, msg) =>
{
if (status == RecordStatus.OnStarted)
{
uiText.text = "Recording start";
}
if (status == RecordStatus.FailedToStart ||
status == RecordStatus.FileFailed || status == RecordStatus.LogError)
{
uiText.text = "Recording Error: " + status + ", details: " + msg;
}
Debug.Log("RecordStatus: " + status + ", details: " + msg);
};
}
public void StartRecorder()
{
videoRecorder.StartRecording();
cameraRecorder =
Camera.main.gameObject.AddComponent<CameraRecorder>();
cameraRecorder.Setup(videoRecorder, null);
}
public void StopRecorder()
{
if (videoRecorder.StopRecording())
{
uiText.text = "Recording stop " + videoRecorder.FilePath;
}
else
{
uiText.text = "Recording failed";
}
if (cameraRecorder)
{
cameraRecorder.Destroy();
}
}
}
複製代碼
運行之後,點擊按鈕就能夠開始錄像,文本框會顯示開始錄製的提示「Recording start」。點擊中止按鈕,就會中止錄像。spa
錄像的結果會保存在持久數據目錄下,具體目錄位置請查看Unity官方文檔 docs.unity3d.com/2018.4/Docu…線程
視頻版地址:www.bilibili.com/video/bv1eK…3d